linux/drivers/net
Jason Wang ab3971b1e7 virtio-net: correctly delete napi hash
We don't delete napi from hash list during module exit. This will
cause the following panic when doing module load and unload:

BUG: unable to handle kernel paging request at 0000004e00000075
IP: [<ffffffff816bd01b>] napi_hash_add+0x6b/0xf0
PGD 3c5d5067 PUD 0
Oops: 0000 [#1] SMP
...
Call Trace:
[<ffffffffa0a5bfb7>] init_vqs+0x107/0x490 [virtio_net]
[<ffffffffa0a5c9f2>] virtnet_probe+0x562/0x791815639d880be [virtio_net]
[<ffffffff8139e667>] virtio_dev_probe+0x137/0x200
[<ffffffff814c7f2a>] driver_probe_device+0x7a/0x250
[<ffffffff814c81d3>] __driver_attach+0x93/0xa0
[<ffffffff814c8140>] ? __device_attach+0x40/0x40
[<ffffffff814c6053>] bus_for_each_dev+0x63/0xa0
[<ffffffff814c7a79>] driver_attach+0x19/0x20
[<ffffffff814c76f0>] bus_add_driver+0x170/0x220
[<ffffffffa0a60000>] ? 0xffffffffa0a60000
[<ffffffff814c894f>] driver_register+0x5f/0xf0
[<ffffffff8139e41b>] register_virtio_driver+0x1b/0x30
[<ffffffffa0a60010>] virtio_net_driver_init+0x10/0x12 [virtio_net]

This patch fixes this by doing this in virtnet_free_queues(). And also
don't delete napi in virtnet_freeze() since it will call
virtnet_free_queues() which has already did this.

Fixes 91815639d8 ("virtio-net: rx busy polling support")
Cc: Rusty Russell <rusty@rustcorp.com.au>
Cc: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Jason Wang <jasowang@redhat.com>
Acked-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2015-03-12 14:37:17 -04:00
..
appletalk net/appletalk: LTPC needs virt_to_bus 2015-02-20 16:28:46 -05:00
arcnet com20020-pci: add support for eae single card 2015-02-15 08:21:34 -08:00
bonding net/bonding: Fix potential bad memory access during bonding events 2015-02-09 14:03:53 -08:00
caif caif: remove wrong dev_net_set() call 2015-01-29 14:20:02 -08:00
can can: kvaser_usb: Read all messages in a bulk-in URB buffer 2015-03-09 10:22:24 +01:00
cris
dsa net: dsa: bcm_sf2: fix 64-bits register reads 2015-02-20 17:52:46 -05:00
ethernet cxgb4: fix coccinelle warnings 2015-03-10 13:42:00 -04:00
fddi net: fddi: skfp: smt.c: Remove unused function 2015-01-02 16:36:07 -05:00
hamradio
hippi
hyperv hyperv: fix sparse warnings 2015-02-05 16:03:27 -08:00
ieee802154 ieee802154: cc2520: Fix space before , coding style issue 2015-02-02 06:09:35 +01:00
ipvlan ipvlan: add a missing __percpu pcpu_stats 2015-02-11 20:03:23 -08:00
irda irda: vlsi_ir: Replace timeval with ktime_t 2015-01-11 21:39:40 -05:00
phy amd-xgbe-phy: PHY KX/KR mode differences 2015-02-25 16:57:42 -05:00
plip
ppp ppp: deflate: never return len larger than output buffer 2015-01-29 14:50:01 -08:00
slip
team team: don't traverse port list using rcu in team_set_mac_address 2015-03-04 16:01:16 -05:00
usb Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2015-03-03 15:30:07 -08:00
vmxnet3 Driver: Vmxnet3: Change the hex constant to its decimal equivalent 2015-02-08 16:55:01 -08:00
wan wan: cosa: replace current->state by set_current_state() 2015-02-22 15:24:10 -05:00
wimax
wireless iwlwifi: 2015-03-10 13:43:02 -04:00
xen-netback xen-netback: notify immediately after pushing Tx response. 2015-03-11 23:30:44 -04:00
dummy.c dummy: use MODULE_VERSION 2014-12-09 21:51:06 -05:00
eql.c
ifb.c
Kconfig ipvlan: Fix text that talks about ip util support 2015-02-20 16:35:44 -05:00
LICENSE.SRC
loopback.c
macvlan.c macvlan: advertise link netns via netlink 2015-01-23 17:51:15 -08:00
macvtap.c macvtap: make sure neighbour code can push ethernet header 2015-02-28 23:57:19 -05:00
Makefile ipvlan: Initial check-in of the IPVLAN driver. 2014-11-24 15:29:18 -05:00
mdio.c
mii.c mii: Handle link state changes for forced modes in mii_check_media() 2015-01-19 15:43:42 -05:00
netconsole.c
nlmon.c
ntb_netdev.c
rionet.c
sb1000.c
Space.c
sungem_phy.c
tun.c net: rfs: add hash collision detection 2015-02-08 16:53:57 -08:00
veth.c veth: advertise link netns via netlink 2015-01-23 17:51:15 -08:00
virtio_net.c virtio-net: correctly delete napi hash 2015-03-12 14:37:17 -04:00
vxlan.c vxlan: Use checksum partial with remote checksum offload 2015-02-11 15:12:13 -08:00
xen-netfront.c xen-netfront: Use static attribute groups for sysfs entries 2015-02-05 00:31:12 -08:00