Re: [PATCH v1 2/2] LRW UART: serial: add driver for the LRW UART

kernel test robot
2026-02-13T17:51:06Z

Hi LiuQingtao,

kernel test robot noticed the following build warnings:

[auto build test WARNING on tty/tty-testing]
[also build test WARNING on tty/tty-next tty/tty-linus robh/for-next usb/usb-testing usb/usb-next usb/usb-linus linus/master v6.19 next-20260212]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url: https://github.com/intel-lab-lkp/linux/commits/LiuQingtao/LRW-UART-dt-bindings-Add-binding-for-LRW-UART/20260213-173610
base: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty.git tty-testing
patch link: https://lore.kernel.org/r/20260213093334.9217-3-qtliu%40mail.ustc.edu.cn
patch subject: [PATCH v1 2/2] LRW UART: serial: add driver for the LRW UART
config: riscv-allyesconfig (https://download.01.org/0day-ci/archive/20260214/202602140108.kLMOYbwS-lkp@intel.com/config)
compiler: clang version 16.0.6 (https://github.com/llvm/llvm-project 7cbf1a2591520c2491aa35339f227775f4d3adf6)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260214/202602140108.kLMOYbwS-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
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202602140108.kLMOYbwS-lkp@intel.com/

All warnings (new ones prefixed by >>):

>> drivers/tty/serial/lrw_uart.c:2266:3: warning: variable 'new_mcfg' is uninitialized when used here [-Wuninitialized]
new_mcfg |= UARTMCFG_UARTEN | UARTMCFG_TXE;
^~~~~~~~
drivers/tty/serial/lrw_uart.c:2246:37: note: initialize the variable 'new_mcfg' to silence this warning
unsigned int old_mcfg = 0, new_mcfg;
^
= 0
1 warning generated.

vim +/new_mcfg +2266 drivers/tty/serial/lrw_uart.c

2240
2241 static void
2242 lrw_uart_console_write(struct console *co, const char *s, unsigned int count)
2243 {
2244 struct lrw_uart_port *sup = lrw_uart_console_ports[co->index];
2245 unsigned int old_fccr = 0, new_fccr;
2246 unsigned int old_mcfg = 0, new_mcfg;
2247 unsigned long flags;
2248 int locked = 1;
2249
2250 clk_enable(sup->clk);
2251
2252 if (oops_in_progress)
2253 locked = uart_port_trylock_irqsave(&sup->port, &flags);
2254 else
2255 uart_port_lock_irqsave(&sup->port, &flags);
2256
2257 /*
2258 * First save the FCCR then disable the interrupts
2259 */
2260 if (!sup->vendor->always_enabled) {
2261 old_fccr = lrw_uart_read(sup, REG_FCCR);
2262 new_fccr = old_fccr & ~UARTFCCR_CTSEN;
2263 lrw_uart_write(new_fccr, sup, REG_FCCR);
2264
2265 old_mcfg = lrw_uart_read(sup, REG_MCFG);
> 2266 new_mcfg |= UARTMCFG_UARTEN | UARTMCFG_TXE;
2267 lrw_uart_write(new_mcfg, sup, REG_MCFG);
2268 }
2269
2270 uart_console_write(&sup->port, s, count, lrw_uart_console_putchar);
2271
2272 /*
2273 * Finally, wait for transmitter to become empty and restore the
2274 * TCR. Allow feature register bits to be inverted to work around
2275 * errata.
2276 */
2277 while ((lrw_uart_read(sup, REG_FR) ^ sup->vendor->inv_fr)
2278 & sup->vendor->fr_busy)
2279 cpu_relax();
2280 if (!sup->vendor->always_enabled) {
2281 lrw_uart_write(old_fccr, sup, REG_FCCR);
2282 lrw_uart_write(old_mcfg, sup, REG_MCFG);
2283 }
2284
2285 if (locked)
2286 uart_port_unlock_irqrestore(&sup->port, flags);
2287
2288 clk_disable(sup->clk);
2289 }
2290

--
0-DAY CI Kernel Test Service