mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* drivers/tty/serial/xilinx_uartps.c:438:25: sparse: sparse: dereference of noderef expression
@ 2026-06-14 20:00 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2026-06-14 20:00 UTC (permalink / raw)
  To: j.turek; +Cc: oe-kbuild-all, linux-kernel

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   8cd9520d35a6c38db6567e97dd93b1f11f185dc6
commit: 267ee93c417e685d9f8e079e41c70ba6ee4df5a5 serial: xilinx_uartps: fix rs485 delay_rts_after_send
date:   6 months ago
config: i386-randconfig-062-20260614 (https://download.01.org/0day-ci/archive/20260615/202606150318.PcLVQ18L-lkp@intel.com/config)
compiler: gcc-14 (Debian 14.2.0-19) 14.2.0
sparse: v0.6.5-rc1
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260615/202606150318.PcLVQ18L-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Fixes: 267ee93c417e ("serial: xilinx_uartps: fix rs485 delay_rts_after_send")
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202606150318.PcLVQ18L-lkp@intel.com/

sparse warnings: (new ones prefixed by >>)
>> drivers/tty/serial/xilinx_uartps.c:438:25: sparse: sparse: dereference of noderef expression
   drivers/tty/serial/xilinx_uartps.c:709:13: sparse: sparse: context imbalance in 'cdns_uart_start_tx' - different lock contexts for basic block

vim +438 drivers/tty/serial/xilinx_uartps.c

   418	
   419	/**
   420	 * cdns_uart_handle_tx - Handle the bytes to be transmitted.
   421	 * @dev_id: Id of the UART port
   422	 * Return: None
   423	 */
   424	static void cdns_uart_handle_tx(void *dev_id)
   425	{
   426		struct uart_port *port = (struct uart_port *)dev_id;
   427		struct cdns_uart *cdns_uart = port->private_data;
   428		struct tty_port *tport = &port->state->port;
   429		unsigned int numbytes;
   430		unsigned char ch;
   431		ktime_t rts_delay;
   432	
   433		if (kfifo_is_empty(&tport->xmit_fifo) || uart_tx_stopped(port)) {
   434			/* Disable the TX Empty interrupt */
   435			writel(CDNS_UART_IXR_TXEMPTY, port->membase + CDNS_UART_IDR);
   436			/* Set RTS line after delay */
   437			if (cdns_uart->port->rs485.flags & SER_RS485_ENABLED) {
 > 438				cdns_uart->tx_timer.function = &cdns_rs485_rx_callback;
   439				rts_delay = ns_to_ktime(cdns_calc_after_tx_delay(cdns_uart));
   440				hrtimer_start(&cdns_uart->tx_timer, rts_delay, HRTIMER_MODE_REL);
   441			}
   442			return;
   443		}
   444	
   445		numbytes = port->fifosize;
   446		while (numbytes &&
   447		       !(readl(port->membase + CDNS_UART_SR) & CDNS_UART_SR_TXFULL) &&
   448		       uart_fifo_get(port, &ch)) {
   449			writel(ch, port->membase + CDNS_UART_FIFO);
   450			numbytes--;
   451		}
   452	
   453		if (kfifo_len(&tport->xmit_fifo) < WAKEUP_CHARS)
   454			uart_write_wakeup(port);
   455	
   456		/* Enable the TX Empty interrupt */
   457		writel(CDNS_UART_IXR_TXEMPTY, cdns_uart->port->membase + CDNS_UART_IER);
   458	}
   459	

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2026-06-14 20:00 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-06-14 20:00 drivers/tty/serial/xilinx_uartps.c:438:25: sparse: sparse: dereference of noderef expression kernel test robot

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

all inboxes | Powered by JetHome®