public inbox for linux-serial@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] tty: serial: 8250: Fix uninitialized variable warnings in pci_oxsemi_tornado_get_divisor
@ 2025-04-11 11:50 Purva Yeshi
  2025-04-11 12:29 ` Greg KH
  0 siblings, 1 reply; 2+ messages in thread
From: Purva Yeshi @ 2025-04-11 11:50 UTC (permalink / raw)
  To: gregkh, jirislaby
  Cc: andriy.shevchenko, arnd, cang1, bhelgaas, linux-kernel,
	linux-serial, Purva Yeshi

Fix Smatch-detected issue:

drivers/tty/serial/8250/8250_pci.c:1233 pci_oxsemi_tornado_get_divisor()
error: uninitialized symbol 'tcr'.
drivers/tty/serial/8250/8250_pci.c:1234 pci_oxsemi_tornado_get_divisor()
error: uninitialized symbol 'quot'.
drivers/tty/serial/8250/8250_pci.c:1238 pci_oxsemi_tornado_get_divisor()
error: uninitialized symbol 'quot'.
drivers/tty/serial/8250/8250_pci.c:1242 pci_oxsemi_tornado_get_divisor()
error: uninitialized symbol 'cpr'.
drivers/tty/serial/8250/8250_pci.c:1252 pci_oxsemi_tornado_get_divisor()
error: uninitialized symbol 'cpr'.

Fix uninitialized variable usage in pci_oxsemi_tornado_get_divisor() that
was triggering sparse warnings and potential undefined behavior. The
variables tcr, cpr, and quot were used before being explicitly assigned
values, leading to smatch warning in multiple lines of the function.

Initialize quot to 1, tcr to 16, and cpr to OXSEMI_TORNADO_CPR_DEF at the
point of declaration. This ensures safe fallback values are used when these
variables are not conditionally set later in the function, avoiding
uninitialized access.

Signed-off-by: Purva Yeshi <purvayeshi550@gmail.com>
---
 drivers/tty/serial/8250/8250_pci.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/tty/serial/8250/8250_pci.c b/drivers/tty/serial/8250/8250_pci.c
index 73c200127b08..ba4dedccc29e 100644
--- a/drivers/tty/serial/8250/8250_pci.c
+++ b/drivers/tty/serial/8250/8250_pci.c
@@ -1187,9 +1187,9 @@ static unsigned int pci_oxsemi_tornado_get_divisor(struct uart_port *port,
 	unsigned int sdiv = DIV_ROUND_CLOSEST(sclk, baud);
 	unsigned int best_squot;
 	unsigned int squot;
-	unsigned int quot;
-	u16 cpr;
-	u8 tcr;
+	unsigned int quot = 1;
+	u16 cpr = OXSEMI_TORNADO_CPR_DEF;  /* Default Control Prescaler Register */
+	u8 tcr = 16;  /* Typical default value for the Timer Control Register */
 	int i;
 
 	/* Old custom speed handling.  */
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2025-04-11 12:29 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-04-11 11:50 [PATCH] tty: serial: 8250: Fix uninitialized variable warnings in pci_oxsemi_tornado_get_divisor Purva Yeshi
2025-04-11 12:29 ` Greg KH

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox