myri10ge: fix most sparse warnings
authorAndrew Gallatin <gallatin@myri.com>
Tue, 4 Dec 2012 10:17:15 +0000 (10:17 +0000)
committerDavid S. Miller <davem@davemloft.net>
Wed, 5 Dec 2012 21:01:27 +0000 (16:01 -0500)
- convert remaining htonl/ntohl +__raw_read/__raw_writel to
  swab32 + readl/writel
- add missing __iomem qualifier in myri10ge_open()
- fix  dubious: x & !y warning by switching from logical to bitwise not

The swab32 conversion fixes a bug in myri10ge_led() where
big-endian machines would write the wrong pattern.

The only remaining warning (lock context imbalance) is due to
the use of __netif_tx_trylock(), and cannot easily be fixed.

Signed-off-by: Andrew Gallatin <gallatin@myri.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/myricom/myri10ge/myri10ge.c

index a40234ea2fbb3274d95f6511f0b9547cf750e027..f8408d6e961cb7243b6d2f862701697c47532d49 100644 (file)
@@ -1885,7 +1885,7 @@ static int myri10ge_led(struct myri10ge_priv *mgp, int on)
        }
        if (!on)
                pattern = swab32(readl(mgp->sram + pattern_off + 4));
-       writel(htonl(pattern), mgp->sram + pattern_off);
+       writel(swab32(pattern), mgp->sram + pattern_off);
        return 0;
 }
 
@@ -2294,7 +2294,7 @@ static int myri10ge_open(struct net_device *dev)
        struct myri10ge_priv *mgp = netdev_priv(dev);
        struct myri10ge_cmd cmd;
        int i, status, big_pow2, slice;
-       u8 *itable;
+       u8 __iomem *itable;
 
        if (mgp->running != MYRI10GE_ETH_STOPPED)
                return -EBUSY;
@@ -2757,7 +2757,7 @@ again:
                                        flags_next |= next_is_first *
                                            MXGEFW_FLAGS_FIRST;
                                        rdma_count |= -(chop | next_is_first);
-                                       rdma_count += chop & !next_is_first;
+                                       rdma_count += chop & ~next_is_first;
                                } else if (likely(cum_len_next >= 0)) { /* header ends */
                                        int small;
 
@@ -3836,9 +3836,9 @@ static int myri10ge_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
                goto abort_with_mtrr;
        }
        hdr_offset =
-           ntohl(__raw_readl(mgp->sram + MCP_HEADER_PTR_OFFSET)) & 0xffffc;
+           swab32(readl(mgp->sram + MCP_HEADER_PTR_OFFSET)) & 0xffffc;
        ss_offset = hdr_offset + offsetof(struct mcp_gen_header, string_specs);
-       mgp->sram_size = ntohl(__raw_readl(mgp->sram + ss_offset));
+       mgp->sram_size = swab32(readl(mgp->sram + ss_offset));
        if (mgp->sram_size > mgp->board_span ||
            mgp->sram_size <= MYRI10GE_FW_OFFSET) {
                dev_err(&pdev->dev,