Re: [PATCH] PnP Fixes for 2.5.74

From: Adam Belay (ambx1@neo.rr.com)
Date: Thu Jul 03 2003 - 13:41:56 EST


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/



This archive was generated by hypermail 2b29 : Mon Jul 07 2003 - 22:00:21 EST