rocker: fix maybe-uninitialized warning

In some rare configurations, we get a warning about the 'index' variable
being used without an initialization:

drivers/net/ethernet/rocker/rocker_ofdpa.c: In function ‘ofdpa_port_fib_ipv4.isra.16.constprop’:
drivers/net/ethernet/rocker/rocker_ofdpa.c:2425:92: warning: ‘index’ may be used uninitialized in this function [-Wmaybe-uninitialized]

This is a false positive, the logic is just a bit too complex for gcc
to follow here. Moving the intialization of 'index' a little further
down makes it clear to gcc that the function always returns an error
if it is not initialized.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Arnd Bergmann 2016-10-18 00:16:15 +02:00 committed by David S. Miller
parent 52ccd63184
commit ecf244f753

View File

@ -1493,8 +1493,6 @@ static int ofdpa_port_ipv4_nh(struct ofdpa_port *ofdpa_port,
spin_lock_irqsave(&ofdpa->neigh_tbl_lock, lock_flags); spin_lock_irqsave(&ofdpa->neigh_tbl_lock, lock_flags);
found = ofdpa_neigh_tbl_find(ofdpa, ip_addr); found = ofdpa_neigh_tbl_find(ofdpa, ip_addr);
if (found)
*index = found->index;
updating = found && adding; updating = found && adding;
removing = found && !adding; removing = found && !adding;
@ -1508,9 +1506,11 @@ static int ofdpa_port_ipv4_nh(struct ofdpa_port *ofdpa_port,
resolved = false; resolved = false;
} else if (removing) { } else if (removing) {
ofdpa_neigh_del(trans, found); ofdpa_neigh_del(trans, found);
*index = found->index;
} else if (updating) { } else if (updating) {
ofdpa_neigh_update(found, trans, NULL, false); ofdpa_neigh_update(found, trans, NULL, false);
resolved = !is_zero_ether_addr(found->eth_dst); resolved = !is_zero_ether_addr(found->eth_dst);
*index = found->index;
} else { } else {
err = -ENOENT; err = -ENOENT;
} }