This v3 changes the approach for the deadlock fix with wrappers which provide the same solution of the try_module_get(). This is less code, should be easier to review. The last patch is also new. I dropped the bdget() stuff for the block device and instead am doing a direct kobject fetch as well as a bus get to provide a more generic solution without having to require each type to implement its own refcounts. This series also available on my linux-next repository: https://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux-next.git/log/?h=20210427-sysfs-fix-races-v5 Luis Chamberlain (3): zram: fix crashes due to use of cpu hotplug multistate zram: fix deadlock with sysfs attribute usage and driver removal drivers/base/core: refcount kobject and bus on device attribute read / store drivers/base/base.h | 2 + drivers/base/bus.c | 4 +- drivers/base/core.c | 42 +++++++++- drivers/block/zram/zram_drv.c | 141 ++++++++++++++++++++++++---------- drivers/block/zram/zram_drv.h | 40 ++++++++++ 5 files changed, 181 insertions(+), 48 deletions(-) -- 2.30.2