]> www.infradead.org Git - linux.git/commitdiff
net: hns3: initialize reset_timer before hclgevf_misc_irq_init()
authorJian Shen <shenjian15@huawei.com>
Fri, 25 Oct 2024 09:29:36 +0000 (17:29 +0800)
committerPaolo Abeni <pabeni@redhat.com>
Thu, 31 Oct 2024 10:15:43 +0000 (11:15 +0100)
Currently the misc irq is initialized before reset_timer setup. But
it will access the reset_timer in the irq handler. So initialize
the reset_timer earlier.

Fixes: ff200099d271 ("net: hns3: remove unnecessary work in hclgevf_main")
Signed-off-by: Jian Shen <shenjian15@huawei.com>
Signed-off-by: Jijie Shao <shaojijie@huawei.com>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c

index ab54e6155e933635c1066e379dd8984b4d0da3e9..896f1eb172d30e0769000db6c71a177f08133508 100644 (file)
@@ -2315,6 +2315,7 @@ static void hclgevf_state_init(struct hclgevf_dev *hdev)
        clear_bit(HCLGEVF_STATE_RST_FAIL, &hdev->state);
 
        INIT_DELAYED_WORK(&hdev->service_task, hclgevf_service_task);
+       timer_setup(&hdev->reset_timer, hclgevf_reset_timer, 0);
 
        mutex_init(&hdev->mbx_resp.mbx_mutex);
        sema_init(&hdev->reset_sem, 1);
@@ -3014,7 +3015,6 @@ static int hclgevf_init_hdev(struct hclgevf_dev *hdev)
                 HCLGEVF_DRIVER_NAME);
 
        hclgevf_task_schedule(hdev, round_jiffies_relative(HZ));
-       timer_setup(&hdev->reset_timer, hclgevf_reset_timer, 0);
 
        return 0;