CC: [email protected]
TO: Yonghong Song <[email protected]>
CC: Alexei Starovoitov <[email protected]>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf.git master
head:   929e54a989680c6f134b02293732030b897475dc
commit: 5e7b30205cef80f6bb922e61834437ca7bff5837 [3/10] bpf: Change uapi for 
bpf iterator map elements
:::::: branch date: 7 hours ago
:::::: commit date: 7 hours ago
compiler: powerpc-linux-gcc (GCC) 9.3.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <[email protected]>


cppcheck warnings: (new ones prefixed by >>)

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

# 
https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf.git/commit/?id=5e7b30205cef80f6bb922e61834437ca7bff5837
git remote add bpf https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf.git
git remote update bpf
git checkout 5e7b30205cef80f6bb922e61834437ca7bff5837
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/[email protected]
_______________________________________________
kbuild mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to