* [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.