[S390] cio: fix drvdata usage for the console subchannel
authorSebastian Ott <sebott@linux.vnet.ibm.com>
Fri, 18 Dec 2009 16:43:15 +0000 (17:43 +0100)
committerMartin Schwidefsky <sky@mschwide.boeblingen.de.ibm.com>
Fri, 18 Dec 2009 16:43:31 +0000 (17:43 +0100)
Using dev_set_drvdata prior to device_register will force the driver core
to kmalloc its private data. Since we use this for the console subchannel
lets set the drvdata before taking the subchannels spinlock.

Signed-off-by: Sebastian Ott <sebott@linux.vnet.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
drivers/s390/cio/device.c

index 73901c9e260ffbfaf29ec1c5c627fe53acb52db4..a6c7d5426fb2ba4dd2bd24d349562f84a4893fcf 100644 (file)
@@ -1519,6 +1519,7 @@ static int ccw_device_console_enable(struct ccw_device *cdev,
        sch->driver = &io_subchannel_driver;
        /* Initialize the ccw_device structure. */
        cdev->dev.parent= &sch->dev;
+       sch_set_cdev(sch, cdev);
        io_subchannel_recog(cdev, sch);
        /* Now wait for the async. recognition to come to an end. */
        spin_lock_irq(cdev->ccwlock);