All of lore.kernel.org
 help / color / mirror / Atom feed
From: Vincent Mailhol <mailhol.vincent@wanadoo.fr>
To: Nathan Chancellor <nathan@kernel.org>, linux-can@vger.kernel.org
Cc: davem@davemloft.net, kuba@kernel.org, netdev@vger.kernel.org,
	kernel@pengutronix.de, "Marc Kleine-Budde" <mkl@pengutronix.de>,
	"Frank Jungclaus" <frank.jungclaus@esd.eu>,
	"Stefan Mätje" <Stefan.Maetje@esd.eu>,
	"Vincent Mailhol" <mailhol.vincent@wanadoo.fr>
Subject: [PATCH] can: pch_can: initialize errc before using it
Date: Fri, 22 Jul 2022 01:00:32 +0900	[thread overview]
Message-ID: <20220721160032.9348-1-mailhol.vincent@wanadoo.fr> (raw)
In-Reply-To: <YtlwSpoeT+nhmhVn@dev-arch.thelio-3990X>

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>
---
 drivers/net/can/pch_can.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/can/pch_can.c b/drivers/net/can/pch_can.c
index 50f6719b3aa4..32804fed116c 100644
--- a/drivers/net/can/pch_can.c
+++ b/drivers/net/can/pch_can.c
@@ -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);
@@ -502,7 +503,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;
-- 
2.35.1


  parent reply	other threads:[~2022-07-21 16:00 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-07-20  8:10 [PATCH net-next 0/29] pull-request: can-next 2022-07-20 Marc Kleine-Budde
2022-07-20  8:10 ` [PATCH net-next 01/29] can: slcan: use scnprintf() as a hardening measure Marc Kleine-Budde
2022-07-20  9:30   ` patchwork-bot+netdevbpf
2022-07-20  8:10 ` [PATCH net-next 02/29] can: slcan: convert comments to network style comments Marc Kleine-Budde
2022-07-20  8:10 ` [PATCH net-next 03/29] can: slcan: slcan_init() convert printk(LEVEL ...) to pr_level() Marc Kleine-Budde
2022-07-20  8:10 ` [PATCH net-next 04/29] can: slcan: fix whitespace issues Marc Kleine-Budde
2022-07-20  8:10 ` [PATCH net-next 05/29] can: slcan: convert comparison to NULL into !val Marc Kleine-Budde
2022-07-20  8:10 ` [PATCH net-next 06/29] can: slcan: clean up if/else Marc Kleine-Budde
2022-07-20  8:10 ` [PATCH net-next 07/29] dt-bindings: can: sja1000: Convert to json-schema Marc Kleine-Budde
2022-07-20  8:10 ` [PATCH net-next 08/29] dt-bindings: can: nxp,sja1000: Document RZ/N1{D,S} support Marc Kleine-Budde
2022-07-20  8:10 ` [PATCH net-next 09/29] can: sja1000: Add Quirk for RZ/N1 SJA1000 CAN controller Marc Kleine-Budde
2022-07-20  8:10 ` [PATCH net-next 10/29] can: sja1000: Use device_get_match_data to get device data Marc Kleine-Budde
2022-07-20  8:10 ` [PATCH net-next 11/29] can: sja1000: Change the return type as void for SoC specific init Marc Kleine-Budde
2022-07-20  8:10 ` [PATCH net-next 12/29] can: slcan: do not sleep with a spin lock held Marc Kleine-Budde
2022-07-20  8:10 ` [PATCH net-next 13/29] can: c_can: remove wrong comment Marc Kleine-Budde
2022-07-20  8:10 ` [PATCH net-next 14/29] can: ctucanfd: Update CTU CAN FD IP core registers to match version 3.x Marc Kleine-Budde
2022-07-20  8:10 ` [PATCH net-next 15/29] can: peak_usb: pcan_dump_mem(): mark input prompt and data pointer as const Marc Kleine-Budde
2022-07-20  8:10 ` [PATCH net-next 16/29] can: peak_usb: correction of an initially misnamed field name Marc Kleine-Budde
2022-07-20  8:10 ` [PATCH net-next 17/29] can: peak_usb: include support for a new MCU Marc Kleine-Budde
2022-07-20  8:10 ` [PATCH net-next 18/29] can: pch_can: do not report txerr and rxerr during bus-off Marc Kleine-Budde
2022-07-21 15:27   ` Nathan Chancellor
2022-07-21 15:47     ` Marc Kleine-Budde
2022-07-21 16:11       ` Vincent MAILHOL
2022-07-21 16:20         ` Nathan Chancellor
2022-07-21 16:51           ` Jakub Kicinski
2022-07-21 16:00     ` Vincent Mailhol [this message]
2022-07-21 16:02       ` [PATCH] can: pch_can: initialize errc before using it Nathan Chancellor
2022-07-20  8:10 ` [PATCH net-next 19/29] can: rcar_can: do not report txerr and rxerr during bus-off Marc Kleine-Budde
2022-07-20  8:10 ` [PATCH net-next 20/29] can: sja1000: " Marc Kleine-Budde
2022-07-20  8:10 ` [PATCH net-next 21/29] can: slcan: " Marc Kleine-Budde
2022-07-20  8:10 ` [PATCH net-next 22/29] can: hi311x: " Marc Kleine-Budde
2022-07-20  8:10 ` [PATCH net-next 23/29] can: sun4i_can: " Marc Kleine-Budde
2022-07-20  8:10 ` [PATCH net-next 24/29] can: kvaser_usb_hydra: " Marc Kleine-Budde
2022-07-20  8:10 ` [PATCH net-next 25/29] can: kvaser_usb_leaf: " Marc Kleine-Budde
2022-07-20  8:10 ` [PATCH net-next 26/29] can: usb_8dev: " Marc Kleine-Budde
2022-07-20  8:10 ` [PATCH net-next 27/29] can: error: specify the values of data[5..7] of CAN error frames Marc Kleine-Budde
2022-07-20  8:10 ` [PATCH net-next 28/29] can: add CAN_ERR_CNT flag to notify availability of error counter Marc Kleine-Budde
2022-07-20  8:10 ` [PATCH net-next 29/29] can: error: add definitions for the different CAN error thresholds Marc Kleine-Budde

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220721160032.9348-1-mailhol.vincent@wanadoo.fr \
    --to=mailhol.vincent@wanadoo.fr \
    --cc=Stefan.Maetje@esd.eu \
    --cc=davem@davemloft.net \
    --cc=frank.jungclaus@esd.eu \
    --cc=kernel@pengutronix.de \
    --cc=kuba@kernel.org \
    --cc=linux-can@vger.kernel.org \
    --cc=mkl@pengutronix.de \
    --cc=nathan@kernel.org \
    --cc=netdev@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.