On Mon, Nov 04, 2002 at 01:54:59PM +1100, CaT wrote:
> When I unselect PNP BIOS the kernel boots fine. With it I get the
> oops below. Please note that it was typed out manually and that that was
> all that I could get as I could not scroll up or down in any way.
>
> The PC is a Gateway laptop.
>
> If you need more info, please holler.
>
Instead of adding your PnP BIOS to the black list, I may know a way to
support it completely even though it is broken.
To prove this idea could you please do the following:
1.) apply patch 1 (attached below) to a clean kernel (2.5.45). Compile the
kernel with PnP BIOS support and list the last few messages that start with
"pnp!!!:" before it panics. You probably will want to have kernel debugging
off so it doesn't scroll the messages off the screen.
2.) Apply patch 2 (attached below) to a clean kernel (2.5.45). Compile the
kernel with PnP BIOS support. It should start up completely without a panic.
This is not a complete fix however. Anyway attach a copy of the output from
dmesg.
If my theory is correct I will have a fix out soon.
thanks,
Adam
patch 1---------------------------------------------------------------------
diff -ur stock/drivers/pnp/pnpbios/core.c debug/drivers/pnp/pnpbios/core.c
--- stock/drivers/pnp/pnpbios/core.c Thu Oct 31 00:41:38 2002
+++ debug/drivers/pnp/pnpbios/core.c Mon Nov 4 15:48:56 2002
@@ -1421,6 +1421,7 @@
memcpy(dev->name,"Unknown Device",13);
dev->name[14] = '\0';
pnpid32_to_pnpid(node->eisa_id,id);
+ printk(KERN_ERR "PNP!!!: Node number: 0x%x EISA ID: %s\n", (unsigned int)thisnodenum, id);
memcpy(dev_id->id,id,8);
pnp_add_id(dev_id, dev);
pos = node_current_resource_data_to_dev(node,dev);
patch 2---------------------------------------------------------------------
diff -ur stock/drivers/pnp/pnpbios/core.c debug/drivers/pnp/pnpbios/core.c
--- stock/drivers/pnp/pnpbios/core.c Thu Oct 31 00:41:38 2002
+++ debug/drivers/pnp/pnpbios/core.c Mon Nov 4 15:50:41 2002
@@ -1405,7 +1405,7 @@
* asking for the "current" config causes some
* BIOSes to crash.
*/
- if (pnp_bios_get_dev_node(&nodenum, (char )0 , node))
+ if (pnp_bios_get_dev_node(&nodenum, (char )1 , node))
break;
nodes_got++;
dev = pnpbios_kmalloc(sizeof (struct pnp_dev), GFP_KERNEL);
@@ -1421,6 +1421,7 @@
memcpy(dev->name,"Unknown Device",13);
dev->name[14] = '\0';
pnpid32_to_pnpid(node->eisa_id,id);
+ printk(KERN_ERR "PNP!!!: Node number: 0x%x EISA ID: %s\n", (unsigned int)thisnodenum, id);
memcpy(dev_id->id,id,8);
pnp_add_id(dev_id, dev);
pos = node_current_resource_data_to_dev(node,dev);
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
This archive was generated by hypermail 2b29 : Thu Nov 07 2002 - 22:00:34 EST