From: Bastian Blank Date: Sun, 30 Oct 2005 23:00:12 +0000 (-0800) Subject: [PATCH] s390, ccw - export modalias X-Git-Tag: v2.6.15-rc1~59^2~15^2~128 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f1fc78a8c7f3a784b9fd1e07cc1438a0ea569555;p=linux-2.6 [PATCH] s390, ccw - export modalias This patch exports modalias for ccw devices. So you can do: modprobe `echo /sys/device/path_to_device/modalias` and the proper driver will automatically be loaded by userspace. Signed-off-by: Bastian Blank Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- diff --git a/drivers/s390/cio/device.c b/drivers/s390/cio/device.c index 9adc11e8b8..1c2659766c 100644 --- a/drivers/s390/cio/device.c +++ b/drivers/s390/cio/device.c @@ -251,6 +251,23 @@ cutype_show (struct device *dev, struct device_attribute *attr, char *buf) id->cu_type, id->cu_model); } +static ssize_t +modalias_show (struct device *dev, struct device_attribute *attr, char *buf) +{ + struct ccw_device *cdev = to_ccwdev(dev); + struct ccw_device_id *id = &(cdev->id); + int ret; + + ret = sprintf(buf, "ccw:t%04Xm%02x", + id->cu_type, id->cu_model); + if (id->dev_type != 0) + ret += sprintf(buf + ret, "dt%04Xdm%02X\n", + id->dev_type, id->dev_model); + else + ret += sprintf(buf + ret, "dtdm\n"); + return ret; +} + static ssize_t online_show (struct device *dev, struct device_attribute *attr, char *buf) { @@ -448,6 +465,7 @@ static DEVICE_ATTR(chpids, 0444, chpids_show, NULL); static DEVICE_ATTR(pimpampom, 0444, pimpampom_show, NULL); static DEVICE_ATTR(devtype, 0444, devtype_show, NULL); static DEVICE_ATTR(cutype, 0444, cutype_show, NULL); +static DEVICE_ATTR(modalias, 0444, modalias_show, NULL); static DEVICE_ATTR(online, 0644, online_show, online_store); extern struct device_attribute dev_attr_cmb_enable; static DEVICE_ATTR(availability, 0444, available_show, NULL); @@ -471,6 +489,7 @@ subchannel_add_files (struct device *dev) static struct attribute * ccwdev_attrs[] = { &dev_attr_devtype.attr, &dev_attr_cutype.attr, + &dev_attr_modalias.attr, &dev_attr_online.attr, &dev_attr_cmb_enable.attr, &dev_attr_availability.attr,