Re: [PATCH v1 6/8] LSM: lsm_self_attr syscall for LSM self attributes

From: kernel test robot
Date: Tue Oct 25 2022 - 17:50:40 EST


Hi Casey,

I love your patch! Perhaps something to improve:

[auto build test WARNING on kees/for-next/hardening]
[also build test WARNING on pcmoore-selinux/next acme/perf/core linus/master v6.1-rc2 next-20221025]
[cannot apply to tip/perf/core]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url: https://github.com/intel-lab-lkp/linux/commits/Casey-Schaufler/LSM-Identify-modules-by-more-than-name/20221026-034541
base: https://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git for-next/hardening
patch link: https://lore.kernel.org/r/20221025184519.13231-7-casey%40schaufler-ca.com
patch subject: [PATCH v1 6/8] LSM: lsm_self_attr syscall for LSM self attributes
config: ia64-allyesconfig (attached as .config)
compiler: ia64-linux-gcc (GCC) 12.1.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/intel-lab-lkp/linux/commit/c9d17b230f202246a9451fbdefac8c1720eb68a6
git remote add linux-review https://github.com/intel-lab-lkp/linux
git fetch --no-tags linux-review Casey-Schaufler/LSM-Identify-modules-by-more-than-name/20221026-034541
git checkout c9d17b230f202246a9451fbdefac8c1720eb68a6
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=ia64 SHELL=/bin/bash kernel/

If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@xxxxxxxxx>

All warnings (new ones prefixed by >>):

In file included from kernel/fork.c:55:
>> include/linux/syscalls.h:1060:42: warning: 'struct lsm_ctx' declared inside parameter list will not be visible outside of this definition or declaration
1060 | asmlinkage long sys_lsm_self_attr(struct lsm_ctx *ctx, size_t *size, int flags);
| ^~~~~~~
kernel/fork.c:162:13: warning: no previous prototype for 'arch_release_task_struct' [-Wmissing-prototypes]
162 | void __weak arch_release_task_struct(struct task_struct *tsk)
| ^~~~~~~~~~~~~~~~~~~~~~~~
kernel/fork.c:849:20: warning: no previous prototype for 'arch_task_cache_init' [-Wmissing-prototypes]
849 | void __init __weak arch_task_cache_init(void) { }
| ^~~~~~~~~~~~~~~~~~~~
kernel/fork.c:944:12: warning: no previous prototype for 'arch_dup_task_struct' [-Wmissing-prototypes]
944 | int __weak arch_dup_task_struct(struct task_struct *dst,
| ^~~~~~~~~~~~~~~~~~~~
--
In file included from kernel/exec_domain.c:19:
>> include/linux/syscalls.h:1060:42: warning: 'struct lsm_ctx' declared inside parameter list will not be visible outside of this definition or declaration
1060 | asmlinkage long sys_lsm_self_attr(struct lsm_ctx *ctx, size_t *size, int flags);
| ^~~~~~~
--
In file included from kernel/exit.c:42:
>> include/linux/syscalls.h:1060:42: warning: 'struct lsm_ctx' declared inside parameter list will not be visible outside of this definition or declaration
1060 | asmlinkage long sys_lsm_self_attr(struct lsm_ctx *ctx, size_t *size, int flags);
| ^~~~~~~
kernel/exit.c:1839:13: warning: no previous prototype for 'abort' [-Wmissing-prototypes]
1839 | __weak void abort(void)
| ^~~~~
--
In file included from kernel/audit.c:44:
>> include/linux/syscalls.h:1060:42: warning: 'struct lsm_ctx' declared inside parameter list will not be visible outside of this definition or declaration
1060 | asmlinkage long sys_lsm_self_attr(struct lsm_ctx *ctx, size_t *size, int flags);
| ^~~~~~~
kernel/audit.c: In function 'audit_log_vformat':
kernel/audit.c:1963:9: warning: function 'audit_log_vformat' might be a candidate for 'gnu_printf' format attribute [-Wsuggest-attribute=format]
1963 | len = vsnprintf(skb_tail_pointer(skb), avail, fmt, args);
| ^~~
kernel/audit.c:1972:17: warning: function 'audit_log_vformat' might be a candidate for 'gnu_printf' format attribute [-Wsuggest-attribute=format]
1972 | len = vsnprintf(skb_tail_pointer(skb), avail, fmt, args2);
| ^~~
--
In file included from include/linux/syscalls_api.h:1,
from kernel/sched/sched.h:61,
from kernel/sched/fair.c:55:
>> include/linux/syscalls.h:1060:42: warning: 'struct lsm_ctx' declared inside parameter list will not be visible outside of this definition or declaration
1060 | asmlinkage long sys_lsm_self_attr(struct lsm_ctx *ctx, size_t *size, int flags);
| ^~~~~~~
kernel/sched/fair.c:11509:6: warning: no previous prototype for 'task_vruntime_update' [-Wmissing-prototypes]
11509 | void task_vruntime_update(struct rq *rq, struct task_struct *p, bool in_fi)
| ^~~~~~~~~~~~~~~~~~~~
--
In file included from kernel/time/hrtimer.c:30:
>> include/linux/syscalls.h:1060:42: warning: 'struct lsm_ctx' declared inside parameter list will not be visible outside of this definition or declaration
1060 | asmlinkage long sys_lsm_self_attr(struct lsm_ctx *ctx, size_t *size, int flags);
| ^~~~~~~
kernel/time/hrtimer.c:120:35: warning: initialized field overwritten [-Woverride-init]
120 | [CLOCK_REALTIME] = HRTIMER_BASE_REALTIME,
| ^~~~~~~~~~~~~~~~~~~~~
kernel/time/hrtimer.c:120:35: note: (near initialization for 'hrtimer_clock_to_base_table[0]')
kernel/time/hrtimer.c:121:35: warning: initialized field overwritten [-Woverride-init]
121 | [CLOCK_MONOTONIC] = HRTIMER_BASE_MONOTONIC,
| ^~~~~~~~~~~~~~~~~~~~~~
kernel/time/hrtimer.c:121:35: note: (near initialization for 'hrtimer_clock_to_base_table[1]')
kernel/time/hrtimer.c:122:35: warning: initialized field overwritten [-Woverride-init]
122 | [CLOCK_BOOTTIME] = HRTIMER_BASE_BOOTTIME,
| ^~~~~~~~~~~~~~~~~~~~~
kernel/time/hrtimer.c:122:35: note: (near initialization for 'hrtimer_clock_to_base_table[7]')
kernel/time/hrtimer.c:123:35: warning: initialized field overwritten [-Woverride-init]
123 | [CLOCK_TAI] = HRTIMER_BASE_TAI,
| ^~~~~~~~~~~~~~~~
kernel/time/hrtimer.c:123:35: note: (near initialization for 'hrtimer_clock_to_base_table[11]')
kernel/time/hrtimer.c: In function '__run_hrtimer':
kernel/time/hrtimer.c:1648:14: warning: variable 'expires_in_hardirq' set but not used [-Wunused-but-set-variable]
1648 | bool expires_in_hardirq;
| ^~~~~~~~~~~~~~~~~~


vim +1060 include/linux/syscalls.h

904
905 /* mm/, CONFIG_MMU only */
906 asmlinkage long sys_swapon(const char __user *specialfile, int swap_flags);
907 asmlinkage long sys_swapoff(const char __user *specialfile);
908 asmlinkage long sys_mprotect(unsigned long start, size_t len,
909 unsigned long prot);
910 asmlinkage long sys_msync(unsigned long start, size_t len, int flags);
911 asmlinkage long sys_mlock(unsigned long start, size_t len);
912 asmlinkage long sys_munlock(unsigned long start, size_t len);
913 asmlinkage long sys_mlockall(int flags);
914 asmlinkage long sys_munlockall(void);
915 asmlinkage long sys_mincore(unsigned long start, size_t len,
916 unsigned char __user * vec);
917 asmlinkage long sys_madvise(unsigned long start, size_t len, int behavior);
918 asmlinkage long sys_process_madvise(int pidfd, const struct iovec __user *vec,
919 size_t vlen, int behavior, unsigned int flags);
920 asmlinkage long sys_process_mrelease(int pidfd, unsigned int flags);
921 asmlinkage long sys_remap_file_pages(unsigned long start, unsigned long size,
922 unsigned long prot, unsigned long pgoff,
923 unsigned long flags);
924 asmlinkage long sys_mbind(unsigned long start, unsigned long len,
925 unsigned long mode,
926 const unsigned long __user *nmask,
927 unsigned long maxnode,
928 unsigned flags);
929 asmlinkage long sys_get_mempolicy(int __user *policy,
930 unsigned long __user *nmask,
931 unsigned long maxnode,
932 unsigned long addr, unsigned long flags);
933 asmlinkage long sys_set_mempolicy(int mode, const unsigned long __user *nmask,
934 unsigned long maxnode);
935 asmlinkage long sys_migrate_pages(pid_t pid, unsigned long maxnode,
936 const unsigned long __user *from,
937 const unsigned long __user *to);
938 asmlinkage long sys_move_pages(pid_t pid, unsigned long nr_pages,
939 const void __user * __user *pages,
940 const int __user *nodes,
941 int __user *status,
942 int flags);
943
944 asmlinkage long sys_rt_tgsigqueueinfo(pid_t tgid, pid_t pid, int sig,
945 siginfo_t __user *uinfo);
946 asmlinkage long sys_perf_event_open(
947 struct perf_event_attr __user *attr_uptr,
948 pid_t pid, int cpu, int group_fd, unsigned long flags);
949 asmlinkage long sys_accept4(int, struct sockaddr __user *, int __user *, int);
950 asmlinkage long sys_recvmmsg(int fd, struct mmsghdr __user *msg,
951 unsigned int vlen, unsigned flags,
952 struct __kernel_timespec __user *timeout);
953 asmlinkage long sys_recvmmsg_time32(int fd, struct mmsghdr __user *msg,
954 unsigned int vlen, unsigned flags,
955 struct old_timespec32 __user *timeout);
956
957 asmlinkage long sys_wait4(pid_t pid, int __user *stat_addr,
958 int options, struct rusage __user *ru);
959 asmlinkage long sys_prlimit64(pid_t pid, unsigned int resource,
960 const struct rlimit64 __user *new_rlim,
961 struct rlimit64 __user *old_rlim);
962 asmlinkage long sys_fanotify_init(unsigned int flags, unsigned int event_f_flags);
963 asmlinkage long sys_fanotify_mark(int fanotify_fd, unsigned int flags,
964 u64 mask, int fd,
965 const char __user *pathname);
966 asmlinkage long sys_name_to_handle_at(int dfd, const char __user *name,
967 struct file_handle __user *handle,
968 int __user *mnt_id, int flag);
969 asmlinkage long sys_open_by_handle_at(int mountdirfd,
970 struct file_handle __user *handle,
971 int flags);
972 asmlinkage long sys_clock_adjtime(clockid_t which_clock,
973 struct __kernel_timex __user *tx);
974 asmlinkage long sys_clock_adjtime32(clockid_t which_clock,
975 struct old_timex32 __user *tx);
976 asmlinkage long sys_syncfs(int fd);
977 asmlinkage long sys_setns(int fd, int nstype);
978 asmlinkage long sys_pidfd_open(pid_t pid, unsigned int flags);
979 asmlinkage long sys_sendmmsg(int fd, struct mmsghdr __user *msg,
980 unsigned int vlen, unsigned flags);
981 asmlinkage long sys_process_vm_readv(pid_t pid,
982 const struct iovec __user *lvec,
983 unsigned long liovcnt,
984 const struct iovec __user *rvec,
985 unsigned long riovcnt,
986 unsigned long flags);
987 asmlinkage long sys_process_vm_writev(pid_t pid,
988 const struct iovec __user *lvec,
989 unsigned long liovcnt,
990 const struct iovec __user *rvec,
991 unsigned long riovcnt,
992 unsigned long flags);
993 asmlinkage long sys_kcmp(pid_t pid1, pid_t pid2, int type,
994 unsigned long idx1, unsigned long idx2);
995 asmlinkage long sys_finit_module(int fd, const char __user *uargs, int flags);
996 asmlinkage long sys_sched_setattr(pid_t pid,
997 struct sched_attr __user *attr,
998 unsigned int flags);
999 asmlinkage long sys_sched_getattr(pid_t pid,
1000 struct sched_attr __user *attr,
1001 unsigned int size,
1002 unsigned int flags);
1003 asmlinkage long sys_renameat2(int olddfd, const char __user *oldname,
1004 int newdfd, const char __user *newname,
1005 unsigned int flags);
1006 asmlinkage long sys_seccomp(unsigned int op, unsigned int flags,
1007 void __user *uargs);
1008 asmlinkage long sys_getrandom(char __user *buf, size_t count,
1009 unsigned int flags);
1010 asmlinkage long sys_memfd_create(const char __user *uname_ptr, unsigned int flags);
1011 asmlinkage long sys_bpf(int cmd, union bpf_attr *attr, unsigned int size);
1012 asmlinkage long sys_execveat(int dfd, const char __user *filename,
1013 const char __user *const __user *argv,
1014 const char __user *const __user *envp, int flags);
1015 asmlinkage long sys_userfaultfd(int flags);
1016 asmlinkage long sys_membarrier(int cmd, unsigned int flags, int cpu_id);
1017 asmlinkage long sys_mlock2(unsigned long start, size_t len, int flags);
1018 asmlinkage long sys_copy_file_range(int fd_in, loff_t __user *off_in,
1019 int fd_out, loff_t __user *off_out,
1020 size_t len, unsigned int flags);
1021 asmlinkage long sys_preadv2(unsigned long fd, const struct iovec __user *vec,
1022 unsigned long vlen, unsigned long pos_l, unsigned long pos_h,
1023 rwf_t flags);
1024 asmlinkage long sys_pwritev2(unsigned long fd, const struct iovec __user *vec,
1025 unsigned long vlen, unsigned long pos_l, unsigned long pos_h,
1026 rwf_t flags);
1027 asmlinkage long sys_pkey_mprotect(unsigned long start, size_t len,
1028 unsigned long prot, int pkey);
1029 asmlinkage long sys_pkey_alloc(unsigned long flags, unsigned long init_val);
1030 asmlinkage long sys_pkey_free(int pkey);
1031 asmlinkage long sys_statx(int dfd, const char __user *path, unsigned flags,
1032 unsigned mask, struct statx __user *buffer);
1033 asmlinkage long sys_rseq(struct rseq __user *rseq, uint32_t rseq_len,
1034 int flags, uint32_t sig);
1035 asmlinkage long sys_open_tree(int dfd, const char __user *path, unsigned flags);
1036 asmlinkage long sys_move_mount(int from_dfd, const char __user *from_path,
1037 int to_dfd, const char __user *to_path,
1038 unsigned int ms_flags);
1039 asmlinkage long sys_mount_setattr(int dfd, const char __user *path,
1040 unsigned int flags,
1041 struct mount_attr __user *uattr, size_t usize);
1042 asmlinkage long sys_fsopen(const char __user *fs_name, unsigned int flags);
1043 asmlinkage long sys_fsconfig(int fs_fd, unsigned int cmd, const char __user *key,
1044 const void __user *value, int aux);
1045 asmlinkage long sys_fsmount(int fs_fd, unsigned int flags, unsigned int ms_flags);
1046 asmlinkage long sys_fspick(int dfd, const char __user *path, unsigned int flags);
1047 asmlinkage long sys_pidfd_send_signal(int pidfd, int sig,
1048 siginfo_t __user *info,
1049 unsigned int flags);
1050 asmlinkage long sys_pidfd_getfd(int pidfd, int fd, unsigned int flags);
1051 asmlinkage long sys_landlock_create_ruleset(const struct landlock_ruleset_attr __user *attr,
1052 size_t size, __u32 flags);
1053 asmlinkage long sys_landlock_add_rule(int ruleset_fd, enum landlock_rule_type rule_type,
1054 const void __user *rule_attr, __u32 flags);
1055 asmlinkage long sys_landlock_restrict_self(int ruleset_fd, __u32 flags);
1056 asmlinkage long sys_memfd_secret(unsigned int flags);
1057 asmlinkage long sys_set_mempolicy_home_node(unsigned long start, unsigned long len,
1058 unsigned long home_node,
1059 unsigned long flags);
> 1060 asmlinkage long sys_lsm_self_attr(struct lsm_ctx *ctx, size_t *size, int flags);
1061

--
0-DAY CI Kernel Test Service
https://01.org/lkp

Attachment: .config.gz
Description: application/gzip