vserver 1.9.5.x5
[linux-2.6.git] / drivers / pnp / pnpbios / rsparser.c
index 7aafbf8..618ac15 100644 (file)
@@ -8,6 +8,12 @@
 #include <linux/pnp.h>
 #include <linux/pnpbios.h>
 
+#ifdef CONFIG_PCI
+#include <linux/pci.h>
+#else
+inline void pcibios_penalize_isa_irq(int irq) {}
+#endif /* CONFIG_PCI */
+
 #include "pnpbios.h"
 
 /* standard resource tags */
@@ -58,6 +64,7 @@ pnpbios_parse_allocated_irqresource(struct pnp_resource_table * res, int irq)
                }
                res->irq_resource[i].start =
                res->irq_resource[i].end = (unsigned long) irq;
+               pcibios_penalize_isa_irq(irq);
        }
 }
 
@@ -285,10 +292,13 @@ static void
 pnpbios_parse_irq_option(unsigned char *p, int size, struct pnp_option *option)
 {
        struct pnp_irq * irq;
+       unsigned long bits;
+
        irq = pnpbios_kmalloc(sizeof(struct pnp_irq), GFP_KERNEL);
        if (!irq)
                return;
-       irq->map = (p[2] << 8) | p[1];
+       bits = (p[2] << 8) | p[1];
+       bitmap_copy(irq->map, &bits, 16);
        if (size > 2)
                irq->flags = p[3];
        else