linux/drivers/net
Toru UCHIYAMA 38bddf04bc gianfar: gfar_remove needs to call unregister_netdev()
This patch solves the problem that the Oops(BUG_ON) occurs by rmmod.

	# rmmod gianfar_driver
	------------[ cut here ]------------
	Kernel BUG at c01fec48 [verbose debug info unavailable]
	Oops: Exception in kernel mode, sig: 5 [#1]
	MPC837x MDS
	Modules linked in: gianfar_driver(-) usb_storage scsi_wait_scan
	NIP: c01fec48 LR: c01febf4 CTR: c01feba8
	REGS: dec5bd60 TRAP: 0700   Tainted: G        W   (2.6.31-rc2)
	MSR: 00029032 <EE,ME,CE,IR,DR>  CR: 22000424  XER: 20000000
	TASK = dec4cac0[1135] 'rmmod' THREAD: dec5a000
	GPR00: 00000002 dec5be10 dec4cac0 dfba1820 c035d444 c035d478 ffffffff 00000000
	GPR08: 0000002b 00000001 dfba193c 00000001 22000424 10019b34 1ffcb000 00000000
	GPR16: 10012008 00000000 bf82ebe0 100017ec bf82ebec bf82ebe8 bf82ebd0 00000880
	GPR24: 00000000 bf82ebf0 c03532f0 c03532e4 c036b594 dfba183c dfba1800 dfba1820
	NIP [c01fec48] free_netdev+0xa0/0xb8
	LR [c01febf4] free_netdev+0x4c/0xb8
	Call Trace:
	[dec5be10] [c01febf4] free_netdev+0x4c/0xb8 (unreliable)
	[dec5be30] [e105f290] gfar_remove+0x50/0x68 [gianfar_driver]
	[dec5be40] [c01ec534] of_platform_device_remove+0x30/0x44
	[dec5be50] [c0181760] __device_release_driver+0x68/0xc8
	[dec5be60] [c0181868] driver_detach+0xa8/0xac
	[dec5be80] [c0180814] bus_remove_driver+0x9c/0xd8
	[dec5bea0] [c0181efc] driver_unregister+0x60/0x98
	[dec5beb0] [c01ec650] of_unregister_driver+0x14/0x24
	[dec5bec0] [e10631bc] gfar_exit+0x18/0x4bc [gianfar_driver]
	[dec5bed0] [c0047584] sys_delete_module+0x16c/0x228
	[dec5bf40] [c00116bc] ret_from_syscall+0x0/0x38
	--- Exception: c01 at 0xff3669c
	    LR = 0x10000f34
	Instruction dump:
	409e0024 a07e00c0 7c63f050 4be74429 80010024 bba10014 38210020 7c0803a6
	4e800020 68000003 3160ffff 7d2b0110 <0f090000> 38000004 387e01f0 901e01d4
	---[ end trace 8c595bcd37230a0f ]---
	 localhost kernel: ------------[ cut here ]------------

Signed-off-by: Toru UCHIYAMA uchiyama.toru@jp.fujitsu.com
Signed-off-by: David S. Miller <davem@davemloft.net>
2009-08-30 22:04:07 -07:00
..
appletalk
arcnet Remove multiple KERN_ prefixes from printk formats 2009-07-08 10:30:03 -07:00
arm net: Rename MAC platform driver for w90p910 platform 2009-08-18 23:34:58 -07:00
atl1c atlx: strncpy does not null terminate string 2009-08-09 21:45:31 -07:00
atl1e atl1*: add device_set_wakeup_enable to atl1*_set_wol 2009-06-25 02:58:17 -07:00
atlx atlx: strncpy does not null terminate string 2009-08-09 21:45:31 -07:00
benet be2net: Bug fix in the non-lro path. Size of received packet was not updated in statistics properly. 2009-07-22 09:28:55 -07:00
bonding bonding: clean muticast addresses when device changes type 2009-07-16 18:05:23 -07:00
can can: fix oops caused by wrong rtnl newlink usage 2009-08-13 16:33:01 -07:00
chelsio
cris
cxgb3 cxgb3: Fix crash caused by stashing wrong netdev_queue 2009-07-09 17:16:06 -07:00
e1000 e1000: return PCI_ERS_RESULT_DISCONNECT on permanent error 2009-06-30 19:47:00 -07:00
e1000e e1000e: fix use of pci_enable_pcie_error_reporting 2009-08-15 18:52:59 -07:00
ehea ehea: Fix napi list corruption on ifconfig down 2009-08-04 11:48:39 -07:00
enic
fs_enet fs_enet: Revive fixed link support 2009-07-22 09:27:19 -07:00
hamradio Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 2009-07-22 09:49:58 -07:00
ibm_newemac ibm_newemac: emac_close() needs to call netif_carrier_off() 2009-08-20 02:21:27 -07:00
igb igb: gcc-3.4.6 fix 2009-07-13 11:11:41 -07:00
igbvf igbvf: Allow VF driver to correctly recognize failure to set mac 2009-08-04 11:46:41 -07:00
irda irda/sa1100_ir: fix broken netdev_ops conversion 2009-08-25 20:39:37 -07:00
ixgb
ixgbe ixgbe: Fix receive on real device when VLANs are configured 2009-08-13 20:13:23 -07:00
ixp2000 drivers/net: fixed drivers that support netpoll use ndo_start_xmit() 2009-08-23 19:51:03 -07:00
mlx4 drivers/net: fixed drivers that support netpoll use ndo_start_xmit() 2009-08-23 19:51:03 -07:00
myri10ge
netxen netxen: free napi resources during detach 2009-08-13 16:33:04 -07:00
pcmcia Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 2009-07-22 09:49:58 -07:00
phy net: Rework mdio-ofgpio driver to use of_mdio infrastructure 2009-07-23 10:56:48 -07:00
qlge qlge: Fix sizeof usage. 2009-07-03 19:10:51 -07:00
sfc
skfp
tokenring tokenring: Read buffer overflow 2009-07-26 18:50:39 -07:00
tulip drivers/net: fixed drivers that support netpoll use ndo_start_xmit() 2009-08-14 16:41:16 -07:00
usb pegasus: Add new device ID. 2009-08-14 16:41:17 -07:00
vxge
wan Remove multiple KERN_ prefixes from printk formats 2009-07-08 10:30:03 -07:00
wimax
wireless ipw2200: firmware DMA loading rework 2009-08-28 14:35:32 -04:00
3c59x.c Add IDs for 3C905B-TX Fast Etherlink XL PCI 2009-08-05 20:23:07 -07:00
3c501.c
3c501.h
3c503.c
3c503.h
3c505.c
3c505.h
3c507.c
3c509.c
3c515.c 3c515: Write outside array bounds 2009-07-30 13:27:28 -07:00
3c523.c
3c523.h
3c527.c
3c527.h
7990.c
7990.h
8139cp.c 8139cp: balance dma_map_single vs dma_unmap_single pair 2009-08-12 22:18:14 -07:00
8139too.c netdev: restore MTU change operation 2009-07-12 14:20:04 -07:00
8390.c
8390.h
8390p.c
82596.c
Kconfig net: Fix Micrel KSZ8842 Kconfig description 2009-08-23 19:47:03 -07:00
LICENSE.SRC
Makefile net: Micrel KS8851 SPI network driver 2009-07-20 08:23:26 -07:00
Space.c
a2065.c Remove multiple KERN_ prefixes from printk formats 2009-07-08 10:30:03 -07:00
a2065.h
ac3200.c
acenic.c
acenic.h
amd8111e.c
amd8111e.h
apne.c
ariadne.c
ariadne.h
at1700.c at1700: Read buffer overflow 2009-07-26 18:50:38 -07:00
atarilance.c
atp.c
atp.h
au1000_eth.c
au1000_eth.h
ax88796.c
b44.c drivers/net: fixed drivers that support netpoll use ndo_start_xmit() 2009-08-14 16:41:16 -07:00
b44.h
bfin_mac.c
bfin_mac.h
bmac.c Fix compile error in bmac.c 2009-07-09 20:32:31 -07:00
bmac.h
bnx2.c bnx2: Use mutex on slow path cnic calls. 2009-08-15 18:50:44 -07:00
bnx2.h bnx2: Use mutex on slow path cnic calls. 2009-08-15 18:50:44 -07:00
bnx2_fw.h
bnx2x.h bnx2x: Fix the maximal values of coalescing timeouts. 2009-07-05 18:03:23 -07:00
bnx2x_dump.h
bnx2x_fw_defs.h
bnx2x_fw_file_hdr.h
bnx2x_hsi.h
bnx2x_init.h
bnx2x_init_ops.h
bnx2x_link.c drivers/net: Move a dereference below a NULL test 2009-07-21 13:00:44 -07:00
bnx2x_link.h
bnx2x_main.c Remove multiple KERN_ prefixes from printk formats 2009-07-08 10:30:03 -07:00
bnx2x_reg.h
bsd_comp.c
cassini.c
cassini.h
cnic.c cnic: Fix locking in init/exit calls. 2009-08-15 18:50:47 -07:00
cnic.h cnic: Fix locking in start/stop calls. 2009-08-15 18:50:44 -07:00
cnic_defs.h
cnic_if.h cnic: Fix locking in init/exit calls. 2009-08-15 18:50:47 -07:00
cpmac.c cpmac: fix compilation failure introduced with netdev_ops conversion 2009-06-24 18:03:11 -07:00
cs89x0.c drivers/net: using spin_lock_irqsave() in net_send_packet() 2009-07-14 12:03:41 -07:00
cs89x0.h
davinci_emac.c davinci_emac: fix kernel oops when changing MAC address while interface is down 2009-07-08 10:46:44 -07:00
de600.c
de600.h
de620.c
de620.h
declance.c
defxx.c
defxx.h
depca.c
depca.h
dl2k.c Remove multiple KERN_ prefixes from printk formats 2009-07-08 10:30:03 -07:00
dl2k.h
dm9000.c
dm9000.h
dnet.c
dnet.h
dummy.c
e100.c E100: fix interaction with swiotlb on X86. 2009-08-23 19:02:13 -07:00
e2100.c
eepro.c eepro: Read buffer overflow 2009-07-26 18:53:17 -07:00
eexpress.c eexpress: Read buffer overflow 2009-07-30 13:27:34 -07:00
eexpress.h
enc28j60.c
enc28j60_hw.h
epic100.c Remove multiple KERN_ prefixes from printk formats 2009-07-08 10:30:03 -07:00
eql.c
es3210.c
eth16i.c
ethoc.c
ewrk3.c
ewrk3.h
fealnx.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 2009-07-27 13:42:47 -07:00
fec.c fec: fix FEC driver packet transmission breakage 2009-08-09 21:45:33 -07:00
fec.h fec: fix definition of 5272 version of FEC_X_DES_ACTIVE register 2009-07-06 18:56:11 -07:00
fec_mpc52xx.c drivers/net: fixed drivers that support netpoll use ndo_start_xmit() 2009-08-23 19:51:03 -07:00
fec_mpc52xx.h
fec_mpc52xx_phy.c
forcedeth.c forcedeth: Fix NAPI race. 2009-07-05 18:03:33 -07:00
fsl_pq_mdio.c fsl_pq_mdio: Fix fsl_pq_mdio to work with modules 2009-06-25 20:03:53 -07:00
fsl_pq_mdio.h
gianfar.c gianfar: gfar_remove needs to call unregister_netdev() 2009-08-30 22:04:07 -07:00
gianfar.h
gianfar_ethtool.c gianfar: fix coalescing setup in ethtool support 2009-07-30 14:20:42 -07:00
gianfar_sysfs.c
hamachi.c Remove multiple KERN_ prefixes from printk formats 2009-07-08 10:30:03 -07:00
hp-plus.c
hp.c
hp100.c
hp100.h
hplance.c
hplance.h
hydra.c
ibmlana.c
ibmlana.h
ibmveth.c
ibmveth.h
ifb.c
ioc3-eth.c
ipg.c
ipg.h
isa-skeleton.c drivers/net: using spin_lock_irqsave() in net_send_packet() 2009-07-14 12:03:41 -07:00
iseries_veth.c
jazzsonic.c macsonic, jazzsonic: fix oops on module unload 2009-07-21 12:21:49 -07:00
jme.c
jme.h
korina.c
ks8842.c
ks8851.c net: Micrel KS8851 SPI network driver 2009-07-20 08:23:26 -07:00
ks8851.h net: Micrel KS8851 SPI network driver 2009-07-20 08:23:26 -07:00
lance.c
lasi_82596.c
lib8390.c
lib82596.c
ll_temac.h
ll_temac_main.c
ll_temac_mdio.c
lne390.c
loopback.c
lp486e.c
mac89x0.c
mac8390.c
macb.c drivers/net: fixed drivers that support netpoll use ndo_start_xmit() 2009-08-23 19:51:03 -07:00
macb.h
mace.c
mace.h
macmace.c
macsonic.c macsonic, jazzsonic: fix oops on module unload 2009-07-21 12:21:49 -07:00
macvlan.c
mdio.c mdio add missing GPL flag 2009-06-25 20:06:34 -07:00
meth.c
meth.h
mii.c
mipsnet.c
mv643xx_eth.c
mvme147.c
myri_sbus.c
myri_sbus.h
natsemi.c Remove multiple KERN_ prefixes from printk formats 2009-07-08 10:30:03 -07:00
ne-h8300.c
ne.c Remove multiple KERN_ prefixes from printk formats 2009-07-08 10:30:03 -07:00
ne2.c
ne2k-pci.c
ne3210.c
netconsole.c
netx-eth.c
ni52.c
ni52.h
ni65.c
ni65.h
ni5010.c
ni5010.h
niu.c
niu.h
ns83820.c
pasemi_mac.c
pasemi_mac.h
pasemi_mac_ethtool.c
pci-skeleton.c Remove multiple KERN_ prefixes from printk formats 2009-07-08 10:30:03 -07:00
pcnet32.c pcnet32: Read buffer overflow 2009-08-09 21:45:48 -07:00
plip.c netdev: restore MTU change operation 2009-07-12 14:20:04 -07:00
ppp_async.c Revert "ppp: Fix throttling bugs" 2009-07-16 09:14:23 -07:00
ppp_deflate.c
ppp_generic.c ppp: fix lost fragments in ppp_mp_explode() (resubmit) 2009-08-02 12:20:31 -07:00
ppp_mppe.c
ppp_mppe.h
ppp_synctty.c Revert "ppp: Fix throttling bugs" 2009-07-16 09:14:23 -07:00
pppoe.c pppoe: fix /proc/net/pppoe 2009-07-30 14:19:19 -07:00
pppol2tp.c pppol2tp: calls unregister_pernet_gen_device() at unload time 2009-08-02 12:20:34 -07:00
pppox.c
ps3_gelic_net.c netdev: restore MAC address set and validate operations 2009-07-12 14:20:02 -07:00
ps3_gelic_net.h
ps3_gelic_wireless.c netdev: restore MAC address set and validate operations 2009-07-12 14:20:02 -07:00
ps3_gelic_wireless.h
qla3xxx.c qla3xxx: Don't sleep while holding lock. 2009-06-23 16:36:27 -07:00
qla3xxx.h
r6040.c r6040: bump driver version to 0.24 and date to 08 July 2009 2009-07-08 10:49:28 -07:00
r8169.c r8169: WakeOnLan fix for the 8168 2009-07-26 20:18:52 -07:00
rionet.c
rrunner.c
rrunner.h
s2io-regs.h
s2io.c
s2io.h
s6gmac.c s6gmac: Read buffer overflow 2009-08-02 12:20:40 -07:00
sb1000.c
sb1250-mac.c
sc92031.c New device ID for sc92031 [1088:2031] 2009-07-20 08:27:02 -07:00
seeq8005.c
seeq8005.h
sgiseeq.c
sgiseeq.h
sh_eth.c sh_eth: remove redundant test on unsigned 2009-06-25 20:03:56 -07:00
sh_eth.h
sis190.c
sis900.c
sis900.h
skge.c skge: Enable WoL by default if supported 2009-07-22 11:24:26 -07:00
skge.h
sky2.c sky2: Avoid transmits during sky2_down() 2009-08-03 19:02:36 -07:00
sky2.h sky2: Avoid transmits during sky2_down() 2009-08-03 19:02:36 -07:00
slhc.c
slip.c
slip.h
smc-mca.c
smc-ultra.c
smc-ultra32.c
smc91x.c smc91x: fix compilation on SMP 2009-08-26 12:03:35 -07:00
smc91x.h smc91x.h: add config for Nomadik evaluation kit 2009-07-26 19:15:07 -07:00
smc911x.c
smc911x.h
smc9194.c
smc9194.h
smsc911x.c netdev: restore MTU change operation 2009-07-12 14:20:04 -07:00
smsc911x.h
smsc9420.c
smsc9420.h
sni_82596.c
sonic.c
sonic.h
spider_net.c
spider_net.h
spider_net_ethtool.c
starfire.c Remove multiple KERN_ prefixes from printk formats 2009-07-08 10:30:03 -07:00
stnic.c
sun3_82586.c
sun3_82586.h
sun3lance.c
sunbmac.c
sunbmac.h
sundance.c Remove multiple KERN_ prefixes from printk formats 2009-07-08 10:30:03 -07:00
sungem.c
sungem.h
sungem_phy.c
sungem_phy.h
sunhme.c
sunhme.h
sunlance.c
sunqe.c
sunqe.h
sunvnet.c netdev: restore MTU change operation 2009-07-12 14:20:04 -07:00
sunvnet.h
tc35815.c
tehuti.c
tehuti.h
tg3.c
tg3.h
tlan.c
tlan.h
tsi108_eth.c Remove multiple KERN_ prefixes from printk formats 2009-07-08 10:30:03 -07:00
tsi108_eth.h
tun.c tun: Extend RTNL lock coverage over whole ioctl 2009-08-09 21:45:35 -07:00
typhoon.c
typhoon.h
ucc_geth.c drivers/net: fixed drivers that support netpoll use ndo_start_xmit() 2009-08-14 16:41:16 -07:00
ucc_geth.h
ucc_geth_ethtool.c
veth.c Revert "veth: prevent oops caused by netdev destructor" 2009-06-25 02:45:42 -07:00
via-rhine.c drivers/net: fixed drivers that support netpoll use ndo_start_xmit() 2009-08-14 16:41:16 -07:00
via-velocity.c via-velocity: Fix test of mii_status bit VELOCITY_DUPLEX_FULL 2009-08-14 16:30:37 -07:00
via-velocity.h
virtio_net.c virtio: net refill on out-of-memory 2009-08-26 12:22:32 -07:00
wd.c
xen-netfront.c
xtsonic.c
yellowfin.c yellowfin: Fix buffer underrun after dev_alloc_skb() failure 2009-08-18 20:21:40 -07:00
znet.c
zorro8390.c zorro8390: Fix read buffer overflow in zorro8390_init_one() 2009-08-09 21:46:53 -07:00