Messages in this thread Patch in this message | ![/](/images/icornerl.gif) | | Date | Thu, 3 Jul 2003 18:41:56 +0000 | From | Adam Belay <> | Subject | Re: [PATCH] PnP Fixes for 2.5.74 |
| |
diff -urN a/drivers/pnp/manager.c b/drivers/pnp/manager.c --- a/drivers/pnp/manager.c 2003-07-03 00:55:25.000000000 +0000 +++ b/drivers/pnp/manager.c 2003-07-03 01:07:17.000000000 +0000 @@ -40,17 +40,20 @@ if (!(dev->res.port_resource[idx].flags & IORESOURCE_AUTO)) return 1; - if (!rule->size) - return 1; /* skip disabled resource requests */ - start = &dev->res.port_resource[idx].start; end = &dev->res.port_resource[idx].end; flags = &dev->res.port_resource[idx].flags; /* set the initial values */ + *flags = *flags | rule->flags | IORESOURCE_IO; + + if (!rule->size) { + *flags |= IORESOURCE_DISABLED; + return 1; /* skip disabled resource requests */ + } + *start = rule->min; *end = *start + rule->size - 1; - *flags = *flags | rule->flags | IORESOURCE_IO; /* run through until pnp_check_port is happy */ while (!pnp_check_port(dev, idx)) { @@ -79,16 +82,11 @@ if (!(dev->res.mem_resource[idx].flags & IORESOURCE_AUTO)) return 1; - if (!rule->size) - return 1; /* skip disabled resource requests */ - start = &dev->res.mem_resource[idx].start; end = &dev->res.mem_resource[idx].end; flags = &dev->res.mem_resource[idx].flags; /* set the initial values */ - *start = rule->min; - *end = *start + rule->size -1; *flags = *flags | rule->flags | IORESOURCE_MEM; /* convert pnp flags to standard Linux flags */ @@ -101,6 +99,14 @@ if (rule->flags & IORESOURCE_MEM_SHADOWABLE) *flags |= IORESOURCE_SHADOWABLE; + if (!rule->size) { + *flags |= IORESOURCE_DISABLED; + return 1; /* skip disabled resource requests */ + } + + *start = rule->min; + *end = *start + rule->size -1; + /* run through until pnp_check_mem is happy */ while (!pnp_check_mem(dev, idx)) { *start += rule->align; @@ -134,9 +140,6 @@ if (!(dev->res.irq_resource[idx].flags & IORESOURCE_AUTO)) return 1; - if (!rule->map) - return 1; /* skip disabled resource requests */ - start = &dev->res.irq_resource[idx].start; end = &dev->res.irq_resource[idx].end; flags = &dev->res.irq_resource[idx].flags; @@ -144,6 +147,11 @@ /* set the initial values */ *flags = *flags | rule->flags | IORESOURCE_IRQ; + if (!rule->map) { + *flags |= IORESOURCE_DISABLED; + return 1; /* skip disabled resource requests */ + } + for (i = 0; i < 16; i++) { if(rule->map & (1<<xtab[i])) { *start = *end = xtab[i]; @@ -177,9 +185,6 @@ if (!(dev->res.dma_resource[idx].flags & IORESOURCE_AUTO)) return 1; - if (!rule->map) - return 1; /* skip disabled resource requests */ - start = &dev->res.dma_resource[idx].start; end = &dev->res.dma_resource[idx].end; flags = &dev->res.dma_resource[idx].flags; @@ -187,6 +192,11 @@ /* set the initial values */ *flags = *flags | rule->flags | IORESOURCE_DMA; + if (!rule->map) { + *flags |= IORESOURCE_DISABLED; + return 1; /* skip disabled resource requests */ + } + for (i = 0; i < 8; i++) { if(rule->map & (1<<xtab[i])) { *start = *end = xtab[i]; - 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/
| ![\](/images/icornerr.gif) |