From: Cornelia Huck Date: Fri, 8 Dec 2006 14:55:57 +0000 (+0100) Subject: [S390] Use dev->groups for adding/removing the subchannel attribute group. X-Git-Tag: v2.6.20-rc1~34^2~31^2~4 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=529192f3b90682e37c5fcab461d968d062f1e0e4;p=linux-2.6 [S390] Use dev->groups for adding/removing the subchannel attribute group. Signed-off-by: Cornelia Huck Cc: Greg KH Signed-off-by: Andrew Morton Signed-off-by: Martin Schwidefsky --- diff --git a/drivers/s390/cio/css.c b/drivers/s390/cio/css.c index 0bf7166193..4c81d89079 100644 --- a/drivers/s390/cio/css.c +++ b/drivers/s390/cio/css.c @@ -137,6 +137,7 @@ css_register_subchannel(struct subchannel *sch) sch->dev.parent = &css[0]->device; sch->dev.bus = &css_bus_type; sch->dev.release = &css_subchannel_release; + sch->dev.groups = subch_attr_groups; /* make it known to the system */ ret = css_sch_device_register(sch); @@ -146,10 +147,6 @@ css_register_subchannel(struct subchannel *sch) return ret; } css_get_ssd_info(sch); - ret = subchannel_add_files(&sch->dev); - if (ret) - printk(KERN_WARNING "%s: could not add attributes to %s\n", - __func__, sch->dev.bus_id); return ret; } diff --git a/drivers/s390/cio/css.h b/drivers/s390/cio/css.h index 71fe380f86..3464c5b875 100644 --- a/drivers/s390/cio/css.h +++ b/drivers/s390/cio/css.h @@ -195,4 +195,5 @@ extern struct workqueue_struct *slow_path_wq; extern struct work_struct slow_path_work; int subchannel_add_files (struct device *); +extern struct attribute_group *subch_attr_groups[]; #endif diff --git a/drivers/s390/cio/device.c b/drivers/s390/cio/device.c index 7fe1ccdc78..803579053c 100644 --- a/drivers/s390/cio/device.c +++ b/drivers/s390/cio/device.c @@ -235,9 +235,11 @@ chpids_show (struct device * dev, struct device_attribute *attr, char * buf) ssize_t ret = 0; int chp; - for (chp = 0; chp < 8; chp++) - ret += sprintf (buf+ret, "%02x ", ssd->chpid[chp]); - + if (ssd) + for (chp = 0; chp < 8; chp++) + ret += sprintf (buf+ret, "%02x ", ssd->chpid[chp]); + else + ret += sprintf (buf, "n/a"); ret += sprintf (buf+ret, "\n"); return min((ssize_t)PAGE_SIZE, ret); } @@ -531,10 +533,10 @@ static struct attribute_group subch_attr_group = { .attrs = subch_attrs, }; -int subchannel_add_files (struct device *dev) -{ - return sysfs_create_group(&dev->kobj, &subch_attr_group); -} +struct attribute_group *subch_attr_groups[] = { + &subch_attr_group, + NULL, +}; static struct attribute * ccwdev_attrs[] = { &dev_attr_devtype.attr,