Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 59e955ed authored by Andrew Gallatin's avatar Andrew Gallatin Committed by David S. Miller
Browse files

myri10ge: fix most sparse warnings



- 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: default avatarAndrew Gallatin <gallatin@myri.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 50426b59
Loading
Loading
Loading
Loading
+5 −5
Original line number Original line Diff line number Diff line
@@ -1885,7 +1885,7 @@ static int myri10ge_led(struct myri10ge_priv *mgp, int on)
	}
	}
	if (!on)
	if (!on)
		pattern = swab32(readl(mgp->sram + pattern_off + 4));
		pattern = swab32(readl(mgp->sram + pattern_off + 4));
	writel(htonl(pattern), mgp->sram + pattern_off);
	writel(swab32(pattern), mgp->sram + pattern_off);
	return 0;
	return 0;
}
}


@@ -2294,7 +2294,7 @@ static int myri10ge_open(struct net_device *dev)
	struct myri10ge_priv *mgp = netdev_priv(dev);
	struct myri10ge_priv *mgp = netdev_priv(dev);
	struct myri10ge_cmd cmd;
	struct myri10ge_cmd cmd;
	int i, status, big_pow2, slice;
	int i, status, big_pow2, slice;
	u8 *itable;
	u8 __iomem *itable;


	if (mgp->running != MYRI10GE_ETH_STOPPED)
	if (mgp->running != MYRI10GE_ETH_STOPPED)
		return -EBUSY;
		return -EBUSY;
@@ -2757,7 +2757,7 @@ static netdev_tx_t myri10ge_xmit(struct sk_buff *skb,
					flags_next |= next_is_first *
					flags_next |= next_is_first *
					    MXGEFW_FLAGS_FIRST;
					    MXGEFW_FLAGS_FIRST;
					rdma_count |= -(chop | next_is_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 */
				} else if (likely(cum_len_next >= 0)) {	/* header ends */
					int small;
					int small;


@@ -3836,9 +3836,9 @@ static int myri10ge_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
		goto abort_with_mtrr;
		goto abort_with_mtrr;
	}
	}
	hdr_offset =
	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);
	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 ||
	if (mgp->sram_size > mgp->board_span ||
	    mgp->sram_size <= MYRI10GE_FW_OFFSET) {
	    mgp->sram_size <= MYRI10GE_FW_OFFSET) {
		dev_err(&pdev->dev,
		dev_err(&pdev->dev,