All of lore.kernel.org
 help / color / mirror / Atom feed
* [xilinx-xlnx:xlnx_rebase_v5.15 304/872] drivers/tty/serial/xilinx_uartps.c:1465:3-9: preceding lock on line 1458
@ 2022-02-08 10:55 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2022-02-08 10:55 UTC (permalink / raw)
  To: kbuild

[-- Attachment #1: Type: text/plain, Size: 6023 bytes --]

CC: kbuild-all(a)lists.01.org
CC: linux-arm-kernel(a)lists.infradead.org
TO: Michal Simek <monstr@monstr.eu>
CC: Shubhrajyoti Datta <shubhrajyoti.datta@xilinx.com>
CC: Radhey Shyam Pandey <radhey.shyam.pandey@xilinx.com>

tree:   https://github.com/Xilinx/linux-xlnx xlnx_rebase_v5.15
head:   1183ce490adb103e5e569b8ebd74c50c885ddc05
commit: f0090478ae8a76b733a846f50dc5559fff3c461f [304/872] serial: uartps: Change uart ID port allocation
:::::: branch date: 7 days ago
:::::: commit date: 8 days ago
config: xtensa-randconfig-c004-20220207 (https://download.01.org/0day-ci/archive/20220208/202202081830.Tk4vrixD-lkp(a)intel.com/config)
compiler: xtensa-linux-gcc (GCC) 11.2.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Julia Lawall <julia.lawall@lip6.fr>


cocci warnings: (new ones prefixed by >>)
>> drivers/tty/serial/xilinx_uartps.c:1465:3-9: preceding lock on line 1458

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

f0090478ae8a76 Michal Simek 2018-09-20  1453  
f0090478ae8a76 Michal Simek 2018-09-20  1454  static int cdns_get_id(struct platform_device *pdev)
f0090478ae8a76 Michal Simek 2018-09-20  1455  {
f0090478ae8a76 Michal Simek 2018-09-20  1456  	int id, ret;
f0090478ae8a76 Michal Simek 2018-09-20  1457  
f0090478ae8a76 Michal Simek 2018-09-20 @1458  	mutex_lock(&bitmap_lock);
f0090478ae8a76 Michal Simek 2018-09-20  1459  
f0090478ae8a76 Michal Simek 2018-09-20  1460  	/* Alias list is stable that's why get alias bitmap only once */
f0090478ae8a76 Michal Simek 2018-09-20  1461  	if (!alias_bitmap_initialized) {
f0090478ae8a76 Michal Simek 2018-09-20  1462  		ret = of_alias_get_alias_list(cdns_uart_of_match, "serial",
f0090478ae8a76 Michal Simek 2018-09-20  1463  					      alias_bitmap, CDNS_UART_NR_PORTS);
f0090478ae8a76 Michal Simek 2018-09-20  1464  		if (ret)
f0090478ae8a76 Michal Simek 2018-09-20 @1465  			return ret;
f0090478ae8a76 Michal Simek 2018-09-20  1466  
f0090478ae8a76 Michal Simek 2018-09-20  1467  		alias_bitmap_initialized++;
f0090478ae8a76 Michal Simek 2018-09-20  1468  	}
f0090478ae8a76 Michal Simek 2018-09-20  1469  
f0090478ae8a76 Michal Simek 2018-09-20  1470  	/* Make sure that alias ID is not taken by instance without alias */
f0090478ae8a76 Michal Simek 2018-09-20  1471  	bitmap_or(bitmap, bitmap, alias_bitmap, CDNS_UART_NR_PORTS);
f0090478ae8a76 Michal Simek 2018-09-20  1472  
f0090478ae8a76 Michal Simek 2018-09-20  1473  	dev_dbg(&pdev->dev, "Alias bitmap: %*pb\n",
f0090478ae8a76 Michal Simek 2018-09-20  1474  		CDNS_UART_NR_PORTS, bitmap);
f0090478ae8a76 Michal Simek 2018-09-20  1475  
f0090478ae8a76 Michal Simek 2018-09-20  1476  	/* Look for a serialN alias */
f0090478ae8a76 Michal Simek 2018-09-20  1477  	id = of_alias_get_id(pdev->dev.of_node, "serial");
f0090478ae8a76 Michal Simek 2018-09-20  1478  	if (id < 0) {
f0090478ae8a76 Michal Simek 2018-09-20  1479  		dev_warn(&pdev->dev,
f0090478ae8a76 Michal Simek 2018-09-20  1480  			 "No serial alias passed. Using the first free id\n");
f0090478ae8a76 Michal Simek 2018-09-20  1481  
f0090478ae8a76 Michal Simek 2018-09-20  1482  		/*
f0090478ae8a76 Michal Simek 2018-09-20  1483  		 * Start with id 0 and check if there is no serial0 alias
f0090478ae8a76 Michal Simek 2018-09-20  1484  		 * which points to device which is compatible with this driver.
f0090478ae8a76 Michal Simek 2018-09-20  1485  		 * If alias exists then try next free position.
f0090478ae8a76 Michal Simek 2018-09-20  1486  		 */
f0090478ae8a76 Michal Simek 2018-09-20  1487  		id = 0;
f0090478ae8a76 Michal Simek 2018-09-20  1488  
f0090478ae8a76 Michal Simek 2018-09-20  1489  		for (;;) {
f0090478ae8a76 Michal Simek 2018-09-20  1490  			dev_info(&pdev->dev, "Checking id %d\n", id);
f0090478ae8a76 Michal Simek 2018-09-20  1491  			id = find_next_zero_bit(bitmap, CDNS_UART_NR_PORTS, id);
f0090478ae8a76 Michal Simek 2018-09-20  1492  
f0090478ae8a76 Michal Simek 2018-09-20  1493  			/* No free empty instance */
f0090478ae8a76 Michal Simek 2018-09-20  1494  			if (id == CDNS_UART_NR_PORTS) {
f0090478ae8a76 Michal Simek 2018-09-20  1495  				dev_err(&pdev->dev, "No free ID\n");
f0090478ae8a76 Michal Simek 2018-09-20  1496  				mutex_unlock(&bitmap_lock);
f0090478ae8a76 Michal Simek 2018-09-20  1497  				return -EINVAL;
f0090478ae8a76 Michal Simek 2018-09-20  1498  			}
f0090478ae8a76 Michal Simek 2018-09-20  1499  
f0090478ae8a76 Michal Simek 2018-09-20  1500  			dev_dbg(&pdev->dev, "The empty id is %d\n", id);
f0090478ae8a76 Michal Simek 2018-09-20  1501  			/* Check if ID is empty */
f0090478ae8a76 Michal Simek 2018-09-20  1502  			if (!test_and_set_bit(id, bitmap)) {
f0090478ae8a76 Michal Simek 2018-09-20  1503  				/* Break the loop if bit is taken */
f0090478ae8a76 Michal Simek 2018-09-20  1504  				dev_dbg(&pdev->dev,
f0090478ae8a76 Michal Simek 2018-09-20  1505  					"Selected ID %d allocation passed\n",
f0090478ae8a76 Michal Simek 2018-09-20  1506  					id);
f0090478ae8a76 Michal Simek 2018-09-20  1507  				break;
f0090478ae8a76 Michal Simek 2018-09-20  1508  			}
f0090478ae8a76 Michal Simek 2018-09-20  1509  			dev_dbg(&pdev->dev,
f0090478ae8a76 Michal Simek 2018-09-20  1510  				"Selected ID %d allocation failed\n", id);
f0090478ae8a76 Michal Simek 2018-09-20  1511  			/* if taking bit fails then try next one */
f0090478ae8a76 Michal Simek 2018-09-20  1512  			id++;
f0090478ae8a76 Michal Simek 2018-09-20  1513  		}
f0090478ae8a76 Michal Simek 2018-09-20  1514  	}
f0090478ae8a76 Michal Simek 2018-09-20  1515  
f0090478ae8a76 Michal Simek 2018-09-20  1516  	mutex_unlock(&bitmap_lock);
f0090478ae8a76 Michal Simek 2018-09-20  1517  
f0090478ae8a76 Michal Simek 2018-09-20  1518  	return id;
f0090478ae8a76 Michal Simek 2018-09-20  1519  }
f0090478ae8a76 Michal Simek 2018-09-20  1520  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

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

only message in thread, other threads:[~2022-02-08 10:55 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-02-08 10:55 [xilinx-xlnx:xlnx_rebase_v5.15 304/872] drivers/tty/serial/xilinx_uartps.c:1465:3-9: preceding lock on line 1458 kernel test robot

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.