* [PATCH net] net: netdevsim: don't try to destroy PHC on VFs
@ 2024-01-16 19:14 Jakub Kicinski
2024-01-17 9:15 ` Simon Horman
2024-01-17 11:00 ` patchwork-bot+netdevbpf
0 siblings, 2 replies; 3+ messages in thread
From: Jakub Kicinski @ 2024-01-16 19:14 UTC (permalink / raw)
To: davem; +Cc: netdev, edumazet, pabeni, Jakub Kicinski, vladimir.oltean
PHC gets initialized in nsim_init_netdevsim(), which
is only called if (nsim_dev_port_is_pf()).
Create a counterpart of nsim_init_netdevsim() and
move the mock_phc_destroy() there.
This fixes a crash trying to destroy netdevsim with
VFs instantiated, as caught by running the devlink.sh test:
BUG: kernel NULL pointer dereference, address: 00000000000000b8
RIP: 0010:mock_phc_destroy+0xd/0x30
Call Trace:
<TASK>
nsim_destroy+0x4a/0x70 [netdevsim]
__nsim_dev_port_del+0x47/0x70 [netdevsim]
nsim_dev_reload_destroy+0x105/0x120 [netdevsim]
nsim_drv_remove+0x2f/0xb0 [netdevsim]
device_release_driver_internal+0x1a1/0x210
bus_remove_device+0xd5/0x120
device_del+0x159/0x490
device_unregister+0x12/0x30
del_device_store+0x11a/0x1a0 [netdevsim]
kernfs_fop_write_iter+0x130/0x1d0
vfs_write+0x30b/0x4b0
ksys_write+0x69/0xf0
do_syscall_64+0xcc/0x1e0
entry_SYSCALL_64_after_hwframe+0x6f/0x77
Fixes: b63e78fca889 ("net: netdevsim: use mock PHC driver")
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
---
CC: vladimir.oltean@nxp.com
---
drivers/net/netdevsim/netdev.c | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/drivers/net/netdevsim/netdev.c b/drivers/net/netdevsim/netdev.c
index aecaf5f44374..77e8250282a5 100644
--- a/drivers/net/netdevsim/netdev.c
+++ b/drivers/net/netdevsim/netdev.c
@@ -369,6 +369,12 @@ static int nsim_init_netdevsim_vf(struct netdevsim *ns)
return err;
}
+static void nsim_exit_netdevsim(struct netdevsim *ns)
+{
+ nsim_udp_tunnels_info_destroy(ns->netdev);
+ mock_phc_destroy(ns->phc);
+}
+
struct netdevsim *
nsim_create(struct nsim_dev *nsim_dev, struct nsim_dev_port *nsim_dev_port)
{
@@ -417,8 +423,7 @@ void nsim_destroy(struct netdevsim *ns)
}
rtnl_unlock();
if (nsim_dev_port_is_pf(ns->nsim_dev_port))
- nsim_udp_tunnels_info_destroy(dev);
- mock_phc_destroy(ns->phc);
+ nsim_exit_netdevsim(ns);
free_netdev(dev);
}
--
2.43.0
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH net] net: netdevsim: don't try to destroy PHC on VFs
2024-01-16 19:14 [PATCH net] net: netdevsim: don't try to destroy PHC on VFs Jakub Kicinski
@ 2024-01-17 9:15 ` Simon Horman
2024-01-17 11:00 ` patchwork-bot+netdevbpf
1 sibling, 0 replies; 3+ messages in thread
From: Simon Horman @ 2024-01-17 9:15 UTC (permalink / raw)
To: Jakub Kicinski; +Cc: davem, netdev, edumazet, pabeni, vladimir.oltean
On Tue, Jan 16, 2024 at 11:14:00AM -0800, Jakub Kicinski wrote:
> PHC gets initialized in nsim_init_netdevsim(), which
> is only called if (nsim_dev_port_is_pf()).
>
> Create a counterpart of nsim_init_netdevsim() and
> move the mock_phc_destroy() there.
>
> This fixes a crash trying to destroy netdevsim with
> VFs instantiated, as caught by running the devlink.sh test:
>
> BUG: kernel NULL pointer dereference, address: 00000000000000b8
> RIP: 0010:mock_phc_destroy+0xd/0x30
> Call Trace:
> <TASK>
> nsim_destroy+0x4a/0x70 [netdevsim]
> __nsim_dev_port_del+0x47/0x70 [netdevsim]
> nsim_dev_reload_destroy+0x105/0x120 [netdevsim]
> nsim_drv_remove+0x2f/0xb0 [netdevsim]
> device_release_driver_internal+0x1a1/0x210
> bus_remove_device+0xd5/0x120
> device_del+0x159/0x490
> device_unregister+0x12/0x30
> del_device_store+0x11a/0x1a0 [netdevsim]
> kernfs_fop_write_iter+0x130/0x1d0
> vfs_write+0x30b/0x4b0
> ksys_write+0x69/0xf0
> do_syscall_64+0xcc/0x1e0
> entry_SYSCALL_64_after_hwframe+0x6f/0x77
>
> Fixes: b63e78fca889 ("net: netdevsim: use mock PHC driver")
> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Reviewed-by: Simon Horman <horms@kernel.org>
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH net] net: netdevsim: don't try to destroy PHC on VFs
2024-01-16 19:14 [PATCH net] net: netdevsim: don't try to destroy PHC on VFs Jakub Kicinski
2024-01-17 9:15 ` Simon Horman
@ 2024-01-17 11:00 ` patchwork-bot+netdevbpf
1 sibling, 0 replies; 3+ messages in thread
From: patchwork-bot+netdevbpf @ 2024-01-17 11:00 UTC (permalink / raw)
To: Jakub Kicinski; +Cc: davem, netdev, edumazet, pabeni, vladimir.oltean
Hello:
This patch was applied to netdev/net.git (main)
by David S. Miller <davem@davemloft.net>:
On Tue, 16 Jan 2024 11:14:00 -0800 you wrote:
> PHC gets initialized in nsim_init_netdevsim(), which
> is only called if (nsim_dev_port_is_pf()).
>
> Create a counterpart of nsim_init_netdevsim() and
> move the mock_phc_destroy() there.
>
> This fixes a crash trying to destroy netdevsim with
> VFs instantiated, as caught by running the devlink.sh test:
>
> [...]
Here is the summary with links:
- [net] net: netdevsim: don't try to destroy PHC on VFs
https://git.kernel.org/netdev/net/c/ea937f772083
You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2024-01-17 11:00 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-01-16 19:14 [PATCH net] net: netdevsim: don't try to destroy PHC on VFs Jakub Kicinski
2024-01-17 9:15 ` Simon Horman
2024-01-17 11:00 ` patchwork-bot+netdevbpf
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).