Revision 04aa1bc42e4d31a7c58f38eefc323ac395517635 authored by Bruno Carneiro da Cunha on 05 December 2019, 20:16:26 UTC, committed by David S. Miller on 07 December 2019, 04:51:19 UTC
We may have found a bug in the nxp/lpc_eth.c driver. The function platform_set_drvdata() is called twice, the second time it is called, in lpc_mii_init(), it overwrites the struct net_device which should be at pdev->dev->driver_data with pldat->mii_bus. When trying to remove the driver, in lpc_eth_drv_remove(), platform_get_drvdata() will return the pldat->mii_bus pointer and try to use it as a struct net_device pointer. This causes unregister_netdev to segfault and generate a kernel BUG. Is this reproducible? Signed-off-by: Daniel Martinez <linux@danielsmartinez.com> Signed-off-by: Bruno Carneiro da Cunha <brunocarneirodacunha@usp.br> Signed-off-by: David S. Miller <davem@davemloft.net>
1 parent 9424e2e
File | Mode | Size |
---|---|---|
Kconfig | -rw-r--r-- | 72.4 KB |
Makefile | -rw-r--r-- | 1.2 KB |
calibrate.c | -rw-r--r-- | 8.6 KB |
do_mounts.c | -rw-r--r-- | 15.7 KB |
do_mounts.h | -rw-r--r-- | 1.1 KB |
do_mounts_initrd.c | -rw-r--r-- | 3.5 KB |
do_mounts_md.c | -rw-r--r-- | 7.9 KB |
do_mounts_rd.c | -rw-r--r-- | 8.1 KB |
init_task.c | -rw-r--r-- | 5.3 KB |
initramfs.c | -rw-r--r-- | 14.5 KB |
main.c | -rw-r--r-- | 30.1 KB |
noinitramfs.c | -rw-r--r-- | 873 bytes |
version.c | -rw-r--r-- | 1.3 KB |
Computing file changes ...