Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

s2io: Fix warnings due to -Wunused-but-set-variable.

Most of these are cases where we are trying to read back a register
after a write to ensure completion.

Simply pre-fixing the readl() or readq() with "(void)" is sufficient
because these are volatile operations and the compiler cannot eliminate
them just because no real assignment takes place.

The case of free_rxd_blk()'s assignments to "struct buffAdd *ba" is a
real spurious assignment as this variable is completely otherwise
unused.

Signed-off-by: David S. Miller <davem@davemloft.net>
Acked-by: Jon Mason <jdmason@kudzu.us>

+5 -10
+1 -4
drivers/net/s2io.c
··· 2244 2244 static void fix_mac_address(struct s2io_nic *sp) 2245 2245 { 2246 2246 struct XENA_dev_config __iomem *bar0 = sp->bar0; 2247 - u64 val64; 2248 2247 int i = 0; 2249 2248 2250 2249 while (fix_mac[i] != END_SIGN) { 2251 2250 writeq(fix_mac[i++], &bar0->gpio_control); 2252 2251 udelay(10); 2253 - val64 = readq(&bar0->gpio_control); 2252 + (void) readq(&bar0->gpio_control); 2254 2253 } 2255 2254 } 2256 2255 ··· 2726 2727 int j; 2727 2728 struct sk_buff *skb; 2728 2729 struct RxD_t *rxdp; 2729 - struct buffAdd *ba; 2730 2730 struct RxD1 *rxdp1; 2731 2731 struct RxD3 *rxdp3; 2732 2732 struct mac_info *mac_control = &sp->mac_control; ··· 2749 2751 memset(rxdp, 0, sizeof(struct RxD1)); 2750 2752 } else if (sp->rxd_mode == RXD_MODE_3B) { 2751 2753 rxdp3 = (struct RxD3 *)rxdp; 2752 - ba = &mac_control->rings[ring_no].ba[blk][j]; 2753 2754 pci_unmap_single(sp->pdev, 2754 2755 (dma_addr_t)rxdp3->Buffer0_ptr, 2755 2756 BUF0_LEN,
+4 -6
drivers/net/s2io.h
··· 1002 1002 #define LF 2 1003 1003 static inline void SPECIAL_REG_WRITE(u64 val, void __iomem *addr, int order) 1004 1004 { 1005 - u32 ret; 1006 - 1007 1005 if (order == LF) { 1008 1006 writel((u32) (val), addr); 1009 - ret = readl(addr); 1007 + (void) readl(addr); 1010 1008 writel((u32) (val >> 32), (addr + 4)); 1011 - ret = readl(addr + 4); 1009 + (void) readl(addr + 4); 1012 1010 } else { 1013 1011 writel((u32) (val >> 32), (addr + 4)); 1014 - ret = readl(addr + 4); 1012 + (void) readl(addr + 4); 1015 1013 writel((u32) (val), addr); 1016 - ret = readl(addr); 1014 + (void) readl(addr); 1017 1015 } 1018 1016 } 1019 1017