Merge tag 'mm-stable-2024-03-13-20-04' of git://git.kernel.org/pub/scm/linux/kernel...
[sfrench/cifs-2.6.git] / drivers / nvdimm / pmem.c
index 8dcc10b6db5b12c6994e2a6e1283be3eda73af29..598fe2e89bda4583d89e1f9b183c8234cf67c4be 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;