}
 static DEVICE_ATTR(hostnqn, S_IRUGO, nvme_sysfs_show_hostnqn, NULL);
 
+static ssize_t nvme_sysfs_show_hostid(struct device *dev,
+                                       struct device_attribute *attr,
+                                       char *buf)
+{
+       struct nvme_ctrl *ctrl = dev_get_drvdata(dev);
+
+       return snprintf(buf, PAGE_SIZE, "%pU\n", &ctrl->opts->host->id);
+}
+static DEVICE_ATTR(hostid, S_IRUGO, nvme_sysfs_show_hostid, NULL);
+
 static ssize_t nvme_sysfs_show_address(struct device *dev,
                                         struct device_attribute *attr,
                                         char *buf)
        &dev_attr_queue_count.attr,
        &dev_attr_sqsize.attr,
        &dev_attr_hostnqn.attr,
+       &dev_attr_hostid.attr,
        NULL
 };
 
                return 0;
        if (a == &dev_attr_hostnqn.attr && !ctrl->opts)
                return 0;
+       if (a == &dev_attr_hostid.attr && !ctrl->opts)
+               return 0;
 
        return a->mode;
 }