[PATCH] Small change to pnp_bios.c

Thomas Hood (jdthoodREMOVETHIS@yahoo.co.uk)
Tue, 25 Sep 2001 00:03:42 -0400

This is a multi-part message in MIME format.
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

I have been trying to find out why the PnP BIOS driver
causes the disabling of all the PnP-configurable devices
on my ThinkPad 600. (One other user has reported the same
problem.) I've been checking the pnp_bios.c driver against
the spec and I found one little nit.

The spec says that after this call to the BIOS:
Q2_SET_SEL(PNP_TS1, nodenum, sizeof(char));
Q2_SET_SEL(PNP_TS2, data, 64 * 1024);
status = call_pnp_bios(PNP_GET_SYS_DEV_NODE, 0, PNP_TS1, 0, PNP_TS2, boot ? 2 : 1, PNP_DS, 0);
nodenum will be set to the next node number, or to 0xFF
if there are no more nodes. I added a check so that
the build-devlist loop will terminate if nodenum is 0xff.
This didn't solve my problem but it does seem like the
kosher thing to do. The patch also initializes the
variable "num" to zero. I know that static variables
in the kernel are automatically initialized to zero, but
I assume that the same is not true of stack variables.
Am I wrong?

The attached patch is against -ac13. Sorry, but the
-ac15 differential patch hasn't come out yet. :(

Content-Type: text/plain; charset=us-ascii;
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;

--- linux-2.4.9-ac13-mwave/drivers/pnp/pnp_bios.c_1 Fri Sep 21 16:15:44 2001
+++ linux-2.4.9-ac13-mwave/drivers/pnp/pnp_bios.c Mon Sep 24 18:32:26 2001
@@ -839,13 +839,13 @@

node = kmalloc(node_info.max_node_size, GFP_KERNEL);
if (!node)

- for(i=0;i<0xff;i++) {
+ for(i=0,num=0;i<0xff,num!=0xff;i++) {
dev = kmalloc(sizeof (struct pci_dev), GFP_KERNEL);
if (!dev)

if (pnp_bios_get_dev_node((u8 *)&num, (char )0 , node))


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/