• Toru UCHIYAMA's avatar
    gianfar: gfar_remove needs to call unregister_netdev() · 38bddf04
    Toru UCHIYAMA authored
    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: default avatarDavid S. Miller <davem@davemloft.net>
    38bddf04
gianfar.c 61.7 KB