diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-03-20 14:16:20 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-03-20 14:16:20 -0400 |
commit | 4a52246302f01596f0edf7b4a3e6425e23479192 (patch) | |
tree | f384d86722d3ccfc875e3e5e8d8726e993a922ee /drivers/s390 | |
parent | 9f9d2760da8c7f94fae119fac3e13d5a1702f8f0 (diff) | |
parent | adc80ae60eae24a43a357bf5b30fb496f34aa605 (diff) |
Merge tag 'driver-core-3.3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core
Pull driver core patches for 3.4-rc1 from Greg KH:
"Here's the big driver core merge for 3.4-rc1.
Lots of various things here, sysfs fixes/tweaks (with the nlink
breakage reverted), dynamic debugging updates, w1 drivers, hyperv
driver updates, and a variety of other bits and pieces, full
information in the shortlog."
* tag 'driver-core-3.3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (78 commits)
Tools: hv: Support enumeration from all the pools
Tools: hv: Fully support the new KVP verbs in the user level daemon
Drivers: hv: Support the newly introduced KVP messages in the driver
Drivers: hv: Add new message types to enhance KVP
regulator: Support driver probe deferral
Revert "sysfs: Kill nlink counting."
uevent: send events in correct order according to seqnum (v3)
driver core: minor comment formatting cleanups
driver core: move the deferred probe pointer into the private area
drivercore: Add driver probe deferral mechanism
DS2781 Maxim Stand-Alone Fuel Gauge battery and w1 slave drivers
w1_bq27000: Only one thread can access the bq27000 at a time.
w1_bq27000 - remove w1_bq27000_write
w1_bq27000: remove unnecessary NULL test.
sysfs: Fix memory leak in sysfs_sd_setsecdata().
intel_idle: Revert change of auto_demotion_disable_flags for Nehalem
w1: Fix w1_bq27000
driver-core: documentation: fix up Greg's email address
powernow-k6: Really enable auto-loading
powernow-k7: Fix CPU family number
...
Diffstat (limited to 'drivers/s390')
-rw-r--r-- | drivers/s390/cio/ccwgroup.c | 2 | ||||
-rw-r--r-- | drivers/s390/cio/device.c | 8 | ||||
-rw-r--r-- | drivers/s390/net/smsgiucv_app.c | 9 |
3 files changed, 5 insertions, 14 deletions
diff --git a/drivers/s390/cio/ccwgroup.c b/drivers/s390/cio/ccwgroup.c index 4f1989d27b1f..5f1dc6fb5708 100644 --- a/drivers/s390/cio/ccwgroup.c +++ b/drivers/s390/cio/ccwgroup.c | |||
@@ -580,7 +580,6 @@ void ccwgroup_driver_unregister(struct ccwgroup_driver *cdriver) | |||
580 | struct device *dev; | 580 | struct device *dev; |
581 | 581 | ||
582 | /* We don't want ccwgroup devices to live longer than their driver. */ | 582 | /* We don't want ccwgroup devices to live longer than their driver. */ |
583 | get_driver(&cdriver->driver); | ||
584 | while ((dev = driver_find_device(&cdriver->driver, NULL, NULL, | 583 | while ((dev = driver_find_device(&cdriver->driver, NULL, NULL, |
585 | __ccwgroup_match_all))) { | 584 | __ccwgroup_match_all))) { |
586 | struct ccwgroup_device *gdev = to_ccwgroupdev(dev); | 585 | struct ccwgroup_device *gdev = to_ccwgroupdev(dev); |
@@ -592,7 +591,6 @@ void ccwgroup_driver_unregister(struct ccwgroup_driver *cdriver) | |||
592 | mutex_unlock(&gdev->reg_mutex); | 591 | mutex_unlock(&gdev->reg_mutex); |
593 | put_device(dev); | 592 | put_device(dev); |
594 | } | 593 | } |
595 | put_driver(&cdriver->driver); | ||
596 | driver_unregister(&cdriver->driver); | 594 | driver_unregister(&cdriver->driver); |
597 | } | 595 | } |
598 | EXPORT_SYMBOL(ccwgroup_driver_unregister); | 596 | EXPORT_SYMBOL(ccwgroup_driver_unregister); |
diff --git a/drivers/s390/cio/device.c b/drivers/s390/cio/device.c index 47269858ecb6..02d015259461 100644 --- a/drivers/s390/cio/device.c +++ b/drivers/s390/cio/device.c | |||
@@ -1676,15 +1676,9 @@ struct ccw_device *get_ccwdev_by_busid(struct ccw_driver *cdrv, | |||
1676 | const char *bus_id) | 1676 | const char *bus_id) |
1677 | { | 1677 | { |
1678 | struct device *dev; | 1678 | struct device *dev; |
1679 | struct device_driver *drv; | ||
1680 | 1679 | ||
1681 | drv = get_driver(&cdrv->driver); | 1680 | dev = driver_find_device(&cdrv->driver, NULL, (void *)bus_id, |
1682 | if (!drv) | ||
1683 | return NULL; | ||
1684 | |||
1685 | dev = driver_find_device(drv, NULL, (void *)bus_id, | ||
1686 | __ccwdev_check_busid); | 1681 | __ccwdev_check_busid); |
1687 | put_driver(drv); | ||
1688 | 1682 | ||
1689 | return dev ? to_ccwdev(dev) : NULL; | 1683 | return dev ? to_ccwdev(dev) : NULL; |
1690 | } | 1684 | } |
diff --git a/drivers/s390/net/smsgiucv_app.c b/drivers/s390/net/smsgiucv_app.c index 4d2ea4000422..32515a201bbc 100644 --- a/drivers/s390/net/smsgiucv_app.c +++ b/drivers/s390/net/smsgiucv_app.c | |||
@@ -168,7 +168,7 @@ static int __init smsgiucv_app_init(void) | |||
168 | rc = dev_set_name(smsg_app_dev, KMSG_COMPONENT); | 168 | rc = dev_set_name(smsg_app_dev, KMSG_COMPONENT); |
169 | if (rc) { | 169 | if (rc) { |
170 | kfree(smsg_app_dev); | 170 | kfree(smsg_app_dev); |
171 | goto fail_put_driver; | 171 | goto fail; |
172 | } | 172 | } |
173 | smsg_app_dev->bus = &iucv_bus; | 173 | smsg_app_dev->bus = &iucv_bus; |
174 | smsg_app_dev->parent = iucv_root; | 174 | smsg_app_dev->parent = iucv_root; |
@@ -177,7 +177,7 @@ static int __init smsgiucv_app_init(void) | |||
177 | rc = device_register(smsg_app_dev); | 177 | rc = device_register(smsg_app_dev); |
178 | if (rc) { | 178 | if (rc) { |
179 | put_device(smsg_app_dev); | 179 | put_device(smsg_app_dev); |
180 | goto fail_put_driver; | 180 | goto fail; |
181 | } | 181 | } |
182 | 182 | ||
183 | /* convert sender to uppercase characters */ | 183 | /* convert sender to uppercase characters */ |
@@ -191,12 +191,11 @@ static int __init smsgiucv_app_init(void) | |||
191 | rc = smsg_register_callback(SMSG_PREFIX, smsg_app_callback); | 191 | rc = smsg_register_callback(SMSG_PREFIX, smsg_app_callback); |
192 | if (rc) { | 192 | if (rc) { |
193 | device_unregister(smsg_app_dev); | 193 | device_unregister(smsg_app_dev); |
194 | goto fail_put_driver; | 194 | goto fail; |
195 | } | 195 | } |
196 | 196 | ||
197 | rc = 0; | 197 | rc = 0; |
198 | fail_put_driver: | 198 | fail: |
199 | put_driver(smsgiucv_drv); | ||
200 | return rc; | 199 | return rc; |
201 | } | 200 | } |
202 | module_init(smsgiucv_app_init); | 201 | module_init(smsgiucv_app_init); |