* upon seeing dax_dev->alive == false.
         */
        dax_dev->alive = false;
-       synchronize_rcu();
+       synchronize_srcu(&dax_srcu);
        unmap_mapping_range(dax_dev->inode->i_mapping, 0, 0, 1);
 -      cdev_del(cdev);
 -      device_unregister(dev);
 +}
 +
 +static void unregister_dax_dev(void *dev)
 +{
 +      struct dax_dev *dax_dev = to_dax_dev(dev);
 +
 +      dev_dbg(dev, "%s\n", __func__);
 +
 +      kill_dax_dev(dax_dev);
 +      cdev_device_del(&dax_dev->cdev, dev);
 +      put_device(dev);
  }
  
  struct dax_dev *devm_create_dax_dev(struct dax_region *dax_region,