aboutsummaryrefslogtreecommitdiffstats
path: root/driver
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@suse.de>2006-04-05 18:07:10 -0700
committerGreg Kroah-Hartman <gregkh@suse.de>2006-04-05 18:07:10 -0700
commita40244989bc064de5f71bb6015a7e8b0d3df827a (patch)
treeb518469cb1142602d19941b6629821176e346ff0 /driver
parent688ad0ac7301d27e1d30e1e4e706bd8ac5c24258 (diff)
downloadpatches-a40244989bc064de5f71bb6015a7e8b0d3df827a.tar.gz
removed broken patch
Diffstat (limited to 'driver')
-rw-r--r--driver/bus_add_device-losing-an-error-return-from-the-probe-method.patch74
1 files changed, 0 insertions, 74 deletions
diff --git a/driver/bus_add_device-losing-an-error-return-from-the-probe-method.patch b/driver/bus_add_device-losing-an-error-return-from-the-probe-method.patch
deleted file mode 100644
index c3e5e86206034..0000000000000
--- a/driver/bus_add_device-losing-an-error-return-from-the-probe-method.patch
+++ /dev/null
@@ -1,74 +0,0 @@
-From rene.herman@keyaccess.nl Thu Mar 23 21:32:00 2006
-Message-ID: <44238489.8090402@keyaccess.nl>
-Date: Fri, 24 Mar 2006 06:32:57 +0100
-From: Rene Herman <rene.herman@keyaccess.nl>
-To: Greg Kroah-Hartman <gregkh@suse.de>
-Cc: Takashi Iwai <tiwai@suse.de>, ALSA devel <alsa-devel@alsa-project.org>, Linux Kernel <linux-kernel@vger.kernel.org>
-Subject: bus_add_device() losing an error return from the probe() method
-
-ALSA moved all ISA drivers over to the platform_driver interface in
-2.6.16, using this code structure in the module_inits:
-
- cards = 0;
- for (i = 0; i < SNDRV_CARDS; i++) {
- struct platform_device *device;
- device = platform_device_register_simple(
- SND_FOO_DRIVER, i, NULL, 0);
- if (IS_ERR(device)) {
- err = PTR_ERR(device);
- goto errout;
- }
- devices[i] = device;
- cards++;
- }
- if (!cards) {
- printk(KERN_ERR "FOO soundcard not found or device busy\n");
- err = -ENODEV;
- goto errout;
- }
- return 0;
-errout:
- snd_foo_unregister_all();
- return err;
-
-Unfortunately, the snd_foo_unregister_all() part here is unreachable
-under normal circumstances, since platform_device_register_simple()
-returns !IS_ERR, regardless of what the driver probe method returned.
-The driver then never fails to load, even when no cards were found.
-
-An error return from the driver probe() method is carried up through
-device_attach, but is then dropped on the floor in bus_add_device(). If
-I apply the attached patch, things work as I (and ALSA it seems) expect.
-
-From: Rene Herman <rene.herman@keyaccess.nl>
-Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-
----
- drivers/base/bus.c | 13 ++++++++-----
- 1 file changed, 8 insertions(+), 5 deletions(-)
-
---- gregkh-2.6.orig/drivers/base/bus.c
-+++ gregkh-2.6/drivers/base/bus.c
-@@ -372,14 +372,17 @@ int bus_add_device(struct device * dev)
-
- if (bus) {
- pr_debug("bus %s: add device %s\n", bus->name, dev->bus_id);
-- device_attach(dev);
-+ error = device_attach(dev);
-+ if (error < 0)
-+ goto exit;
- klist_add_tail(&dev->knode_bus, &bus->klist_devices);
- error = device_add_attrs(bus, dev);
-- if (!error) {
-- sysfs_create_link(&bus->devices.kobj, &dev->kobj, dev->bus_id);
-- sysfs_create_link(&dev->kobj, &dev->bus->subsys.kset.kobj, "bus");
-- }
-+ if (error)
-+ goto exit;
-+ sysfs_create_link(&bus->devices.kobj, &dev->kobj, dev->bus_id);
-+ sysfs_create_link(&dev->kobj, &dev->bus->subsys.kset.kobj, "bus");
- }
-+exit:
- return error;
- }
-