* [PATCH bpf-next] bpf: Change inode_storage's lookup_elem return value from NULL to -EBADF. @ 2021-03-07 10:32 Tal Lossos 2021-03-07 11:53 ` kernel test robot 0 siblings, 1 reply; 2+ messages in thread From: Tal Lossos @ 2021-03-07 10:32 UTC (permalink / raw) To: bpf; +Cc: yhs, kpsingh, gilad.reti, Tal Lossos bpf_fd_inode_storage_lookup_elem returned NULL when getting a bad FD which caused -ENOENT in bpf_map_copy_value. EBADF is better than ENOENT for a bad FD behaviour. The patch was partially contributed by CyberArk Software, Inc. Signed-off-by: Tal Lossos <tallossos@gmail.com> --- kernel/bpf/bpf_inode_storage.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel/bpf/bpf_inode_storage.c b/kernel/bpf/bpf_inode_storage.c index da753721457c..0ca25e9549d8 100644 --- a/kernel/bpf/bpf_inode_storage.c +++ b/kernel/bpf/bpf_inode_storage.c @@ -109,7 +109,7 @@ static void *bpf_fd_inode_storage_lookup_elem(struct bpf_map *map, void *key) fd = *(int *)key; f = fget_raw(fd); if (!f) - return NULL; + return -EBADF; sdata = inode_storage_lookup(f->f_inode, map, true); fput(f); -- 2.27.0 ^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH bpf-next] bpf: Change inode_storage's lookup_elem return value from NULL to -EBADF. 2021-03-07 10:32 [PATCH bpf-next] bpf: Change inode_storage's lookup_elem return value from NULL to -EBADF Tal Lossos @ 2021-03-07 11:53 ` kernel test robot 0 siblings, 0 replies; 2+ messages in thread From: kernel test robot @ 2021-03-07 11:53 UTC (permalink / raw) To: kbuild-all [-- Attachment #1: Type: text/plain, Size: 2208 bytes --] Hi Tal, Thank you for the patch! Perhaps something to improve: [auto build test WARNING on bpf-next/master] url: https://github.com/0day-ci/linux/commits/Tal-Lossos/bpf-Change-inode_storage-s-lookup_elem-return-value-from-NULL-to-EBADF/20210307-183448 base: https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git master config: powerpc-allyesconfig (attached as .config) compiler: powerpc64-linux-gcc (GCC) 9.3.0 reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # https://github.com/0day-ci/linux/commit/62784457408977140aecb9d1cadbb13e281e7932 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Tal-Lossos/bpf-Change-inode_storage-s-lookup_elem-return-value-from-NULL-to-EBADF/20210307-183448 git checkout 62784457408977140aecb9d1cadbb13e281e7932 # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=powerpc If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@intel.com> All warnings (new ones prefixed by >>): kernel/bpf/bpf_inode_storage.c: In function 'bpf_fd_inode_storage_lookup_elem': >> kernel/bpf/bpf_inode_storage.c:112:10: warning: returning 'int' from a function with return type 'void *' makes pointer from integer without a cast [-Wint-conversion] 112 | return -EBADF; | ^ vim +112 kernel/bpf/bpf_inode_storage.c 102 103 static void *bpf_fd_inode_storage_lookup_elem(struct bpf_map *map, void *key) 104 { 105 struct bpf_local_storage_data *sdata; 106 struct file *f; 107 int fd; 108 109 fd = *(int *)key; 110 f = fget_raw(fd); 111 if (!f) > 112 return -EBADF; 113 114 sdata = inode_storage_lookup(f->f_inode, map, true); 115 fput(f); 116 return sdata ? sdata->data : NULL; 117 } 118 --- 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: 72572 bytes --] ^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2021-03-07 11:53 UTC | newest] Thread overview: 2+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2021-03-07 10:32 [PATCH bpf-next] bpf: Change inode_storage's lookup_elem return value from NULL to -EBADF Tal Lossos 2021-03-07 11:53 ` 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.