net: hns3: Fix a misuse to devm_free_irq
authorqumingguang <qumingguang@huawei.com>
Thu, 2 Nov 2017 12:45:22 +0000 (20:45 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 20 Dec 2017 09:10:27 +0000 (10:10 +0100)
[ Upstream commit ae064e6123f89f90af7e4ea190cc0c612643ca93 ]

we should use free_irq to free the nic irq during the unloading time.
because we use request_irq to apply it when nic up. It will crash if
up net device after reset the port. This patch fixes the issue.

Signed-off-by: qumingguang <qumingguang@huawei.com>
Signed-off-by: Lipeng <lipeng321@huawei.com>
Signed-off-by: Yunsheng Lin <linyunsheng@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/net/ethernet/hisilicon/hns3/hns3pf/hns3_enet.c

index 35369e1c8036f3abbade76b63eed2a103170b4c7..981fc62ce04343aaf478e02fb634c192d168aac0 100644 (file)
@@ -2460,9 +2460,8 @@ static int hns3_nic_uninit_vector_data(struct hns3_nic_priv *priv)
                        (void)irq_set_affinity_hint(
                                priv->tqp_vector[i].vector_irq,
                                                    NULL);
-                       devm_free_irq(&pdev->dev,
-                                     priv->tqp_vector[i].vector_irq,
-                                     &priv->tqp_vector[i]);
+                       free_irq(priv->tqp_vector[i].vector_irq,
+                                &priv->tqp_vector[i]);
                }
 
                priv->ring_data[i].ring->irq_init_flag = HNS3_VECTOR_NOT_INITED;