aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorSebastian Ott <sebott@linux.vnet.ibm.com>2009-09-11 04:28:27 -0400
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2009-09-11 04:29:41 -0400
commit3ac276f8cb020adbbc3399c47edc1100748c2c16 (patch)
tree29fd488b61bcc9ece510f10d4c1bb4966e664b1a /drivers
parent3b554a14f4bdf754ba9d2f64c2b6edf8dafe93b9 (diff)
[S390] cio: remove ccw_device init_name
We used the init_name to set the console ccw_device's name early at the boot stage. This patch moves the name setting (for all ccw devices) to the point where we actually register the device. At this time we can do dynamic allocations and therefore use dev_set_name. Signed-off-by: Sebastian Ott <sebott@linux.vnet.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/s390/cio/cio.h2
-rw-r--r--drivers/s390/cio/device.c23
2 files changed, 6 insertions, 19 deletions
diff --git a/drivers/s390/cio/cio.h b/drivers/s390/cio/cio.h
index 883e19d83e4..2e43558c704 100644
--- a/drivers/s390/cio/cio.h
+++ b/drivers/s390/cio/cio.h
@@ -133,13 +133,11 @@ extern int cio_is_console(struct subchannel_id);
133extern struct subchannel *cio_get_console_subchannel(void); 133extern struct subchannel *cio_get_console_subchannel(void);
134extern spinlock_t * cio_get_console_lock(void); 134extern spinlock_t * cio_get_console_lock(void);
135extern void *cio_get_console_priv(void); 135extern void *cio_get_console_priv(void);
136extern const char *cio_get_console_cdev_name(struct subchannel *sch);
137#else 136#else
138#define cio_is_console(schid) 0 137#define cio_is_console(schid) 0
139#define cio_get_console_subchannel() NULL 138#define cio_get_console_subchannel() NULL
140#define cio_get_console_lock() NULL 139#define cio_get_console_lock() NULL
141#define cio_get_console_priv() NULL 140#define cio_get_console_priv() NULL
142#define cio_get_console_cdev_name(sch) NULL
143#endif 141#endif
144 142
145#endif 143#endif
diff --git a/drivers/s390/cio/device.c b/drivers/s390/cio/device.c
index 345a61f45a5..0f95405c2c5 100644
--- a/drivers/s390/cio/device.c
+++ b/drivers/s390/cio/device.c
@@ -669,8 +669,12 @@ static int ccw_device_register(struct ccw_device *cdev)
669 int ret; 669 int ret;
670 670
671 dev->bus = &ccw_bus_type; 671 dev->bus = &ccw_bus_type;
672 672 ret = dev_set_name(&cdev->dev, "0.%x.%04x", cdev->private->dev_id.ssid,
673 if ((ret = device_add(dev))) 673 cdev->private->dev_id.devno);
674 if (ret)
675 return ret;
676 ret = device_add(dev);
677 if (ret)
674 return ret; 678 return ret;
675 679
676 set_bit(1, &cdev->private->registered); 680 set_bit(1, &cdev->private->registered);
@@ -1124,13 +1128,6 @@ io_subchannel_recog(struct ccw_device *cdev, struct subchannel *sch)
1124 init_waitqueue_head(&priv->wait_q); 1128 init_waitqueue_head(&priv->wait_q);
1125 init_timer(&priv->timer); 1129 init_timer(&priv->timer);
1126 1130
1127 /* Set an initial name for the device. */
1128 if (cio_is_console(sch->schid))
1129 cdev->dev.init_name = cio_get_console_cdev_name(sch);
1130 else
1131 dev_set_name(&cdev->dev, "0.%x.%04x",
1132 sch->schid.ssid, sch->schib.pmcw.dev);
1133
1134 /* Increase counter of devices currently in recognition. */ 1131 /* Increase counter of devices currently in recognition. */
1135 atomic_inc(&ccw_device_init_count); 1132 atomic_inc(&ccw_device_init_count);
1136 1133
@@ -1731,7 +1728,6 @@ static int io_subchannel_sch_event(struct subchannel *sch, int slow)
1731 1728
1732#ifdef CONFIG_CCW_CONSOLE 1729#ifdef CONFIG_CCW_CONSOLE
1733static struct ccw_device console_cdev; 1730static struct ccw_device console_cdev;
1734static char console_cdev_name[10] = "0.x.xxxx";
1735static struct ccw_device_private console_private; 1731static struct ccw_device_private console_private;
1736static int console_cdev_in_use; 1732static int console_cdev_in_use;
1737 1733
@@ -1815,13 +1811,6 @@ int ccw_device_force_console(void)
1815 return ccw_device_pm_restore(&console_cdev.dev); 1811 return ccw_device_pm_restore(&console_cdev.dev);
1816} 1812}
1817EXPORT_SYMBOL_GPL(ccw_device_force_console); 1813EXPORT_SYMBOL_GPL(ccw_device_force_console);
1818
1819const char *cio_get_console_cdev_name(struct subchannel *sch)
1820{
1821 snprintf(console_cdev_name, 10, "0.%x.%04x",
1822 sch->schid.ssid, sch->schib.pmcw.dev);
1823 return (const char *)console_cdev_name;
1824}
1825#endif 1814#endif
1826 1815
1827/* 1816/*