From cornelia.huck@de.ibm.com Mon Jun 23 08:24:31 2008 From: Cornelia Huck Date: Mon, 23 Jun 2008 17:24:15 +0200 Subject: s390: bus_id -> dev_set_name() for css and ccw busses To: Greg KH Cc: Stephen Rothwell , linux-next@vger.kernel.org, Martin Schwidefsky Message-ID: <20080623172415.5dece56b@gondolin.boeblingen.de.ibm.com> From: Cornelia Huck Convert remaining s390 users setting bus_id to dev_set_name() or init_name. Signed-off-by: Cornelia Huck Signed-off-by: Greg Kroah-Hartman --- linux-2.6.orig/drivers/s390/cio/cio.c +++ linux-2.6/drivers/s390/cio/cio.c @@ -529,8 +529,10 @@ cio_validate_subchannel (struct subchann } mutex_init(&sch->reg_mutex); /* Set a name for the subchannel */ - snprintf (dev_name(&sch->dev), BUS_ID_SIZE, "0.%x.%04x", schid.ssid, - schid.sch_no); + if (cio_is_console(schid)) + sch->dev.init_name = cio_get_console_sch_name(schid); + else + dev_set_name(&sch->dev, "0.%x.%04x", schid.ssid, schid.sch_no); /* * The first subchannel that is not-operational (ccode==3) @@ -681,6 +683,7 @@ do_IRQ (struct pt_regs *regs) #ifdef CONFIG_CCW_CONSOLE static struct subchannel console_subchannel; +static char console_sch_name[10] = "0.x.xxxx"; static struct io_subchannel_private console_priv; static int console_subchannel_in_use; @@ -831,6 +834,12 @@ cio_get_console_subchannel(void) return &console_subchannel; } +const char *cio_get_console_sch_name(struct subchannel_id schid) +{ + snprintf(console_sch_name, 10, "0.%x.%04x", schid.ssid, schid.sch_no); + return (const char *)console_sch_name; +} + #endif static int __disable_subchannel_easy(struct subchannel_id schid, struct schib *schib) Index: linux-2.6/drivers/s390/cio/cio.h =================================================================== --- linux-2.6.orig/drivers/s390/cio/cio.h +++ linux-2.6/drivers/s390/cio/cio.h @@ -111,11 +111,15 @@ extern int cio_is_console(struct subchan extern struct subchannel *cio_get_console_subchannel(void); extern spinlock_t * cio_get_console_lock(void); extern void *cio_get_console_priv(void); +extern const char *cio_get_console_sch_name(struct subchannel_id schid); +extern const char *cio_get_console_cdev_name(struct subchannel *sch); #else #define cio_is_console(schid) 0 #define cio_get_console_subchannel() NULL #define cio_get_console_lock() NULL #define cio_get_console_priv() NULL +#define cio_get_console_sch_name(schid) NULL +#define cio_get_console_cdev_name(sch) NULL #endif #endif Index: linux-2.6/drivers/s390/cio/device.c =================================================================== --- linux-2.6.orig/drivers/s390/cio/device.c +++ linux-2.6/drivers/s390/cio/device.c @@ -1051,8 +1051,11 @@ io_subchannel_recog(struct ccw_device *c init_timer(&priv->timer); /* Set an initial name for the device. */ - snprintf (cdev->dev.bus_id, BUS_ID_SIZE, "0.%x.%04x", - sch->schid.ssid, sch->schib.pmcw.dev); + if (cio_is_console(sch->schid)) + cdev->dev.init_name = cio_get_console_cdev_name(sch); + else + dev_set_name(&cdev->dev, "0.%x.%04x", + sch->schid.ssid, sch->schib.pmcw.dev); /* Increase counter of devices currently in recognition. */ atomic_inc(&ccw_device_init_count); @@ -1287,6 +1290,7 @@ io_subchannel_shutdown(struct subchannel #ifdef CONFIG_CCW_CONSOLE static struct ccw_device console_cdev; +static char console_cdev_name[10] = "0.x.xxxx"; static struct ccw_device_private console_private; static int console_cdev_in_use; @@ -1355,6 +1359,14 @@ ccw_device_probe_console(void) console_cdev.online = 1; return &console_cdev; } + + +const char *cio_get_console_cdev_name(struct subchannel *sch) +{ + snprintf(console_cdev_name, 10, "0.%x.%04x", + sch->schid.ssid, sch->schib.pmcw.dev); + return (const char *)console_cdev_name; +} #endif /*