CC: kbuild-...@lists.01.org
CC: linux-ker...@vger.kernel.org
TO: Yonghong Song <y...@fb.com>
CC: Alexei Starovoitov <a...@kernel.org>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
master
head:   ff1176468d368232b684f75e82563369208bc371
commit: 5e7b30205cef80f6bb922e61834437ca7bff5837 bpf: Change uapi for bpf 
iterator map elements
date:   12 months ago
:::::: branch date: 30 hours ago
:::::: commit date: 12 months ago
compiler: powerpc-linux-gcc (GCC) 10.3.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <l...@intel.com>


cppcheck possible warnings: (new ones prefixed by >>, may not real problems)

>> kernel/bpf/bpf_iter.c:409:14: warning: Boolean result is used in bitwise 
>> operation. Clarify expression with parentheses. [clarifyCondition]
    if (!ulinfo ^ !linfo_len)
                ^

vim +409 kernel/bpf/bpf_iter.c

367ec3e4834cbd Yonghong Song 2020-05-09  390  
de4e05cac46d20 Yonghong Song 2020-05-09  391  int bpf_iter_link_attach(const 
union bpf_attr *attr, struct bpf_prog *prog)
de4e05cac46d20 Yonghong Song 2020-05-09  392  {
5e7b30205cef80 Yonghong Song 2020-08-04  393    union bpf_iter_link_info __user 
*ulinfo;
de4e05cac46d20 Yonghong Song 2020-05-09  394    struct bpf_link_primer 
link_primer;
de4e05cac46d20 Yonghong Song 2020-05-09  395    struct bpf_iter_target_info 
*tinfo;
5e7b30205cef80 Yonghong Song 2020-08-04  396    union bpf_iter_link_info linfo;
de4e05cac46d20 Yonghong Song 2020-05-09  397    struct bpf_iter_link *link;
5e7b30205cef80 Yonghong Song 2020-08-04  398    u32 prog_btf_id, linfo_len;
de4e05cac46d20 Yonghong Song 2020-05-09  399    bool existed = false;
de4e05cac46d20 Yonghong Song 2020-05-09  400    int err;
de4e05cac46d20 Yonghong Song 2020-05-09  401  
5e7b30205cef80 Yonghong Song 2020-08-04  402    if (attr->link_create.target_fd 
|| attr->link_create.flags)
5e7b30205cef80 Yonghong Song 2020-08-04  403            return -EINVAL;
5e7b30205cef80 Yonghong Song 2020-08-04  404  
5e7b30205cef80 Yonghong Song 2020-08-04  405    memset(&linfo, 0, sizeof(union 
bpf_iter_link_info));
5e7b30205cef80 Yonghong Song 2020-08-04  406  
5e7b30205cef80 Yonghong Song 2020-08-04  407    ulinfo = 
u64_to_user_ptr(attr->link_create.iter_info);
5e7b30205cef80 Yonghong Song 2020-08-04  408    linfo_len = 
attr->link_create.iter_info_len;
5e7b30205cef80 Yonghong Song 2020-08-04 @409    if (!ulinfo ^ !linfo_len)
5e7b30205cef80 Yonghong Song 2020-08-04  410            return -EINVAL;
5e7b30205cef80 Yonghong Song 2020-08-04  411  
5e7b30205cef80 Yonghong Song 2020-08-04  412    if (ulinfo) {
5e7b30205cef80 Yonghong Song 2020-08-04  413            err = 
bpf_check_uarg_tail_zero(ulinfo, sizeof(linfo),
5e7b30205cef80 Yonghong Song 2020-08-04  414                                    
       linfo_len);
5e7b30205cef80 Yonghong Song 2020-08-04  415            if (err)
5e7b30205cef80 Yonghong Song 2020-08-04  416                    return err;
5e7b30205cef80 Yonghong Song 2020-08-04  417            linfo_len = min_t(u32, 
linfo_len, sizeof(linfo));
5e7b30205cef80 Yonghong Song 2020-08-04  418            if 
(copy_from_user(&linfo, ulinfo, linfo_len))
5e7b30205cef80 Yonghong Song 2020-08-04  419                    return -EFAULT;
5e7b30205cef80 Yonghong Song 2020-08-04  420    }
5e7b30205cef80 Yonghong Song 2020-08-04  421  
de4e05cac46d20 Yonghong Song 2020-05-09  422    prog_btf_id = 
prog->aux->attach_btf_id;
de4e05cac46d20 Yonghong Song 2020-05-09  423    mutex_lock(&targets_mutex);
de4e05cac46d20 Yonghong Song 2020-05-09  424    list_for_each_entry(tinfo, 
&targets, list) {
de4e05cac46d20 Yonghong Song 2020-05-09  425            if (tinfo->btf_id == 
prog_btf_id) {
de4e05cac46d20 Yonghong Song 2020-05-09  426                    existed = true;
de4e05cac46d20 Yonghong Song 2020-05-09  427                    break;
de4e05cac46d20 Yonghong Song 2020-05-09  428            }
de4e05cac46d20 Yonghong Song 2020-05-09  429    }
de4e05cac46d20 Yonghong Song 2020-05-09  430    mutex_unlock(&targets_mutex);
de4e05cac46d20 Yonghong Song 2020-05-09  431    if (!existed)
de4e05cac46d20 Yonghong Song 2020-05-09  432            return -ENOENT;
de4e05cac46d20 Yonghong Song 2020-05-09  433  
de4e05cac46d20 Yonghong Song 2020-05-09  434    link = kzalloc(sizeof(*link), 
GFP_USER | __GFP_NOWARN);
de4e05cac46d20 Yonghong Song 2020-05-09  435    if (!link)
de4e05cac46d20 Yonghong Song 2020-05-09  436            return -ENOMEM;
de4e05cac46d20 Yonghong Song 2020-05-09  437  
de4e05cac46d20 Yonghong Song 2020-05-09  438    bpf_link_init(&link->link, 
BPF_LINK_TYPE_ITER, &bpf_iter_link_lops, prog);
de4e05cac46d20 Yonghong Song 2020-05-09  439    link->tinfo = tinfo;
de4e05cac46d20 Yonghong Song 2020-05-09  440  
de4e05cac46d20 Yonghong Song 2020-05-09  441    err  = 
bpf_link_prime(&link->link, &link_primer);
de4e05cac46d20 Yonghong Song 2020-05-09  442    if (err) {
de4e05cac46d20 Yonghong Song 2020-05-09  443            kfree(link);
de4e05cac46d20 Yonghong Song 2020-05-09  444            return err;
de4e05cac46d20 Yonghong Song 2020-05-09  445    }
de4e05cac46d20 Yonghong Song 2020-05-09  446  
5e7b30205cef80 Yonghong Song 2020-08-04  447    if 
(tinfo->reg_info->attach_target) {
5e7b30205cef80 Yonghong Song 2020-08-04  448            err = 
tinfo->reg_info->attach_target(prog, &linfo, &link->aux);
a5cbe05a6673b8 Yonghong Song 2020-07-23  449            if (err) {
5e7b30205cef80 Yonghong Song 2020-08-04  450                    
bpf_link_cleanup(&link_primer);
5e7b30205cef80 Yonghong Song 2020-08-04  451                    return err;
a5cbe05a6673b8 Yonghong Song 2020-07-23  452            }
a5cbe05a6673b8 Yonghong Song 2020-07-23  453    }
a5cbe05a6673b8 Yonghong Song 2020-07-23  454  
de4e05cac46d20 Yonghong Song 2020-05-09  455    return 
bpf_link_settle(&link_primer);
de4e05cac46d20 Yonghong Song 2020-05-09  456  }
ac51d99bf81caa Yonghong Song 2020-05-09  457  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-...@lists.01.org
_______________________________________________
kbuild mailing list -- kbuild@lists.01.org
To unsubscribe send an email to kbuild-le...@lists.01.org

Reply via email to