From: Huaisheng Ye <[email protected]>

dcssblk_direct_access() needs to check the validity of pointer pfn for
NULL assignment. If pfn equals to NULL, it doesn't need to calculate the
value. This is in support of asynchronous memmap init and avoid page
lookups when possible.

Signed-off-by: Huaisheng Ye <[email protected]>
Reviewed-by: Jan Kara <[email protected]>
Signed-off-by: Dan Williams <[email protected]>
---
 drivers/s390/block/dcssblk.c |    5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/s390/block/dcssblk.c b/drivers/s390/block/dcssblk.c
index ed607288e696..a645b2c93c34 100644
--- a/drivers/s390/block/dcssblk.c
+++ b/drivers/s390/block/dcssblk.c
@@ -923,8 +923,9 @@ __dcssblk_direct_access(struct dcssblk_dev_info *dev_info, 
pgoff_t pgoff,
 
        dev_sz = dev_info->end - dev_info->start + 1;
        *kaddr = (void *) dev_info->start + offset;
-       *pfn = __pfn_to_pfn_t(PFN_DOWN(dev_info->start + offset),
-                       PFN_DEV|PFN_SPECIAL);
+       if (pfn)
+               *pfn = __pfn_to_pfn_t(PFN_DOWN(dev_info->start + offset),
+                               PFN_DEV|PFN_SPECIAL);
 
        return (dev_sz - offset) / PAGE_SIZE;
 }

_______________________________________________
Linux-nvdimm mailing list
[email protected]
https://lists.01.org/mailman/listinfo/linux-nvdimm

Reply via email to