> +
> + /* 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