can: pch_can: pch_can_error(): initialize errc before using it
[ Upstream commit 9950f11211331180269867aef848c7cf56861742 ] After commit 3a5c7e4611dd, the variable errc is accessed before being initialized, c.f. below W=2 warning: | In function 'pch_can_error', | inlined from 'pch_can_poll' at drivers/net/can/pch_can.c:739:4: | drivers/net/can/pch_can.c:501:29: warning: 'errc' may be used uninitialized [-Wmaybe-uninitialized] | 501 | cf->data[6] = errc & PCH_TEC; | | ^ | drivers/net/can/pch_can.c: In function 'pch_can_poll': | drivers/net/can/pch_can.c:484:13: note: 'errc' was declared here | 484 | u32 errc, lec; | | ^~~~ Moving errc initialization up solves this issue. Fixes: 3a5c7e4611dd ("can: pch_can: do not report txerr and rxerr during bus-off") Reported-by: Nathan Chancellor <nathan@kernel.org> Signed-off-by: Vincent Mailhol <mailhol.vincent@wanadoo.fr> Reviewed-by: Nathan Chancellor <nathan@kernel.org> Link: https://lore.kernel.org/all/20220721160032.9348-1-mailhol.vincent@wanadoo.fr Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
a025f6ca15
commit
26168f0656
@ -489,6 +489,7 @@ static void pch_can_error(struct net_device *ndev, u32 status)
|
||||
if (!skb)
|
||||
return;
|
||||
|
||||
errc = ioread32(&priv->regs->errc);
|
||||
if (status & PCH_BUS_OFF) {
|
||||
pch_can_set_tx_all(priv, 0);
|
||||
pch_can_set_rx_all(priv, 0);
|
||||
@ -501,7 +502,6 @@ static void pch_can_error(struct net_device *ndev, u32 status)
|
||||
cf->data[7] = (errc & PCH_REC) >> 8;
|
||||
}
|
||||
|
||||
errc = ioread32(&priv->regs->errc);
|
||||
/* Warning interrupt. */
|
||||
if (status & PCH_EWARN) {
|
||||
state = CAN_STATE_ERROR_WARNING;
|
||||
|
Loading…
Reference in New Issue
Block a user