CC: [email protected]
CC: [email protected]
TO: Thomas Gleixner <[email protected]>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-rt-devel.git 
linux-5.13.y-rt-testing
head:   ef625e4b904469d3c5d6962b36abaed37f49db62
commit: b42b6e6889e21b06cee7a633c0f1b562e5d56eef [197/232] tty/serial/omap: 
Make the locking RT aware
:::::: branch date: 2 days ago
:::::: commit date: 11 days ago
config: x86_64-randconfig-s021-20210718 (attached as .config)
compiler: gcc-10 (Ubuntu 10.3.0-1ubuntu1~20.04) 10.3.0
reproduce:
        # apt-get install sparse
        # sparse version: v0.6.3-341-g8af24329-dirty
        # 
https://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-rt-devel.git/commit/?id=b42b6e6889e21b06cee7a633c0f1b562e5d56eef
        git remote add linux-rt-devel 
https://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-rt-devel.git
        git fetch --no-tags linux-rt-devel linux-5.13.y-rt-testing
        git checkout b42b6e6889e21b06cee7a633c0f1b562e5d56eef
        # save the attached .config to linux build tree
        make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir 
ARCH=x86_64 SHELL=/bin/bash drivers/tty/serial/

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <[email protected]>


sparse warnings: (new ones prefixed by >>)
>> drivers/tty/serial/omap-serial.c:1345:9: sparse: sparse: context imbalance 
>> in 'serial_omap_console_write' - different lock contexts for basic block

vim +/serial_omap_console_write +1345 drivers/tty/serial/omap-serial.c

b612633b592807 drivers/serial/omap-serial.c     Govindraj.R     2010-09-27  
1302  
b612633b592807 drivers/serial/omap-serial.c     Govindraj.R     2010-09-27  
1303  static void
b612633b592807 drivers/serial/omap-serial.c     Govindraj.R     2010-09-27  
1304  serial_omap_console_write(struct console *co, const char *s,
b612633b592807 drivers/serial/omap-serial.c     Govindraj.R     2010-09-27  
1305                unsigned int count)
b612633b592807 drivers/serial/omap-serial.c     Govindraj.R     2010-09-27  
1306  {
b612633b592807 drivers/serial/omap-serial.c     Govindraj.R     2010-09-27  
1307        struct uart_omap_port *up = serial_omap_console_ports[co->index];
b612633b592807 drivers/serial/omap-serial.c     Govindraj.R     2010-09-27  
1308        unsigned long flags;
b612633b592807 drivers/serial/omap-serial.c     Govindraj.R     2010-09-27  
1309        unsigned int ier;
b612633b592807 drivers/serial/omap-serial.c     Govindraj.R     2010-09-27  
1310        int locked = 1;
b612633b592807 drivers/serial/omap-serial.c     Govindraj.R     2010-09-27  
1311  
d8ee4ea68ff9c0 drivers/tty/serial/omap-serial.c Felipe Balbi    2012-09-06  
1312        pm_runtime_get_sync(up->dev);
fcdca75728ac37 drivers/tty/serial/omap-serial.c Govindraj.R     2011-02-28  
1313  
b42b6e6889e21b drivers/tty/serial/omap-serial.c Thomas Gleixner 2011-07-28  
1314        if (up->port.sysrq || oops_in_progress)
b42b6e6889e21b drivers/tty/serial/omap-serial.c Thomas Gleixner 2011-07-28  
1315                locked = spin_trylock_irqsave(&up->port.lock, flags);
b612633b592807 drivers/serial/omap-serial.c     Govindraj.R     2010-09-27  
1316        else
b42b6e6889e21b drivers/tty/serial/omap-serial.c Thomas Gleixner 2011-07-28  
1317                spin_lock_irqsave(&up->port.lock, flags);
b612633b592807 drivers/serial/omap-serial.c     Govindraj.R     2010-09-27  
1318  
b612633b592807 drivers/serial/omap-serial.c     Govindraj.R     2010-09-27  
1319        /*
b612633b592807 drivers/serial/omap-serial.c     Govindraj.R     2010-09-27  
1320         * First save the IER then disable the interrupts
b612633b592807 drivers/serial/omap-serial.c     Govindraj.R     2010-09-27  
1321         */
b612633b592807 drivers/serial/omap-serial.c     Govindraj.R     2010-09-27  
1322        ier = serial_in(up, UART_IER);
b612633b592807 drivers/serial/omap-serial.c     Govindraj.R     2010-09-27  
1323        serial_out(up, UART_IER, 0);
b612633b592807 drivers/serial/omap-serial.c     Govindraj.R     2010-09-27  
1324  
b612633b592807 drivers/serial/omap-serial.c     Govindraj.R     2010-09-27  
1325        uart_console_write(&up->port, s, count, 
serial_omap_console_putchar);
b612633b592807 drivers/serial/omap-serial.c     Govindraj.R     2010-09-27  
1326  
b612633b592807 drivers/serial/omap-serial.c     Govindraj.R     2010-09-27  
1327        /*
b612633b592807 drivers/serial/omap-serial.c     Govindraj.R     2010-09-27  
1328         * Finally, wait for transmitter to become empty
b612633b592807 drivers/serial/omap-serial.c     Govindraj.R     2010-09-27  
1329         * and restore the IER
b612633b592807 drivers/serial/omap-serial.c     Govindraj.R     2010-09-27  
1330         */
b612633b592807 drivers/serial/omap-serial.c     Govindraj.R     2010-09-27  
1331        wait_for_xmitr(up);
b612633b592807 drivers/serial/omap-serial.c     Govindraj.R     2010-09-27  
1332        serial_out(up, UART_IER, ier);
b612633b592807 drivers/serial/omap-serial.c     Govindraj.R     2010-09-27  
1333        /*
b612633b592807 drivers/serial/omap-serial.c     Govindraj.R     2010-09-27  
1334         * The receive handling will happen properly because the
b612633b592807 drivers/serial/omap-serial.c     Govindraj.R     2010-09-27  
1335         * receive ready bit will still be set; it is not cleared
b612633b592807 drivers/serial/omap-serial.c     Govindraj.R     2010-09-27  
1336         * on read.  However, modem control will not, we must
b612633b592807 drivers/serial/omap-serial.c     Govindraj.R     2010-09-27  
1337         * call it if we have saved something in the saved flags
b612633b592807 drivers/serial/omap-serial.c     Govindraj.R     2010-09-27  
1338         * while processing with interrupts off.
b612633b592807 drivers/serial/omap-serial.c     Govindraj.R     2010-09-27  
1339         */
b612633b592807 drivers/serial/omap-serial.c     Govindraj.R     2010-09-27  
1340        if (up->msr_saved_flags)
b612633b592807 drivers/serial/omap-serial.c     Govindraj.R     2010-09-27  
1341                check_modem_status(up);
b612633b592807 drivers/serial/omap-serial.c     Govindraj.R     2010-09-27  
1342  
d8ee4ea68ff9c0 drivers/tty/serial/omap-serial.c Felipe Balbi    2012-09-06  
1343        pm_runtime_mark_last_busy(up->dev);
d8ee4ea68ff9c0 drivers/tty/serial/omap-serial.c Felipe Balbi    2012-09-06  
1344        pm_runtime_put_autosuspend(up->dev);
b612633b592807 drivers/serial/omap-serial.c     Govindraj.R     2010-09-27 
@1345        if (locked)
b42b6e6889e21b drivers/tty/serial/omap-serial.c Thomas Gleixner 2011-07-28  
1346                spin_unlock_irqrestore(&up->port.lock, flags);
b612633b592807 drivers/serial/omap-serial.c     Govindraj.R     2010-09-27  
1347  }
b612633b592807 drivers/serial/omap-serial.c     Govindraj.R     2010-09-27  
1348  

:::::: The code at line 1345 was first introduced by commit
:::::: b612633b5928077441b979471869753bfa93d41a serial: Add OMAP high-speed 
UART driver

:::::: TO: Govindraj.R <[email protected]>
:::::: CC: Kevin Hilman <[email protected]>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/[email protected]

Attachment: .config.gz
Description: application/gzip

_______________________________________________
kbuild mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to