{
        return page->hmm_data;
 }
-
-
-/*
- * struct hmm_device - fake device to hang device memory onto
- *
- * @device: device struct
- * @minor: device minor number
- */
-struct hmm_device {
-       struct device           device;
-       unsigned int            minor;
-};
-
-/*
- * A device driver that wants to handle multiple devices memory through a
- * single fake device can use hmm_device to do so. This is purely a helper and
- * it is not strictly needed, in order to make use of any HMM functionality.
- */
-struct hmm_device *hmm_device_new(void *drvdata);
-void hmm_device_put(struct hmm_device *hmm_device);
 #endif /* CONFIG_DEVICE_PRIVATE || CONFIG_DEVICE_PUBLIC */
 #else /* IS_ENABLED(CONFIG_HMM) */
 static inline void hmm_mm_destroy(struct mm_struct *mm) {}
 
        return devmem;
 }
 EXPORT_SYMBOL_GPL(hmm_devmem_add_resource);
-
-/*
- * A device driver that wants to handle multiple devices memory through a
- * single fake device can use hmm_device to do so. This is purely a helper
- * and it is not needed to make use of any HMM functionality.
- */
-#define HMM_DEVICE_MAX 256
-
-static DECLARE_BITMAP(hmm_device_mask, HMM_DEVICE_MAX);
-static DEFINE_SPINLOCK(hmm_device_lock);
-static struct class *hmm_device_class;
-static dev_t hmm_device_devt;
-
-static void hmm_device_release(struct device *device)
-{
-       struct hmm_device *hmm_device;
-
-       hmm_device = container_of(device, struct hmm_device, device);
-       spin_lock(&hmm_device_lock);
-       clear_bit(hmm_device->minor, hmm_device_mask);
-       spin_unlock(&hmm_device_lock);
-
-       kfree(hmm_device);
-}
-
-struct hmm_device *hmm_device_new(void *drvdata)
-{
-       struct hmm_device *hmm_device;
-
-       hmm_device = kzalloc(sizeof(*hmm_device), GFP_KERNEL);
-       if (!hmm_device)
-               return ERR_PTR(-ENOMEM);
-
-       spin_lock(&hmm_device_lock);
-       hmm_device->minor = find_first_zero_bit(hmm_device_mask, HMM_DEVICE_MAX);
-       if (hmm_device->minor >= HMM_DEVICE_MAX) {
-               spin_unlock(&hmm_device_lock);
-               kfree(hmm_device);
-               return ERR_PTR(-EBUSY);
-       }
-       set_bit(hmm_device->minor, hmm_device_mask);
-       spin_unlock(&hmm_device_lock);
-
-       dev_set_name(&hmm_device->device, "hmm_device%d", hmm_device->minor);
-       hmm_device->device.devt = MKDEV(MAJOR(hmm_device_devt),
-                                       hmm_device->minor);
-       hmm_device->device.release = hmm_device_release;
-       dev_set_drvdata(&hmm_device->device, drvdata);
-       hmm_device->device.class = hmm_device_class;
-       device_initialize(&hmm_device->device);
-
-       return hmm_device;
-}
-EXPORT_SYMBOL(hmm_device_new);
-
-void hmm_device_put(struct hmm_device *hmm_device)
-{
-       put_device(&hmm_device->device);
-}
-EXPORT_SYMBOL(hmm_device_put);
-
-static int __init hmm_init(void)
-{
-       int ret;
-
-       ret = alloc_chrdev_region(&hmm_device_devt, 0,
-                                 HMM_DEVICE_MAX,
-                                 "hmm_device");
-       if (ret)
-               return ret;
-
-       hmm_device_class = class_create(THIS_MODULE, "hmm_device");
-       if (IS_ERR(hmm_device_class)) {
-               unregister_chrdev_region(hmm_device_devt, HMM_DEVICE_MAX);
-               return PTR_ERR(hmm_device_class);
-       }
-       return 0;
-}
-
-device_initcall(hmm_init);
 #endif /* CONFIG_DEVICE_PRIVATE || CONFIG_DEVICE_PUBLIC */