vserver 1.9.5.x5
[linux-2.6.git] / drivers / pnp / interface.c
index 781a4c0..8527ae6 100644 (file)
@@ -60,8 +60,8 @@ static void pnp_print_irq(pnp_info_buffer_t *buffer, char *space, struct pnp_irq
        int first = 1, i;
 
        pnp_printf(buffer, "%sirq ", space);
-       for (i = 0; i < 16; i++)
-               if (irq->map & (1<<i)) {
+       for (i = 0; i < PNP_IRQ_NR; i++)
+               if (test_bit(i, irq->map)) {
                        if (!first) {
                                pnp_printf(buffer, ",");
                        } else {
@@ -72,7 +72,7 @@ static void pnp_print_irq(pnp_info_buffer_t *buffer, char *space, struct pnp_irq
                        else
                                pnp_printf(buffer, "%i", i);
                }
-       if (!irq->map)
+       if (bitmap_empty(irq->map, PNP_IRQ_NR))
                pnp_printf(buffer, "<none>");
        if (irq->flags & IORESOURCE_IRQ_HIGHEDGE)
                pnp_printf(buffer, " High-Edge");
@@ -240,12 +240,14 @@ static ssize_t pnp_show_current_resources(struct device *dmdev, char *buf)
 {
        struct pnp_dev *dev = to_pnp_dev(dmdev);
        int i, ret;
-       pnp_info_buffer_t *buffer = (pnp_info_buffer_t *)
-                               pnp_alloc(sizeof(pnp_info_buffer_t));
-       if (!buffer)
-               return -ENOMEM;
+       pnp_info_buffer_t *buffer;
+
        if (!dev)
                return -EINVAL;
+
+       buffer = (pnp_info_buffer_t *) pnp_alloc(sizeof(pnp_info_buffer_t));
+       if (!buffer)
+               return -ENOMEM;
        buffer->len = PAGE_SIZE;
        buffer->buffer = buf;
        buffer->curr = buffer->buffer;