Message ID | 20241217010839.1742227-6-shaojijie@huawei.com (mailing list archive) |
---|---|
State | Changes Requested |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | There are some bugfix for the HNS3 ethernet driver | expand |
On Tue, Dec 17, 2024 at 09:08:37AM +0800, Jijie Shao wrote: > From: Jian Shen <shenjian15@huawei.com> > > 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 | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c b/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c > index fd0abe37fdd7..8739da317897 100644 > --- a/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c > +++ b/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c > @@ -2313,6 +2313,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); Comment here that timer needs to be initialized before misc irq will be nice, but that is onlu my impression. Reviewed-by: Michal Swiatkowski <michal.swiatkowski@linux.intel.com> Thanks > + timer_setup(&hdev->reset_timer, hclgevf_reset_timer, 0); > > mutex_init(&hdev->mbx_resp.mbx_mutex); > sema_init(&hdev->reset_sem, 1); > @@ -3012,7 +3013,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; > > -- > 2.33.0
on 2024/12/18 17:20, Michal Swiatkowski wrote: > On Tue, Dec 17, 2024 at 09:08:37AM +0800, Jijie Shao wrote: >> From: Jian Shen <shenjian15@huawei.com> >> >> 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 | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c b/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c >> index fd0abe37fdd7..8739da317897 100644 >> --- a/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c >> +++ b/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c >> @@ -2313,6 +2313,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); > Comment here that timer needs to be initialized before misc irq will be > nice, but that is onlu my impression. I'll add a comment in the next version. Thanks, Jijie Shao > > Reviewed-by: Michal Swiatkowski <michal.swiatkowski@linux.intel.com> > > Thanks >> + timer_setup(&hdev->reset_timer, hclgevf_reset_timer, 0); >> >> mutex_init(&hdev->mbx_resp.mbx_mutex); >> sema_init(&hdev->reset_sem, 1); >> @@ -3012,7 +3013,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; >> >> -- >> 2.33.0
diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c b/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c index fd0abe37fdd7..8739da317897 100644 --- a/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c +++ b/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c @@ -2313,6 +2313,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); @@ -3012,7 +3013,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;