> > Yes, also I think you can let go of the device_lock in > check_memblocks_offline_cb, lock_device_hotplug() should take care of > this (see Documentation/core-api/memory-hotplug.rst - "locking internals") > Hi David, Thank you for your comments. I went through memory-hotplug.rst, and I still think that device_lock() is needed here. In this particular case it can be replaced with something like READ_ONCE(), but for simplicity it is better to have device_lock()/device_unlock() as this is not a performance critical code. I do not see any lock ordering issues with this code, as we are holding lock_device_hotplug() first that prevents userland from adding/removing memory during this check. https://soleen.com/source/xref/linux/arch/powerpc/platforms/powernv/memtrace.c?r=98fa15f3#248 Here we have a similar code: lock_device_hotplug(); online_mem_block(); device_online() device_lock(dev); Pasha