From: kernel test robot <lkp@intel.com>
To: kbuild@lists.01.org
Subject: [xilinx-xlnx:xlnx_rebase_v5.15 304/872] drivers/tty/serial/xilinx_uartps.c:1465:3-9: preceding lock on line 1458
Date: Tue, 08 Feb 2022 18:55:12 +0800 [thread overview]
Message-ID: <202202081830.Tk4vrixD-lkp@intel.com> (raw)
[-- 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
reply other threads:[~2022-02-08 10:55 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202202081830.Tk4vrixD-lkp@intel.com \
--to=lkp@intel.com \
--cc=kbuild@lists.01.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.