> > + > > + /* Walk and offline every singe memory_block of the dax region. */ > > + lock_device_hotplug(); > > + rc = walk_memory_range(start_pfn, end_pfn, dev, offline_memblock_cb); > > + unlock_device_hotplug(); > > + if (rc) > > + return rc; > > This potential early return is the reason why memory hotremove is not > reliable vs the driver-core. If this walk fails to offline the memory > it will still be online, but the driver-core has no consideration for > device-unbind failing. The ubind will proceed while the memory stays > pinned. Hi Dan, Thank you for looking at this. Are you saying, that if drv.remove() returns a failure it is simply ignored, and unbind proceeds? Pasha