• Johannes Thumshirn's avatar
    mcb: Implement bus->dev.release callback · 5d9e2ab9
    Johannes Thumshirn authored
    The mcb_bus structure previously was released in mcb_release_bus. This lead to
    the following warning on module unload:
    
    ------------[ cut here ]------------
    WARNING: CPU: 1 PID: 2032 at drivers/base/core.c:251 device_release+0x73/0x90
    Device 'mcb:0' does not have a release() function, it is broken and must be fixed.
    Modules linked in: men_z135_uart mcb_pci(-) mcb
    CPU: 1 PID: 2032 Comm: rmmod Not tainted 4.6.0-rc4+ #3
    Hardware name: N/A N/A/COMe-mBTi10, BIOS MVV1R921 X64 10/14/2015
     00000286 00000286 c0117de4 c12d6f16 c0117e2c c18be0d3 c0117dfc c104f6e1
     000000fb f5ccbe08 f5ccbe00 f5c64600 c0117e18 c104f728 00000009 00000000
     c0117e10 c18db674 c0117e2c c0117e3c c13ce5c3 c18be0d3 000000fb c18db674
    Call Trace:
     [<c12d6f16>] dump_stack+0x47/0x61
     [<c104f6e1>] __warn+0xc1/0xe0
     [<c104f728>] warn_slowpath_fmt+0x28/0x30
     [<c13ce5c3>] device_release+0x73/0x90
     [<c12d92e4>] kobject_release+0x34/0x80
     [<c12d929d>] ? kobject_del+0x2d/0x40
     [<c12d9205>] kobject_put+0x25/0x50
     [<c13ce77f>] put_device+0xf/0x20
     [<c13d114b>] klist_devices_put+0xb/0x10
     [<c1752673>] klist_next+0x73/0xf0
     [<c13d1140>] ? unbind_store+0x100/0x100
     [<f8a23370>] ? mcb_bus_add_devices+0x30/0x30 [mcb]
     [<c13d0a81>] bus_for_each_dev+0x51/0x80
     [<f8a23319>] mcb_release_bus+0x19/0x40 [mcb]
     [<f8a23370>] ? mcb_bus_add_devices+0x30/0x30 [mcb]
     [<f8a2b033>] mcb_pci_remove+0x13/0x20 [mcb_pci]
     [<c130d358>] pci_device_remove+0x28/0xb0
     [<c13d201b>] __device_release_driver+0x7b/0x110
     [<c13d2847>] driver_detach+0x87/0x90
     [<c13d1b9b>] bus_remove_driver+0x3b/0x80
     [<c13d2ed0>] driver_unregister+0x20/0x50
     [<c130be53>] pci_unregister_driver+0x13/0x60
     [<f8a2b1f4>] mcb_pci_driver_exit+0xd/0xf [mcb_pci]
     [<c10be588>] SyS_delete_module+0x138/0x200
     [<c1159208>] ? ____fput+0x8/0x10
     [<c1068054>] ? task_work_run+0x74/0x90
     [<c1001879>] do_fast_syscall_32+0x69/0x120
     [<c1757597>] sysenter_past_esp+0x40/0x6a
    ---[ end trace 1ed34c2aa3019875 ]---
    
    Release a mcb_bus' memory on the device's release callback, to avoid above
    warning.
    Signed-off-by: default avatarJohannes Thumshirn <jthumshirn@suse.de>
    Reported-by: default avatarAndreas Werner <andreas.werner@men.de>
    Tested-by: default avatarAndreas Werner <andreas.werner@men.de>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    5d9e2ab9
mcb-core.c 10.5 KB