Merge branch 'for-linus' of git://git390.osdl.marist.edu/pub/scm/linux-2.6
* 'for-linus' of git://git390.osdl.marist.edu/pub/scm/linux-2.6: [S390] cio: fix orb initialization in cio_start_key [S390] cio: Fix driver_data handling for ccwgroup devices.
This commit is contained in:
commit
9824b8f113
@ -113,7 +113,8 @@ ccwgroup_release (struct device *dev)
|
|||||||
|
|
||||||
for (i = 0; i < gdev->count; i++) {
|
for (i = 0; i < gdev->count; i++) {
|
||||||
if (gdev->cdev[i]) {
|
if (gdev->cdev[i]) {
|
||||||
dev_set_drvdata(&gdev->cdev[i]->dev, NULL);
|
if (dev_get_drvdata(&gdev->cdev[i]->dev) == gdev)
|
||||||
|
dev_set_drvdata(&gdev->cdev[i]->dev, NULL);
|
||||||
put_device(&gdev->cdev[i]->dev);
|
put_device(&gdev->cdev[i]->dev);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -296,6 +297,7 @@ error:
|
|||||||
if (dev_get_drvdata(&gdev->cdev[i]->dev) == gdev)
|
if (dev_get_drvdata(&gdev->cdev[i]->dev) == gdev)
|
||||||
dev_set_drvdata(&gdev->cdev[i]->dev, NULL);
|
dev_set_drvdata(&gdev->cdev[i]->dev, NULL);
|
||||||
put_device(&gdev->cdev[i]->dev);
|
put_device(&gdev->cdev[i]->dev);
|
||||||
|
gdev->cdev[i] = NULL;
|
||||||
}
|
}
|
||||||
mutex_unlock(&gdev->reg_mutex);
|
mutex_unlock(&gdev->reg_mutex);
|
||||||
put_device(&gdev->dev);
|
put_device(&gdev->dev);
|
||||||
|
@ -174,6 +174,7 @@ cio_start_key (struct subchannel *sch, /* subchannel structure */
|
|||||||
CIO_TRACE_EVENT(4, sch->dev.bus_id);
|
CIO_TRACE_EVENT(4, sch->dev.bus_id);
|
||||||
|
|
||||||
orb = &to_io_private(sch)->orb;
|
orb = &to_io_private(sch)->orb;
|
||||||
|
memset(orb, 0, sizeof(union orb));
|
||||||
/* sch is always under 2G. */
|
/* sch is always under 2G. */
|
||||||
orb->cmd.intparm = (u32)(addr_t)sch;
|
orb->cmd.intparm = (u32)(addr_t)sch;
|
||||||
orb->cmd.fmt = 1;
|
orb->cmd.fmt = 1;
|
||||||
|
Loading…
Reference in New Issue
Block a user