On Tue, Aug 01, 2017 at 05:02:25PM +0900, Ethan Zhao wrote: > There is no enough error handling in block device adding/registration > path, for example, > > device_add_disk() > blk_register_queue() > > When kernel returns from device_add_disk(), no return value to tell > us it was successful or not --- that suggests it would always succeed, > and according to this assumption, then during block device removal/ > unregistration steps, > > sd_remove() > del_gendisk() > blk_unregister_queue() > > dpm_sysfs_remove(), blk_trace_remove_sysfs() will be called blindly, > though there is likely no 'trace' 'power' sysfs groups there because > actually blk_register_queue()/device_add() failed somewhere. thus > causes WARN flood emitted from sysfs_remove_group() as following triggered > by unloading fnic driver: Then fix the real issue here, don't paper over the issue by changing the sysfs core please. No other subsystem seems to be having this issue. thanks, greg k-h