diff options
Diffstat (limited to 'drivers/s390/cio')
-rw-r--r-- | drivers/s390/cio/ccwgroup.c | 6 | ||||
-rw-r--r-- | drivers/s390/cio/device.c | 11 | ||||
-rw-r--r-- | drivers/s390/cio/device.h | 1 | ||||
-rw-r--r-- | drivers/s390/cio/qdio_main.c | 3 |
4 files changed, 8 insertions, 13 deletions
diff --git a/drivers/s390/cio/ccwgroup.c b/drivers/s390/cio/ccwgroup.c index 2864581d8ecb..5c567414c4bb 100644 --- a/drivers/s390/cio/ccwgroup.c +++ b/drivers/s390/cio/ccwgroup.c | |||
@@ -428,7 +428,7 @@ ccwgroup_online_store (struct device *dev, struct device_attribute *attr, const | |||
428 | gdev = to_ccwgroupdev(dev); | 428 | gdev = to_ccwgroupdev(dev); |
429 | gdrv = to_ccwgroupdrv(dev->driver); | 429 | gdrv = to_ccwgroupdrv(dev->driver); |
430 | 430 | ||
431 | if (!try_module_get(gdrv->owner)) | 431 | if (!try_module_get(gdrv->driver.owner)) |
432 | return -EINVAL; | 432 | return -EINVAL; |
433 | 433 | ||
434 | ret = strict_strtoul(buf, 0, &value); | 434 | ret = strict_strtoul(buf, 0, &value); |
@@ -442,7 +442,7 @@ ccwgroup_online_store (struct device *dev, struct device_attribute *attr, const | |||
442 | else | 442 | else |
443 | ret = -EINVAL; | 443 | ret = -EINVAL; |
444 | out: | 444 | out: |
445 | module_put(gdrv->owner); | 445 | module_put(gdrv->driver.owner); |
446 | return (ret == 0) ? count : ret; | 446 | return (ret == 0) ? count : ret; |
447 | } | 447 | } |
448 | 448 | ||
@@ -616,8 +616,6 @@ int ccwgroup_driver_register(struct ccwgroup_driver *cdriver) | |||
616 | { | 616 | { |
617 | /* register our new driver with the core */ | 617 | /* register our new driver with the core */ |
618 | cdriver->driver.bus = &ccwgroup_bus_type; | 618 | cdriver->driver.bus = &ccwgroup_bus_type; |
619 | cdriver->driver.name = cdriver->name; | ||
620 | cdriver->driver.owner = cdriver->owner; | ||
621 | 619 | ||
622 | return driver_register(&cdriver->driver); | 620 | return driver_register(&cdriver->driver); |
623 | } | 621 | } |
diff --git a/drivers/s390/cio/device.c b/drivers/s390/cio/device.c index e50b12163afe..df14c51f6532 100644 --- a/drivers/s390/cio/device.c +++ b/drivers/s390/cio/device.c | |||
@@ -127,7 +127,7 @@ static int ccw_uevent(struct device *dev, struct kobj_uevent_env *env) | |||
127 | return ret; | 127 | return ret; |
128 | } | 128 | } |
129 | 129 | ||
130 | struct bus_type ccw_bus_type; | 130 | static struct bus_type ccw_bus_type; |
131 | 131 | ||
132 | static void io_subchannel_irq(struct subchannel *); | 132 | static void io_subchannel_irq(struct subchannel *); |
133 | static int io_subchannel_probe(struct subchannel *); | 133 | static int io_subchannel_probe(struct subchannel *); |
@@ -547,7 +547,7 @@ static ssize_t online_store (struct device *dev, struct device_attribute *attr, | |||
547 | if (atomic_cmpxchg(&cdev->private->onoff, 0, 1) != 0) | 547 | if (atomic_cmpxchg(&cdev->private->onoff, 0, 1) != 0) |
548 | return -EAGAIN; | 548 | return -EAGAIN; |
549 | 549 | ||
550 | if (cdev->drv && !try_module_get(cdev->drv->owner)) { | 550 | if (cdev->drv && !try_module_get(cdev->drv->driver.owner)) { |
551 | atomic_set(&cdev->private->onoff, 0); | 551 | atomic_set(&cdev->private->onoff, 0); |
552 | return -EINVAL; | 552 | return -EINVAL; |
553 | } | 553 | } |
@@ -573,7 +573,7 @@ static ssize_t online_store (struct device *dev, struct device_attribute *attr, | |||
573 | } | 573 | } |
574 | out: | 574 | out: |
575 | if (cdev->drv) | 575 | if (cdev->drv) |
576 | module_put(cdev->drv->owner); | 576 | module_put(cdev->drv->driver.owner); |
577 | atomic_set(&cdev->private->onoff, 0); | 577 | atomic_set(&cdev->private->onoff, 0); |
578 | return (ret < 0) ? ret : count; | 578 | return (ret < 0) ? ret : count; |
579 | } | 579 | } |
@@ -1970,7 +1970,7 @@ static const struct dev_pm_ops ccw_pm_ops = { | |||
1970 | .restore = ccw_device_pm_restore, | 1970 | .restore = ccw_device_pm_restore, |
1971 | }; | 1971 | }; |
1972 | 1972 | ||
1973 | struct bus_type ccw_bus_type = { | 1973 | static struct bus_type ccw_bus_type = { |
1974 | .name = "ccw", | 1974 | .name = "ccw", |
1975 | .match = ccw_bus_match, | 1975 | .match = ccw_bus_match, |
1976 | .uevent = ccw_uevent, | 1976 | .uevent = ccw_uevent, |
@@ -1993,8 +1993,6 @@ int ccw_driver_register(struct ccw_driver *cdriver) | |||
1993 | struct device_driver *drv = &cdriver->driver; | 1993 | struct device_driver *drv = &cdriver->driver; |
1994 | 1994 | ||
1995 | drv->bus = &ccw_bus_type; | 1995 | drv->bus = &ccw_bus_type; |
1996 | drv->name = cdriver->name; | ||
1997 | drv->owner = cdriver->owner; | ||
1998 | 1996 | ||
1999 | return driver_register(drv); | 1997 | return driver_register(drv); |
2000 | } | 1998 | } |
@@ -2112,5 +2110,4 @@ EXPORT_SYMBOL(ccw_device_set_offline); | |||
2112 | EXPORT_SYMBOL(ccw_driver_register); | 2110 | EXPORT_SYMBOL(ccw_driver_register); |
2113 | EXPORT_SYMBOL(ccw_driver_unregister); | 2111 | EXPORT_SYMBOL(ccw_driver_unregister); |
2114 | EXPORT_SYMBOL(get_ccwdev_by_busid); | 2112 | EXPORT_SYMBOL(get_ccwdev_by_busid); |
2115 | EXPORT_SYMBOL(ccw_bus_type); | ||
2116 | EXPORT_SYMBOL_GPL(ccw_device_get_subchannel_id); | 2113 | EXPORT_SYMBOL_GPL(ccw_device_get_subchannel_id); |
diff --git a/drivers/s390/cio/device.h b/drivers/s390/cio/device.h index 379de2d1ec49..7e297c7bb5ff 100644 --- a/drivers/s390/cio/device.h +++ b/drivers/s390/cio/device.h | |||
@@ -133,7 +133,6 @@ void ccw_device_set_notoper(struct ccw_device *cdev); | |||
133 | /* qdio needs this. */ | 133 | /* qdio needs this. */ |
134 | void ccw_device_set_timeout(struct ccw_device *, int); | 134 | void ccw_device_set_timeout(struct ccw_device *, int); |
135 | extern struct subchannel_id ccw_device_get_subchannel_id(struct ccw_device *); | 135 | extern struct subchannel_id ccw_device_get_subchannel_id(struct ccw_device *); |
136 | extern struct bus_type ccw_bus_type; | ||
137 | 136 | ||
138 | /* Channel measurement facility related */ | 137 | /* Channel measurement facility related */ |
139 | void retry_set_schib(struct ccw_device *cdev); | 138 | void retry_set_schib(struct ccw_device *cdev); |
diff --git a/drivers/s390/cio/qdio_main.c b/drivers/s390/cio/qdio_main.c index 5640c89cd9de..479c665e9e7c 100644 --- a/drivers/s390/cio/qdio_main.c +++ b/drivers/s390/cio/qdio_main.c | |||
@@ -1508,7 +1508,8 @@ int do_QDIO(struct ccw_device *cdev, unsigned int callflags, | |||
1508 | 1508 | ||
1509 | if (irq_ptr->state != QDIO_IRQ_STATE_ACTIVE) | 1509 | if (irq_ptr->state != QDIO_IRQ_STATE_ACTIVE) |
1510 | return -EBUSY; | 1510 | return -EBUSY; |
1511 | 1511 | if (!count) | |
1512 | return 0; | ||
1512 | if (callflags & QDIO_FLAG_SYNC_INPUT) | 1513 | if (callflags & QDIO_FLAG_SYNC_INPUT) |
1513 | return handle_inbound(irq_ptr->input_qs[q_nr], | 1514 | return handle_inbound(irq_ptr->input_qs[q_nr], |
1514 | callflags, bufnr, count); | 1515 | callflags, bufnr, count); |