net/cpsw: make sure modules remove does not leak any ressources
authorSebastian Siewior <bigeasy@linutronix.de>
Wed, 24 Apr 2013 08:48:23 +0000 (08:48 +0000)
committerDavid S. Miller <davem@davemloft.net>
Thu, 25 Apr 2013 08:12:29 +0000 (04:12 -0400)
commitd1bd9acfa3419dc9d5c32589b34a370ca6ae100e
tree71f1e076abd4d043f5eadb83b8c252fd5d6c02b5
parent4bc21d4162366bb892dc1a4a92110c656e2622ca
net/cpsw: make sure modules remove does not leak any ressources

This driver does not clean up properly after leaving. Here is a list:
- Use unregister_netdev(). free_netdev() is good but not enough
- Use the above also on the other ndev in case of dual mac
- Free data.slave_data. The name of the strucre makes it look like
  it is platform_data but it is not. It is just a trick!
- Free all irqs. Again: freeing one irq is good start, but freeing all
  of them is better.

With this rmmod & modprobe of cpsw seems to work. The remaining issue
is:
|WARNING: at fs/sysfs/dir.c:536 sysfs_add_one+0x9c/0xd4()
|sysfs: cannot create duplicate filename '/devices/ocp.2/4a100000.ethernet/4a101000.mdio'
|WARNING: at lib/kobject.c:196 kobject_add_internal+0x1a4/0x1c8()

comming from of_platform_populate() and I am not sure that this belongs
here.

Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Acked-by: Mugunthan V N <mugunthanvnm@ti.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/ti/cpsw.c