]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
Add Yenta Oops fix from Ivan Kokshaysky
authorChris Wright <chrisw@osdl.org>
Thu, 15 Sep 2005 21:19:13 +0000 (14:19 -0700)
committerChris Wright <chrisw@osdl.org>
Thu, 15 Sep 2005 21:19:13 +0000 (14:19 -0700)
queue/series [new file with mode: 0644]
queue/yenta-oops-fix.patch [new file with mode: 0644]

diff --git a/queue/series b/queue/series
new file mode 100644 (file)
index 0000000..001f256
--- /dev/null
@@ -0,0 +1 @@
+yenta-oops-fix.patch
diff --git a/queue/yenta-oops-fix.patch b/queue/yenta-oops-fix.patch
new file mode 100644 (file)
index 0000000..07b292c
--- /dev/null
@@ -0,0 +1,48 @@
+From nobody Mon Sep 17 00:00:00 2001
+Subject: [PATCH] yenta oops fix
+From: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
+To: Olaf Hering <olh@suse.de>
+Cc: Andreas Koch <koch@esa.informatik.tu-darmstadt.de>, Marcus Wegner <wegner3000@hotmail.com>
+Date: Wed Sep 14 23:05:30 2005 +0400
+
+In some cases, especially on modern laptops with a lot of PCI and
+cardbus bridges, we're unable to assign correct secondary/subordinate
+bus numbers to all cardbus bridges due to BIOS limitations unless
+we are using "pci=assign-busses" boot option.
+So some cardbus controllers may not have attached subordinate pci_bus
+structure, and yenta driver must cope with it - just ignore such cardbus
+bridges.
+
+For example, see https://bugzilla.novell.com/show_bug.cgi?id=113778
+
+Signed-off-by: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
+Signed-off-by: Linus Torvalds <torvalds@osdl.org>
+Signed-off-by: Chris Wright <chrisw@osdl.org>
+---
+ drivers/pcmcia/yenta_socket.c |   13 ++++++++++++-
+ 1 files changed, 12 insertions(+), 1 deletion(-)
+
+Index: linux-2.6.13.y/drivers/pcmcia/yenta_socket.c
+===================================================================
+--- linux-2.6.13.y.orig/drivers/pcmcia/yenta_socket.c
++++ linux-2.6.13.y/drivers/pcmcia/yenta_socket.c
+@@ -976,7 +976,18 @@ static int __devinit yenta_probe (struct
+ {
+       struct yenta_socket *socket;
+       int ret;
+-      
++
++      /*
++       * If we failed to assign proper bus numbers for this cardbus
++       * controller during PCI probe, its subordinate pci_bus is NULL.
++       * Bail out if so.
++       */
++      if (!dev->subordinate) {
++              printk(KERN_ERROR "Yenta: no bus associated with %s!\n",
++                      pci_name(dev));
++              return -ENODEV;
++      }
++
+       socket = kmalloc(sizeof(struct yenta_socket), GFP_KERNEL);
+       if (!socket)
+               return -ENOMEM;