}
 static DEVICE_ATTR_RO(target_node);
 
+static ssize_t modalias_show(struct device *dev, struct device_attribute *attr,
+               char *buf)
+{
+       /*
+        * We only ever expect to handle device-dax instances, i.e. the
+        * @type argument to MODULE_ALIAS_DAX_DEVICE() is always zero
+        */
+       return sprintf(buf, DAX_DEVICE_MODALIAS_FMT "\n", 0);
+}
+static DEVICE_ATTR_RO(modalias);
+
 static umode_t dev_dax_visible(struct kobject *kobj, struct attribute *a, int n)
 {
        struct device *dev = container_of(kobj, struct device, kobj);
 }
 
 static struct attribute *dev_dax_attributes[] = {
+       &dev_attr_modalias.attr,
        &dev_attr_size.attr,
        &dev_attr_target_node.attr,
        NULL,