CC: [email protected] BCC: [email protected] CC: [email protected] TO: Kishen Maloor <[email protected]> CC: Mat Martineau <[email protected]>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git master head: 4950b6990e3b1efae64a5f6fc5738d25e3b816b3 commit: 8b20137012d9e521736c040328f8979cf0a144d0 [2/18] mptcp: read attributes of addr entries managed by userspace PMs :::::: branch date: 4 hours ago :::::: commit date: 22 hours ago compiler: aarch64-linux-gcc (GCC) 11.3.0 reproduce (cppcheck warning): # apt-get install cppcheck git checkout 8b20137012d9e521736c040328f8979cf0a144d0 cppcheck --quiet --enable=style,performance,portability --template=gcc FILE If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <[email protected]> cppcheck possible warnings: (new ones prefixed by >>, may not real problems) In file included from net/mptcp/pm_userspace.c: >> net/mptcp/pm_userspace.c:106:33: warning: Parameter 'skc' can be declared >> with const [constParameter] struct mptcp_addr_info *skc) ^ net/mptcp/protocol.h:657:7: warning: Uninitialized variables: tmp.node, tmp.local_key, tmp.remote_key, tmp.idsn, tmp.map_seq, tmp.snd_isn, tmp.token, tmp.rel_write_seq, tmp.map_subflow_seq, tmp.ssn_offset, tmp.map_data_len, tmp.map_data_csum, tmp.map_csum_len, tmp.request_mptcp, tmp.request_join, tmp.request_bkup, tmp.mp_capable, tmp.mp_join, tmp.fully_established, tmp.pm_notified, tmp.conn_finished, tmp.map_valid, tmp.map_csum_reqd, tmp.map_data_fin, tmp.mpc_map, tmp.backup, tmp.send_mp_prio, tmp.send_mp_fail, tmp.send_fastclose, tmp.send_infinite_map, tmp.rx_eof, tmp.can_ack, tmp.disposable, tmp.stale, tmp.local_id_valid, tmp.data_avail, tmp.mp_fail_response_expect, tmp.remote_nonce, tmp.thmac, tmp.local_nonce, tmp.remote_token, tmp.local_id, tmp.remote_id, tmp.reset_seen, tmp.reset_transient, tmp.reset_reason, tmp.stale_count, tmp.delegated_status, tmp.delegated_node, tmp.setsockopt_seq, tmp.stale_rcv_tstamp, tmp.tcp_sock, tmp.conn, tmp.icsk_af_ops, tmp.tcp_state_change, tmp.tc p_error_report, tmp.rcu [uninitvar] if (tmp != subflow) ^ >> net/mptcp/pm_userspace.c:47:12: warning: Uninitialized variables: e.list, >> e.flags, e.ifindex, e.lsk [uninitvar] match = e; ^ >> net/mptcp/pm_userspace.c:91:20: warning: Uninitialized variable: entry->addr >> [uninitvar] if (id == entry->addr.id) { ^ vim +/skc +106 net/mptcp/pm_userspace.c 4638de5aefe563 Kishen Maloor 2022-05-03 26 4638de5aefe563 Kishen Maloor 2022-05-03 27 int mptcp_userspace_pm_append_new_local_addr(struct mptcp_sock *msk, 4638de5aefe563 Kishen Maloor 2022-05-03 28 struct mptcp_pm_addr_entry *entry) 4638de5aefe563 Kishen Maloor 2022-05-03 29 { 4638de5aefe563 Kishen Maloor 2022-05-03 30 DECLARE_BITMAP(id_bitmap, MPTCP_PM_MAX_ADDR_ID + 1); 4638de5aefe563 Kishen Maloor 2022-05-03 31 struct mptcp_pm_addr_entry *match = NULL; 4638de5aefe563 Kishen Maloor 2022-05-03 32 struct sock *sk = (struct sock *)msk; 4638de5aefe563 Kishen Maloor 2022-05-03 33 struct mptcp_pm_addr_entry *e; 4638de5aefe563 Kishen Maloor 2022-05-03 34 bool addr_match = false; 4638de5aefe563 Kishen Maloor 2022-05-03 35 bool id_match = false; 4638de5aefe563 Kishen Maloor 2022-05-03 36 int ret = -EINVAL; 4638de5aefe563 Kishen Maloor 2022-05-03 37 4638de5aefe563 Kishen Maloor 2022-05-03 38 bitmap_zero(id_bitmap, MPTCP_PM_MAX_ADDR_ID + 1); 4638de5aefe563 Kishen Maloor 2022-05-03 39 4638de5aefe563 Kishen Maloor 2022-05-03 40 spin_lock_bh(&msk->pm.lock); 4638de5aefe563 Kishen Maloor 2022-05-03 41 list_for_each_entry(e, &msk->pm.userspace_pm_local_addr_list, list) { 4638de5aefe563 Kishen Maloor 2022-05-03 42 addr_match = mptcp_addresses_equal(&e->addr, &entry->addr, true); 4638de5aefe563 Kishen Maloor 2022-05-03 43 if (addr_match && entry->addr.id == 0) 4638de5aefe563 Kishen Maloor 2022-05-03 44 entry->addr.id = e->addr.id; 4638de5aefe563 Kishen Maloor 2022-05-03 45 id_match = (e->addr.id == entry->addr.id); 4638de5aefe563 Kishen Maloor 2022-05-03 46 if (addr_match && id_match) { 4638de5aefe563 Kishen Maloor 2022-05-03 @47 match = e; 4638de5aefe563 Kishen Maloor 2022-05-03 48 break; 4638de5aefe563 Kishen Maloor 2022-05-03 49 } else if (addr_match || id_match) { 4638de5aefe563 Kishen Maloor 2022-05-03 50 break; 4638de5aefe563 Kishen Maloor 2022-05-03 51 } 4638de5aefe563 Kishen Maloor 2022-05-03 52 __set_bit(e->addr.id, id_bitmap); 4638de5aefe563 Kishen Maloor 2022-05-03 53 } 4638de5aefe563 Kishen Maloor 2022-05-03 54 4638de5aefe563 Kishen Maloor 2022-05-03 55 if (!match && !addr_match && !id_match) { 4638de5aefe563 Kishen Maloor 2022-05-03 56 /* Memory for the entry is allocated from the 4638de5aefe563 Kishen Maloor 2022-05-03 57 * sock option buffer. 4638de5aefe563 Kishen Maloor 2022-05-03 58 */ 4638de5aefe563 Kishen Maloor 2022-05-03 59 e = sock_kmalloc(sk, sizeof(*e), GFP_ATOMIC); 4638de5aefe563 Kishen Maloor 2022-05-03 60 if (!e) { 4638de5aefe563 Kishen Maloor 2022-05-03 61 spin_unlock_bh(&msk->pm.lock); 4638de5aefe563 Kishen Maloor 2022-05-03 62 return -ENOMEM; 4638de5aefe563 Kishen Maloor 2022-05-03 63 } 4638de5aefe563 Kishen Maloor 2022-05-03 64 4638de5aefe563 Kishen Maloor 2022-05-03 65 *e = *entry; 4638de5aefe563 Kishen Maloor 2022-05-03 66 if (!e->addr.id) 4638de5aefe563 Kishen Maloor 2022-05-03 67 e->addr.id = find_next_zero_bit(id_bitmap, 4638de5aefe563 Kishen Maloor 2022-05-03 68 MPTCP_PM_MAX_ADDR_ID + 1, 4638de5aefe563 Kishen Maloor 2022-05-03 69 1); 4638de5aefe563 Kishen Maloor 2022-05-03 70 list_add_tail_rcu(&e->list, &msk->pm.userspace_pm_local_addr_list); 4638de5aefe563 Kishen Maloor 2022-05-03 71 ret = e->addr.id; 4638de5aefe563 Kishen Maloor 2022-05-03 72 } else if (match) { 4638de5aefe563 Kishen Maloor 2022-05-03 73 ret = entry->addr.id; 4638de5aefe563 Kishen Maloor 2022-05-03 74 } 4638de5aefe563 Kishen Maloor 2022-05-03 75 4638de5aefe563 Kishen Maloor 2022-05-03 76 spin_unlock_bh(&msk->pm.lock); 4638de5aefe563 Kishen Maloor 2022-05-03 77 return ret; 4638de5aefe563 Kishen Maloor 2022-05-03 78 } 8b20137012d9e5 Kishen Maloor 2022-05-03 79 8b20137012d9e5 Kishen Maloor 2022-05-03 80 int mptcp_userspace_pm_get_flags_and_ifindex_by_id(struct mptcp_sock *msk, 8b20137012d9e5 Kishen Maloor 2022-05-03 81 unsigned int id, 8b20137012d9e5 Kishen Maloor 2022-05-03 82 u8 *flags, int *ifindex) 8b20137012d9e5 Kishen Maloor 2022-05-03 83 { 8b20137012d9e5 Kishen Maloor 2022-05-03 84 struct mptcp_pm_addr_entry *entry, *match = NULL; 8b20137012d9e5 Kishen Maloor 2022-05-03 85 8b20137012d9e5 Kishen Maloor 2022-05-03 86 *flags = 0; 8b20137012d9e5 Kishen Maloor 2022-05-03 87 *ifindex = 0; 8b20137012d9e5 Kishen Maloor 2022-05-03 88 8b20137012d9e5 Kishen Maloor 2022-05-03 89 spin_lock_bh(&msk->pm.lock); 8b20137012d9e5 Kishen Maloor 2022-05-03 90 list_for_each_entry(entry, &msk->pm.userspace_pm_local_addr_list, list) { 8b20137012d9e5 Kishen Maloor 2022-05-03 @91 if (id == entry->addr.id) { 8b20137012d9e5 Kishen Maloor 2022-05-03 92 match = entry; 8b20137012d9e5 Kishen Maloor 2022-05-03 93 break; 8b20137012d9e5 Kishen Maloor 2022-05-03 94 } 8b20137012d9e5 Kishen Maloor 2022-05-03 95 } 8b20137012d9e5 Kishen Maloor 2022-05-03 96 spin_unlock_bh(&msk->pm.lock); 8b20137012d9e5 Kishen Maloor 2022-05-03 97 if (match) { 8b20137012d9e5 Kishen Maloor 2022-05-03 98 *flags = match->flags; 8b20137012d9e5 Kishen Maloor 2022-05-03 99 *ifindex = match->ifindex; 8b20137012d9e5 Kishen Maloor 2022-05-03 100 } 8b20137012d9e5 Kishen Maloor 2022-05-03 101 8b20137012d9e5 Kishen Maloor 2022-05-03 102 return 0; 8b20137012d9e5 Kishen Maloor 2022-05-03 103 } 8b20137012d9e5 Kishen Maloor 2022-05-03 104 8b20137012d9e5 Kishen Maloor 2022-05-03 105 int mptcp_userspace_pm_get_local_id(struct mptcp_sock *msk, 8b20137012d9e5 Kishen Maloor 2022-05-03 @106 struct mptcp_addr_info *skc) -- 0-DAY CI Kernel Test Service https://01.org/lkp _______________________________________________ kbuild mailing list -- [email protected] To unsubscribe send an email to [email protected]
