Re: [PATCH -next V2] proc: support file->f_pos checking in mem_lseek

From: kernel test robot
Date: Thu Nov 09 2023 - 01:14:25 EST


Hi WoZ1zh1,

kernel test robot noticed the following build warnings:

[auto build test WARNING on next-20231108]

url: https://github.com/intel-lab-lkp/linux/commits/WoZ1zh1/proc-support-file-f_pos-checking-in-mem_lseek/20231109-103353
base: next-20231108
patch link: https://lore.kernel.org/r/20231109102658.2075547-1-wozizhi%40huawei.com
patch subject: [PATCH -next V2] proc: support file->f_pos checking in mem_lseek
config: arc-randconfig-001-20231109 (https://download.01.org/0day-ci/archive/20231109/202311091307.k2L6reDL-lkp@xxxxxxxxx/config)
compiler: arc-elf-gcc (GCC) 13.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20231109/202311091307.k2L6reDL-lkp@xxxxxxxxx/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202311091307.k2L6reDL-lkp@xxxxxxxxx/

All warnings (new ones prefixed by >>):

fs/proc/base.c: In function 'mem_lseek':
>> fs/proc/base.c:911:24: warning: this statement may fall through [-Wimplicit-fallthrough=]
911 | offset += file->f_pos;
| ~~~~~~~^~~~~~~~~~~~~~
fs/proc/base.c:912:9: note: here
912 | case SEEK_SET:
| ^~~~


vim +911 fs/proc/base.c

903
904 loff_t mem_lseek(struct file *file, loff_t offset, int orig)
905 {
906 loff_t ret = 0;
907
908 spin_lock(&file->f_lock);
909 switch (orig) {
910 case SEEK_CUR:
> 911 offset += file->f_pos;
912 case SEEK_SET:
913 /* to avoid userland mistaking f_pos=-9 as -EBADF=-9 */
914 if ((unsigned long long)offset >= -MAX_ERRNO)
915 ret = -EOVERFLOW;
916 break;
917 default:
918 ret = -EINVAL;
919 }
920 if (!ret) {
921 if (offset < 0 && !(unsigned_offsets(file))) {
922 ret = -EINVAL;
923 } else {
924 file->f_pos = offset;
925 ret = file->f_pos;
926 force_successful_syscall_return();
927 }
928 }
929
930 spin_unlock(&file->f_lock);
931 return ret;
932 }
933

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki