* [mptcp:export 11/21] net/mptcp/pm_netlink.c:553 mptcp_pm_nl_append_new_local_addr() warn: impossible condition '(entry->addr.id > 255) => (0-255 > 255)'
@ 2020-12-17 13:52 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2020-12-17 13:52 UTC (permalink / raw)
To: kbuild
[-- Attachment #1: Type: text/plain, Size: 5633 bytes --]
CC: kbuild-all(a)lists.01.org
CC: mptcp(a)lists.01.org
TO: Geliang Tang <geliangtang@gmail.com>
CC: Mat Martineau <mathew.j.martineau@linux.intel.com>
tree: https://github.com/multipath-tcp/mptcp_net-next.git export
head: 419ed13c1312e8901c526265e8f66dd8930732b8
commit: 737e2a42ce26bbd4839288d8cd1cfd9228f84018 [11/21] mptcp: add the address ID assignment bitmap
:::::: branch date: 5 hours ago
:::::: commit date: 5 hours ago
config: x86_64-randconfig-m001-20201217 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
New smatch warnings:
net/mptcp/pm_netlink.c:553 mptcp_pm_nl_append_new_local_addr() warn: impossible condition '(entry->addr.id > 255) => (0-255 > 255)'
Old smatch warnings:
net/mptcp/pm_netlink.c:560 mptcp_pm_nl_append_new_local_addr() warn: impossible condition '(entry->addr.id > 255) => (0-255 > 255)'
vim +553 net/mptcp/pm_netlink.c
01cacb00b35cb62 Paolo Abeni 2020-03-27 520
01cacb00b35cb62 Paolo Abeni 2020-03-27 521 static int mptcp_pm_nl_append_new_local_addr(struct pm_nl_pernet *pernet,
01cacb00b35cb62 Paolo Abeni 2020-03-27 522 struct mptcp_pm_addr_entry *entry)
01cacb00b35cb62 Paolo Abeni 2020-03-27 523 {
01cacb00b35cb62 Paolo Abeni 2020-03-27 524 struct mptcp_pm_addr_entry *cur;
01cacb00b35cb62 Paolo Abeni 2020-03-27 525 int ret = -EINVAL;
01cacb00b35cb62 Paolo Abeni 2020-03-27 526
01cacb00b35cb62 Paolo Abeni 2020-03-27 527 spin_lock_bh(&pernet->lock);
01cacb00b35cb62 Paolo Abeni 2020-03-27 528 /* to keep the code simple, don't do IDR-like allocation for address ID,
01cacb00b35cb62 Paolo Abeni 2020-03-27 529 * just bail when we exceed limits
01cacb00b35cb62 Paolo Abeni 2020-03-27 530 */
737e2a42ce26bbd Geliang Tang 2020-12-17 531 if (pernet->next_id == MAX_ADDR_ID)
737e2a42ce26bbd Geliang Tang 2020-12-17 532 pernet->next_id = 1;
01cacb00b35cb62 Paolo Abeni 2020-03-27 533 if (pernet->addrs >= MPTCP_PM_ADDR_MAX)
01cacb00b35cb62 Paolo Abeni 2020-03-27 534 goto out;
737e2a42ce26bbd Geliang Tang 2020-12-17 535 if (test_bit(entry->addr.id, pernet->id_bitmap))
737e2a42ce26bbd Geliang Tang 2020-12-17 536 goto out;
01cacb00b35cb62 Paolo Abeni 2020-03-27 537
01cacb00b35cb62 Paolo Abeni 2020-03-27 538 /* do not insert duplicate address, differentiate on port only
01cacb00b35cb62 Paolo Abeni 2020-03-27 539 * singled addresses
01cacb00b35cb62 Paolo Abeni 2020-03-27 540 */
01cacb00b35cb62 Paolo Abeni 2020-03-27 541 list_for_each_entry(cur, &pernet->local_addr_list, list) {
01cacb00b35cb62 Paolo Abeni 2020-03-27 542 if (addresses_equal(&cur->addr, &entry->addr,
01cacb00b35cb62 Paolo Abeni 2020-03-27 543 address_use_port(entry) &&
01cacb00b35cb62 Paolo Abeni 2020-03-27 544 address_use_port(cur)))
01cacb00b35cb62 Paolo Abeni 2020-03-27 545 goto out;
01cacb00b35cb62 Paolo Abeni 2020-03-27 546 }
01cacb00b35cb62 Paolo Abeni 2020-03-27 547
737e2a42ce26bbd Geliang Tang 2020-12-17 548 if (!entry->addr.id) {
737e2a42ce26bbd Geliang Tang 2020-12-17 549 find_next:
737e2a42ce26bbd Geliang Tang 2020-12-17 550 entry->addr.id = find_next_zero_bit(pernet->id_bitmap,
737e2a42ce26bbd Geliang Tang 2020-12-17 551 MAX_ADDR_ID + 1,
737e2a42ce26bbd Geliang Tang 2020-12-17 552 pernet->next_id);
737e2a42ce26bbd Geliang Tang 2020-12-17 @553 if ((!entry->addr.id || entry->addr.id > MAX_ADDR_ID) &&
737e2a42ce26bbd Geliang Tang 2020-12-17 554 pernet->next_id != 1) {
737e2a42ce26bbd Geliang Tang 2020-12-17 555 pernet->next_id = 1;
737e2a42ce26bbd Geliang Tang 2020-12-17 556 goto find_next;
737e2a42ce26bbd Geliang Tang 2020-12-17 557 }
737e2a42ce26bbd Geliang Tang 2020-12-17 558 }
737e2a42ce26bbd Geliang Tang 2020-12-17 559
737e2a42ce26bbd Geliang Tang 2020-12-17 560 if (!entry->addr.id || entry->addr.id > MAX_ADDR_ID)
737e2a42ce26bbd Geliang Tang 2020-12-17 561 goto out;
737e2a42ce26bbd Geliang Tang 2020-12-17 562
737e2a42ce26bbd Geliang Tang 2020-12-17 563 __set_bit(entry->addr.id, pernet->id_bitmap);
737e2a42ce26bbd Geliang Tang 2020-12-17 564 if (entry->addr.id > pernet->next_id)
737e2a42ce26bbd Geliang Tang 2020-12-17 565 pernet->next_id = entry->addr.id;
737e2a42ce26bbd Geliang Tang 2020-12-17 566
ef0da3b8a2f18f5 Paolo Abeni 2020-09-14 567 if (entry->addr.flags & MPTCP_PM_ADDR_FLAG_SIGNAL)
01cacb00b35cb62 Paolo Abeni 2020-03-27 568 pernet->add_addr_signal_max++;
ef0da3b8a2f18f5 Paolo Abeni 2020-09-14 569 if (entry->addr.flags & MPTCP_PM_ADDR_FLAG_SUBFLOW)
01cacb00b35cb62 Paolo Abeni 2020-03-27 570 pernet->local_addr_max++;
01cacb00b35cb62 Paolo Abeni 2020-03-27 571
01cacb00b35cb62 Paolo Abeni 2020-03-27 572 pernet->addrs++;
01cacb00b35cb62 Paolo Abeni 2020-03-27 573 list_add_tail_rcu(&entry->list, &pernet->local_addr_list);
01cacb00b35cb62 Paolo Abeni 2020-03-27 574 ret = entry->addr.id;
01cacb00b35cb62 Paolo Abeni 2020-03-27 575
01cacb00b35cb62 Paolo Abeni 2020-03-27 576 out:
01cacb00b35cb62 Paolo Abeni 2020-03-27 577 spin_unlock_bh(&pernet->lock);
01cacb00b35cb62 Paolo Abeni 2020-03-27 578 return ret;
01cacb00b35cb62 Paolo Abeni 2020-03-27 579 }
01cacb00b35cb62 Paolo Abeni 2020-03-27 580
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 32634 bytes --]
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2020-12-17 13:52 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-12-17 13:52 [mptcp:export 11/21] net/mptcp/pm_netlink.c:553 mptcp_pm_nl_append_new_local_addr() warn: impossible condition '(entry->addr.id > 255) => (0-255 > 255)' 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.