Patch "net: netdevsim: don't try to destroy PHC on VFs" has been added to the 6.6-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    net: netdevsim: don't try to destroy PHC on VFs

to the 6.6-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     net-netdevsim-don-t-try-to-destroy-phc-on-vfs.patch
and it can be found in the queue-6.6 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 2cd39d0e812121e9b68e70e634d47f2fd2656320
Author: Jakub Kicinski <kuba@xxxxxxxxxx>
Date:   Tue Jan 16 11:14:00 2024 -0800

    net: netdevsim: don't try to destroy PHC on VFs
    
    [ Upstream commit ea937f77208323d35ffe2f8d8fc81b00118bfcda ]
    
    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@xxxxxxxxxx>
    Reviewed-by: Simon Horman <horms@xxxxxxxxxx>
    Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/net/netdevsim/netdev.c b/drivers/net/netdevsim/netdev.c
index 2eac92f49631..d8ca82addfe1 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);
 }
 




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux