diff options
author | Greg Kroah-Hartman <gregkh@suse.de> | 2006-04-05 18:07:10 -0700 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2006-04-05 18:07:10 -0700 |
commit | a40244989bc064de5f71bb6015a7e8b0d3df827a (patch) | |
tree | b518469cb1142602d19941b6629821176e346ff0 /driver | |
parent | 688ad0ac7301d27e1d30e1e4e706bd8ac5c24258 (diff) | |
download | patches-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.patch | 74 |
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; - } - |