From b869178ff804c251e05de4c574ac84704f6cb663 Mon Sep 17 00:00:00 2001 From: Chris Wright Date: Thu, 15 Sep 2005 14:19:13 -0700 Subject: [PATCH] Add Yenta Oops fix from Ivan Kokshaysky --- queue/series | 1 + queue/yenta-oops-fix.patch | 48 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 49 insertions(+) create mode 100644 queue/series create mode 100644 queue/yenta-oops-fix.patch diff --git a/queue/series b/queue/series new file mode 100644 index 00000000000..001f25683dc --- /dev/null +++ b/queue/series @@ -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 index 00000000000..07b292c1348 --- /dev/null +++ b/queue/yenta-oops-fix.patch @@ -0,0 +1,48 @@ +From nobody Mon Sep 17 00:00:00 2001 +Subject: [PATCH] yenta oops fix +From: Ivan Kokshaysky +To: Olaf Hering +Cc: Andreas Koch , Marcus Wegner +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 +Signed-off-by: Linus Torvalds +Signed-off-by: Chris Wright +--- + 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; -- 2.47.3