Fedora kernel-2.6.17-1.2142_FC4 patched with stable patch-2.6.17.4-vs2.0.2-rc26.diff
[linux-2.6.git] / drivers / pnp / interface.c
index 781a4c0..a2d8ce7 100644 (file)
@@ -29,7 +29,7 @@ struct pnp_info_buffer {
 
 typedef struct pnp_info_buffer pnp_info_buffer_t;
 
-int pnp_printf(pnp_info_buffer_t * buffer, char *fmt,...)
+static int pnp_printf(pnp_info_buffer_t * buffer, char *fmt,...)
 {
        va_list args;
        int res;
@@ -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");
@@ -205,7 +205,7 @@ static void pnp_print_option(pnp_info_buffer_t *buffer, char *space,
 }
 
 
-static ssize_t pnp_show_options(struct device *dmdev, char *buf)
+static ssize_t pnp_show_options(struct device *dmdev, struct device_attribute *attr, char *buf)
 {
        struct pnp_dev *dev = to_pnp_dev(dmdev);
        struct pnp_option * independent = dev->independent;
@@ -236,16 +236,18 @@ static ssize_t pnp_show_options(struct device *dmdev, char *buf)
 static DEVICE_ATTR(options,S_IRUGO,pnp_show_options,NULL);
 
 
-static ssize_t pnp_show_current_resources(struct device *dmdev, char *buf)
+static ssize_t pnp_show_current_resources(struct device *dmdev, struct device_attribute *attr, 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;
@@ -306,7 +308,7 @@ static ssize_t pnp_show_current_resources(struct device *dmdev, char *buf)
 extern struct semaphore pnp_res_mutex;
 
 static ssize_t
-pnp_set_current_resources(struct device * dmdev, const char * ubuf, size_t count)
+pnp_set_current_resources(struct device * dmdev, struct device_attribute *attr, const char * ubuf, size_t count)
 {
        struct pnp_dev *dev = to_pnp_dev(dmdev);
        char    *buf = (void *)ubuf;
@@ -442,7 +444,7 @@ pnp_set_current_resources(struct device * dmdev, const char * ubuf, size_t count
 static DEVICE_ATTR(resources,S_IRUGO | S_IWUSR,
                   pnp_show_current_resources,pnp_set_current_resources);
 
-static ssize_t pnp_show_current_ids(struct device *dmdev, char *buf)
+static ssize_t pnp_show_current_ids(struct device *dmdev, struct device_attribute *attr, char *buf)
 {
        char *str = buf;
        struct pnp_dev *dev = to_pnp_dev(dmdev);