FAILED: patch "[PATCH] libnvdimm/pmem: Honor force_raw for legacy pmem regions" failed to apply to 4.4-stable tree
Subsystems (2)
[email protected]
maintainerThe patch below does not apply to the 4.4-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From fa7d2e639cd90442d868dfc6ca1d4cc9d8bf206e Mon Sep 17 00:00:00 2001
From: Dan Williams <[email protected]>
Date: Thu, 24 Jan 2019 17:33:06 -0800
Subject: [PATCH] libnvdimm/pmem: Honor force_raw for legacy pmem regions
For recovery, where non-dax access is needed to a given physical address range, and testing, allow the 'force_raw' attribute to override the default establishment of a dev_pagemap.
Otherwise without this capability it is possible to end up with a namespace that can not be activated due to corrupted info-block, and one that can not be repaired due to a section collision.
drivers/nvdimm/namespace_devs.c +4 -0
@@ -138,6 +138,7 @@ bool nd_is_uuid_unique(struct device *dev, u8 *uuid)bool pmem_should_map_pages (struct device *dev) {struct nd_region *nd_region =to_nd_region (dev->parent); +struct nd_namespace_common *ndns =to_ndns (dev);struct nd_namespace_io *nsio;if (!IS_ENABLED (CONFIG_ZONE_DEVICE ))
@@ -149,6 +150,9 @@ bool pmem_should_map_pages(struct device *dev)if (is_nd_pfn (dev) ||is_nd_btt (dev))return false; +if (ndns->force_raw) +return false; + nsio =to_nd_namespace_io (dev); if (region_intersects(nsio->res.start, resource_size(&nsio->res), IORESOURCE_SYSTEM_RAM,