From: Pankaj Gupta <pagupta@redhat.com>
Date: Tue, 30 Jul 2019 11:37:08 +0000 (+0530)
Subject: dm table: fix dax_dev NULL dereference in device_synchronous()
X-Git-Tag: v5.3-rc3~23^2~1
X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=5348deb138abb90ca8f728356772e38abc791cf9;p=users%2Fjedix%2Flinux-maple.git

dm table: fix dax_dev NULL dereference in device_synchronous()

If a device doesn't support DAX its 'dax_dev' is NULL.  Fix
device_synchronous() to first check if dax_dev is NULL before
dereferencing it.

Fixes: 2e9ee0955d3c ("dm: enable synchronous dax")
Reported-by: jencce.kernel@gmail.com
Signed-off-by: Pankaj Gupta <pagupta@redhat.com>
Acked-by: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
---

diff --git a/drivers/md/dm-table.c b/drivers/md/dm-table.c
index caaee8032afe..12857beaa7f9 100644
--- a/drivers/md/dm-table.c
+++ b/drivers/md/dm-table.c
@@ -894,7 +894,7 @@ int device_supports_dax(struct dm_target *ti, struct dm_dev *dev,
 static int device_synchronous(struct dm_target *ti, struct dm_dev *dev,
 				       sector_t start, sector_t len, void *data)
 {
-	return dax_synchronous(dev->dax_dev);
+	return dev->dax_dev && dax_synchronous(dev->dax_dev);
 }
 
 bool dm_table_supports_dax(struct dm_table *t,