Clearing errors or badblocks during a BTT write requires sending an ACPI DSM, which means potentially sleeping. Since a BTT IO happens in atomic context (preemption disabled, spinlocks may be held), we cannot perform error clearing in the course of an IO. Due to this error clearing for BTT IOs has hitherto been disabled. This series fixes these problems by moving the error clearing out of the atomic sections in the BTT. Patch 5 makes a core ACPI change and I would like some views on it from the ACPI guys - does the problem make sense, and is this the right approach to solve it? Vishal Verma (6): btt: fix a missed NVDIMM_IO_ATOMIC case in the write path btt: refactor map entry operations with macros btt: ensure that flags were also unchanged during a map_read btt: cache sector_size in arena_info acpi: change memory allocations to GFP_NOIO libnvdimm, btt: rework error clearing drivers/nvdimm/btt.c | 111 ++++++++++++++++++++++++++++++++------ drivers/nvdimm/btt.h | 11 ++++ drivers/nvdimm/claim.c | 9 +--- include/acpi/platform/aclinuxex.h | 6 +-- 4 files changed, 109 insertions(+), 28 deletions(-) -- 2.9.3 -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html