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

net: nb8800: avoid uninitialized variable warning

The nb8800_poll() function initializes the 'next' variable in the
loop looking for new input data. We know this will be called at
least once because 'budget' is a guaranteed to be a positive number
when we enter the function, but the compiler doesn't know that
and warns when the variable is used later:

drivers/net/ethernet/aurora/nb8800.c: In function 'nb8800_poll':
drivers/net/ethernet/aurora/nb8800.c:350:21: warning: 'next' may be used uninitialized in this function [-Wmaybe-uninitialized]

Changing the 'while() {}' loop to 'do {} while()' makes it obvious
to the compiler what is going on so it no longer warns.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Mans Rullgard <mans@mansr.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

authored by

Arnd Bergmann and committed by
David S. Miller
8bdb2908 57e7c8ce

+2 -2
+2 -2
drivers/net/ethernet/aurora/nb8800.c
··· 302 302 nb8800_tx_done(dev); 303 303 304 304 again: 305 - while (work < budget) { 305 + do { 306 306 struct nb8800_rx_buf *rxb; 307 307 unsigned int len; 308 308 ··· 330 330 rxd->report = 0; 331 331 last = next; 332 332 work++; 333 - } 333 + } while (work < budget); 334 334 335 335 if (work) { 336 336 priv->rx_descs[last].desc.config |= DESC_EOC;