Re: 2.5.69-mm5: pccard oops while booting: resolved

Russell King
2003-05-15T11:47:37Z

On Thu, May 15, 2003 at 01:36:41PM +0200, Felipe Alfaro Solana wrote:
> I applied the second half patch on top of 2.5.69-mm5 (the original
> 2.5.69-mm5 defined BUS_ID_SIZE as 20), but the "pccard" kernel task
> keeps crashing as before.
>
> Anything else for me to try? :-)

I don't believe this problem is being caused by PCMCIA/Cardbus (until
someone proves me wrong.)

This came up a few weeks ago, and it looked like the device models
driver lists became corrupted somehow. Unfortunately it wasn't proven
back then, and I haven't been able to reproduce this behaviour here.

We seem to be failing in pci_bus_match(), with pci_drv->id_table
containing an invalid address. Could you apply this patch and see
what happens? It'll be rather noisy during boot though.

The interesting one should be immediately prior to the oops.

--- orig/drivers/pci/pci-driver.c Sun Nov 24 10:12:24 2002
+++ linux/drivers/pci/pci-driver.c Thu May 15 12:58:56 2003
@@ -6,6 +6,7 @@
#include <linux/pci.h>
#include <linux/module.h>
#include <linux/init.h>
+#include <linux/kallsyms.h>
#include "pci.h"

/*
@@ -183,7 +184,9 @@
struct pci_dev * pci_dev = to_pci_dev(dev);
struct pci_driver * pci_drv = to_pci_driver(drv);
const struct pci_device_id * ids = pci_drv->id_table;
-
+printk("pci_bus_match: pci_drv = %p", pci_drv);
+print_symbol(" (%s)", pci_drv);
+printk("\n");
if (!ids)
return 0;

--
Russell King (rmk@arm.linux.org.uk) The developer of ARM Linux