• Sebastian Siewior's avatar
    net/cpsw: make sure modules remove does not leak any ressources · d1bd9acf
    Sebastian Siewior authored
    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: default avatarSebastian Andrzej Siewior <bigeasy@linutronix.de>
    Acked-by: default avatarMugunthan V N <mugunthanvnm@ti.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    d1bd9acf
cpsw.c 53.6 KB