[B43]: Fix sparse warnings.
authorMichael Buesch <mb@bu3sch.de>
Thu, 20 Sep 2007 18:13:40 +0000 (11:13 -0700)
committerDavid S. Miller <davem@sunset.davemloft.net>
Wed, 10 Oct 2007 23:52:07 +0000 (16:52 -0700)
The remaining warning in phy.c will be fixed later.

Signed-off-by: Michael Buesch <mb@bu3sch.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/wireless/b43/debugfs.c
drivers/net/wireless/b43/leds.c
drivers/net/wireless/b43/leds.h
drivers/net/wireless/b43/main.c
drivers/net/wireless/b43/pcmcia.c
drivers/net/wireless/b43/pio.c
drivers/net/wireless/b43/pio.h
drivers/net/wireless/b43/xmit.c

index f82e3ef9bd73fd19c9ae69caa3d6b542b9c95066..3aafde9f08a8b0c5c6d65ab12f598140369d1788 100644 (file)
@@ -39,7 +39,7 @@
 
 
 /* The root directory. */
-struct dentry *rootdir;
+static struct dentry *rootdir;
 
 struct b43_debugfs_fops {
        ssize_t (*read)(struct b43_wldev *dev, char *buf, size_t bufsize);
@@ -76,7 +76,8 @@ struct b43_dfs_file * fops_to_dfs_file(struct b43_wldev *dev,
 
 
 /* wl->irq_lock is locked */
-ssize_t tsf_read_file(struct b43_wldev *dev, char *buf, size_t bufsize)
+static ssize_t tsf_read_file(struct b43_wldev *dev,
+                            char *buf, size_t bufsize)
 {
        ssize_t count = 0;
        u64 tsf;
@@ -90,7 +91,8 @@ ssize_t tsf_read_file(struct b43_wldev *dev, char *buf, size_t bufsize)
 }
 
 /* wl->irq_lock is locked */
-int tsf_write_file(struct b43_wldev *dev, const char *buf, size_t count)
+static int tsf_write_file(struct b43_wldev *dev,
+                         const char *buf, size_t count)
 {
        u64 tsf;
 
@@ -102,7 +104,8 @@ int tsf_write_file(struct b43_wldev *dev, const char *buf, size_t count)
 }
 
 /* wl->irq_lock is locked */
-ssize_t ucode_regs_read_file(struct b43_wldev *dev, char *buf, size_t bufsize)
+static ssize_t ucode_regs_read_file(struct b43_wldev *dev,
+                                   char *buf, size_t bufsize)
 {
        ssize_t count = 0;
        int i;
@@ -116,7 +119,8 @@ ssize_t ucode_regs_read_file(struct b43_wldev *dev, char *buf, size_t bufsize)
 }
 
 /* wl->irq_lock is locked */
-ssize_t shm_read_file(struct b43_wldev *dev, char *buf, size_t bufsize)
+static ssize_t shm_read_file(struct b43_wldev *dev,
+                            char *buf, size_t bufsize)
 {
        ssize_t count = 0;
        int i;
@@ -135,7 +139,8 @@ ssize_t shm_read_file(struct b43_wldev *dev, char *buf, size_t bufsize)
        return count;
 }
 
-ssize_t txstat_read_file(struct b43_wldev *dev, char *buf, size_t bufsize)
+static ssize_t txstat_read_file(struct b43_wldev *dev,
+                               char *buf, size_t bufsize)
 {
        struct b43_txstatus_log *log = &dev->dfsentry->txstatlog;
        ssize_t count = 0;
@@ -182,7 +187,8 @@ out_unlock:
        return count;
 }
 
-ssize_t txpower_g_read_file(struct b43_wldev *dev, char *buf, size_t bufsize)
+static ssize_t txpower_g_read_file(struct b43_wldev *dev,
+                                  char *buf, size_t bufsize)
 {
        ssize_t count = 0;
 
@@ -214,7 +220,8 @@ out:
        return count;
 }
 
-int txpower_g_write_file(struct b43_wldev *dev, const char *buf, size_t count)
+static int txpower_g_write_file(struct b43_wldev *dev,
+                               const char *buf, size_t count)
 {
        unsigned long flags;
        unsigned long phy_flags;
@@ -262,7 +269,8 @@ out_unlock:
 }
 
 /* wl->irq_lock is locked */
-int restart_write_file(struct b43_wldev *dev, const char *buf, size_t count)
+static int restart_write_file(struct b43_wldev *dev,
+                             const char *buf, size_t count)
 {
        int err = 0;
 
@@ -294,7 +302,8 @@ static ssize_t append_lo_table(ssize_t count, char *buf, const size_t bufsize,
        return count;
 }
 
-ssize_t loctls_read_file(struct b43_wldev *dev, char *buf, size_t bufsize)
+static ssize_t loctls_read_file(struct b43_wldev *dev,
+                               char *buf, size_t bufsize)
 {
        ssize_t count = 0;
        struct b43_txpower_lo_control *lo;
@@ -383,6 +392,8 @@ static ssize_t b43_debugfs_read(struct file *file, char __user *userbuf,
                        err = -ENOMEM;
                        goto out_unlock;
                }
+               /* Sparse warns about the following memset, because it has a big
+                * size value. That warning is bogus, so I will ignore it. --mb */
                memset(buf, 0, bufsize);
                if (dfops->take_irqlock) {
                        spin_lock_irq(&dev->wl->irq_lock);
index 535f960412d75cfcd3cf14cec99bda63f7fea705..85d965de57911f2d660191e79476b181af7c7e90 100644 (file)
 static void b43_led_changestate(struct b43_led *led)
 {
        struct b43_wldev *dev = led->dev;
-       const int index = b43_led_index(led);
-       const u16 mask = (1 << index);
+       const int index = led->index;
        u16 ledctl;
 
        B43_WARN_ON(!(index >= 0 && index < B43_NR_LEDS));
        B43_WARN_ON(!led->blink_interval);
        ledctl = b43_read16(dev, B43_MMIO_GPIO_CONTROL);
-       ledctl = (ledctl & mask) ? (ledctl & ~mask) : (ledctl | mask);
+       ledctl ^= (1 << index);
        b43_write16(dev, B43_MMIO_GPIO_CONTROL, ledctl);
 }
 
@@ -70,7 +69,7 @@ static void b43_led_blink_start(struct b43_led *led, unsigned long interval)
 static void b43_led_blink_stop(struct b43_led *led, int sync)
 {
        struct b43_wldev *dev = led->dev;
-       const int index = b43_led_index(led);
+       const int index = led->index;
        u16 ledctl;
 
        if (!led->blink_interval)
@@ -139,6 +138,7 @@ int b43_leds_init(struct b43_wldev *dev)
 
        for (i = 0; i < B43_NR_LEDS; i++) {
                led = &(dev->leds[i]);
+               led->index = i;
                led->dev = dev;
                setup_timer(&led->blink_timer,
                            b43_led_blink, (unsigned long)led);
index 36b46cfda220d5724be7e13966ceb574f89a6849..d94851d291c0696e2f21a913edddae313d61c196 100644 (file)
@@ -5,14 +5,14 @@
 #include <linux/timer.h>
 
 struct b43_led {
-       u8 behaviour:7;
-       u8 activelow:1;
-
+       u8 behaviour;
+       bool activelow;
+       /* Index in the "leds" array in b43_wldev */
+       u8 index;
        struct b43_wldev *dev;
        struct timer_list blink_timer;
        unsigned long blink_interval;
 };
-#define b43_led_index(led)     ((int)((led) - (led)->dev->leds))
 
 /* Delay between state changes when blinking in jiffies */
 #define B43_LEDBLINK_SLOW              (HZ / 1)
index fd4ef27fcf25551e074ac0bc5682b1f945ff422c..66c89df51fb8f8ac5d209f49457c81b285308137 100644 (file)
@@ -1062,7 +1062,7 @@ static void handle_irq_noise(struct b43_wldev *dev)
        B43_WARN_ON(!dev->noisecalc.calculation_running);
        if (dev->noisecalc.channel_at_start != phy->channel)
                goto drop_calculation;
-       *((u32 *) noise) = cpu_to_le32(b43_jssi_read(dev));
+       *((__le32 *)noise) = cpu_to_le32(b43_jssi_read(dev));
        if (noise[0] == 0x7F || noise[1] == 0x7F ||
            noise[2] == 0x7F || noise[3] == 0x7F)
                goto generate_new;
@@ -1598,8 +1598,7 @@ static int do_request_fw(struct b43_wldev *dev,
                         const char *name,
                         const struct firmware **fw)
 {
-       const size_t plen = sizeof(modparam_fwpostfix) + 32;
-       char path[plen];
+       char path[sizeof(modparam_fwpostfix) + 32];
        struct b43_fw_header *hdr;
        u32 size;
        int err;
index 3e75a8a12c96702b26dd1228a0e9d6d72ace7a1a..b242a9a90dd2309d0f0f8b95de5dd64ab1c6e015 100644 (file)
@@ -21,6 +21,8 @@
 
 */
 
+#include "pcmcia.h"
+
 #include <linux/ssb/ssb.h>
 
 #include <pcmcia/cs_types.h>
@@ -30,6 +32,7 @@
 #include <pcmcia/ds.h>
 #include <pcmcia/cisreg.h>
 
+
 static /*const */ struct pcmcia_device_id b43_pcmcia_tbl[] = {
        PCMCIA_DEVICE_MANF_CARD(0x2D0, 0x448),
        PCMCIA_DEVICE_NULL,
index 4ac91fdd356e12300cf6fe12e7bf95ffbb85878a..67752a28eb9cc114468f3031b1ccb456d686dd3e 100644 (file)
@@ -60,7 +60,7 @@ static u16 tx_get_next_word(const u8 * txhdr,
                source = packet;
                i -= txhdr_size;
        }
-       ret = le16_to_cpu(*((u16 *) (source + i)));
+       ret = le16_to_cpu(*((__le16 *)(source + i)));
        *pos += 2;
 
        return ret;
@@ -104,7 +104,7 @@ static u16 generate_cookie(struct b43_pioqueue *queue,
                           struct b43_pio_txpacket *packet)
 {
        u16 cookie = 0x0000;
-       int packetindex;
+       u16 packetindex;
 
        /* We use the upper 4 bits for the PIO
         * controller ID and the lower 12 bits
@@ -125,7 +125,7 @@ static u16 generate_cookie(struct b43_pioqueue *queue,
        default:
                B43_WARN_ON(1);
        }
-       packetindex = pio_txpacket_getindex(packet);
+       packetindex = packet->index;
        B43_WARN_ON(packetindex & ~0x0FFF);
        cookie |= (u16) packetindex;
 
@@ -286,6 +286,7 @@ static void setup_txqueues(struct b43_pioqueue *queue)
 
                packet->queue = queue;
                INIT_LIST_HEAD(&packet->list);
+               packet->index = i;
 
                list_add(&packet->list, &queue->txfree);
        }
@@ -518,9 +519,10 @@ static void pio_rx_error(struct b43_pioqueue *queue,
 
 void b43_pio_rx(struct b43_pioqueue *queue)
 {
-       u16 preamble[21] = { 0 };
+       __le16 preamble[21] = { 0 };
        struct b43_rxhdr_fw4 *rxhdr;
-       u16 tmp, len, macstat;
+       u16 tmp, len;
+       u32 macstat;
        int i, preamble_readwords;
        struct sk_buff *skb;
 
@@ -537,7 +539,7 @@ void b43_pio_rx(struct b43_pioqueue *queue)
        }
        b43dbg(queue->dev->wl, "PIO RX timed out\n");
        return;
-      data_ready:
+data_ready:
 
        len = b43_pio_read(queue, B43_PIO_RXDATA);
        if (unlikely(len > 0x700)) {
@@ -558,7 +560,7 @@ void b43_pio_rx(struct b43_pioqueue *queue)
                preamble[i + 1] = cpu_to_le16(tmp);
        }
        rxhdr = (struct b43_rxhdr_fw4 *)preamble;
-       macstat = le16_to_cpu(rxhdr->mac_status);
+       macstat = le32_to_cpu(rxhdr->mac_status);
        if (macstat & B43_RX_MAC_FCSERR) {
                pio_rx_error(queue,
                             (queue->mmio_base == B43_MMIO_PIO1_BASE),
@@ -583,7 +585,7 @@ void b43_pio_rx(struct b43_pioqueue *queue)
        skb_put(skb, len);
        for (i = 0; i < len - 1; i += 2) {
                tmp = b43_pio_read(queue, B43_PIO_RXDATA);
-               *((u16 *) (skb->data + i)) = cpu_to_le16(tmp);
+               *((__le16 *)(skb->data + i)) = cpu_to_le16(tmp);
        }
        if (len % 2) {
                tmp = b43_pio_read(queue, B43_PIO_RXDATA);
index 46d6d2ea9b5f047830e5fbd2c614b6e91bf658f8..34a44c1b6314126f1929bb2feaf6acf912428de4 100644 (file)
@@ -39,10 +39,9 @@ struct b43_pio_txpacket {
        struct sk_buff *skb;
        struct ieee80211_tx_status txstat;
        struct list_head list;
+       u16 index; /* Index in the tx_packets_cache */
 };
 
-#define pio_txpacket_getindex(packet) ((int)((packet) - (packet)->queue->tx_packets_cache))
-
 struct b43_pioqueue {
        struct b43_wldev *dev;
        u16 mmio_base;
index e6174b6f11fb5f0aebdc94f73e670952ced66c26..0bd6f8a348a8a195821ff8ec5721c167b0443bca 100644 (file)
@@ -121,10 +121,12 @@ void b43_generate_plcp_hdr(struct b43_plcp_hdr4 *plcp,
        __u8 *raw = plcp->raw;
 
        if (b43_is_ofdm_rate(bitrate)) {
-               *data = b43_plcp_get_ratecode_ofdm(bitrate);
+               u32 d;
+
+               d = b43_plcp_get_ratecode_ofdm(bitrate);
                B43_WARN_ON(octets & 0xF000);
-               *data |= (octets << 5);
-               *data = cpu_to_le32(*data);
+               d |= (octets << 5);
+               *data = cpu_to_le32(d);
        } else {
                u32 plen;