Merge tag 'mm-stable-2024-03-13-20-04' of git://git.kernel.org/pub/scm/linux/kernel...
[linux-2.6-microblaze.git] / drivers / nvdimm / pmem.c
index 8dcc10b..598fe2e 100644 (file)
@@ -562,18 +562,19 @@ static int pmem_attach_disk(struct device *dev,
        dax_dev = alloc_dax(pmem, &pmem_dax_ops);
        if (IS_ERR(dax_dev)) {
                rc = PTR_ERR(dax_dev);
-               goto out;
+               if (rc != -EOPNOTSUPP)
+                       goto out;
+       } else {
+               set_dax_nocache(dax_dev);
+               set_dax_nomc(dax_dev);
+               if (is_nvdimm_sync(nd_region))
+                       set_dax_synchronous(dax_dev);
+               pmem->dax_dev = dax_dev;
+               rc = dax_add_host(dax_dev, disk);
+               if (rc)
+                       goto out_cleanup_dax;
+               dax_write_cache(dax_dev, nvdimm_has_cache(nd_region));
        }
-       set_dax_nocache(dax_dev);
-       set_dax_nomc(dax_dev);
-       if (is_nvdimm_sync(nd_region))
-               set_dax_synchronous(dax_dev);
-       rc = dax_add_host(dax_dev, disk);
-       if (rc)
-               goto out_cleanup_dax;
-       dax_write_cache(dax_dev, nvdimm_has_cache(nd_region));
-       pmem->dax_dev = dax_dev;
-
        rc = device_add_disk(dev, disk, pmem_attribute_groups);
        if (rc)
                goto out_remove_host;