]> www.infradead.org Git - users/dwmw2/linux.git/commit
net: hns3: fix oops when unload drivers paralleling
authorJian Shen <shenjian15@huawei.com>
Sat, 18 Jan 2025 09:47:41 +0000 (17:47 +0800)
committerJakub Kicinski <kuba@kernel.org>
Thu, 23 Jan 2025 04:00:34 +0000 (20:00 -0800)
commit92e5995773774a3e70257e9c95ea03518268bea5
treeed83834b8a37d050ebbef97b682ec8dc36a44a45
parentba1af257a0575bfa86e69eaa85bddcc6cf346df3
net: hns3: fix oops when unload drivers paralleling

When unload hclge driver, it tries to disable sriov first for each
ae_dev node from hnae3_ae_dev_list. If user unloads hns3 driver at
the time, because it removes all the ae_dev nodes, and it may cause
oops.

But we can't simply use hnae3_common_lock for this. Because in the
process flow of pci_disable_sriov(), it will trigger the remove flow
of VF, which will also take hnae3_common_lock.

To fixes it, introduce a new mutex to protect the unload process.

Fixes: 0dd8a25f355b ("net: hns3: disable sriov before unload hclge layer")
Signed-off-by: Jian Shen <shenjian15@huawei.com>
Signed-off-by: Jijie Shao <shaojijie@huawei.com>
Link: https://patch.msgid.link/20250118094741.3046663-1-shaojijie@huawei.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/hisilicon/hns3/hnae3.c
drivers/net/ethernet/hisilicon/hns3/hnae3.h
drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c