Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

audit: move the compat_xxx_class[] extern declarations to audit_arch.h

The comapt_xxx_class symbols aren't declared in anything that
lib/comapt_audit.c is including (arm64 build) which is causing
the following sparse warnings:

lib/compat_audit.c:7:10: warning: symbol 'compat_dir_class'
was not declared. Should it be static?
lib/compat_audit.c:12:10: warning: symbol 'compat_read_class'
was not declared. Should it be static?
lib/compat_audit.c:17:10: warning: symbol 'compat_write_class'
was not declared. Should it be static?
lib/compat_audit.c:22:10: warning: symbol 'compat_chattr_class'
was not declared. Should it be static?
lib/compat_audit.c:27:10: warning: symbol 'compat_signal_class'
was not declared. Should it be static?

Trying to fix this by chaning compat_audit.c to inclde <linux/audit.h>
does not work on arm64 due to compile errors with the extra includes
that changing this header makes. The simpler thing would be just to
move the definitons of these symbols out of <linux/audit.h> into
<linux/audit_arch.h> which is included.

Fixes: 4b58841149dca ("audit: Add generic compat syscall support")
Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk>
[PM: rewrite subject line, fixed line length in description]
Signed-off-by: Paul Moore <paul@paul-moore.com>

authored by

Ben Dooks and committed by
Paul Moore
76489955 bcb90a28

+7 -6
-6
include/linux/audit.h
··· 128 128 extern int __init audit_register_class(int class, unsigned *list); 129 129 extern int audit_classify_syscall(int abi, unsigned syscall); 130 130 extern int audit_classify_arch(int arch); 131 - /* only for compat system calls */ 132 - extern unsigned compat_write_class[]; 133 - extern unsigned compat_read_class[]; 134 - extern unsigned compat_dir_class[]; 135 - extern unsigned compat_chattr_class[]; 136 - extern unsigned compat_signal_class[]; 137 131 138 132 /* audit_names->type values */ 139 133 #define AUDIT_TYPE_UNKNOWN 0 /* we don't know yet */
+7
include/linux/audit_arch.h
··· 23 23 24 24 extern int audit_classify_compat_syscall(int abi, unsigned syscall); 25 25 26 + /* only for compat system calls */ 27 + extern unsigned compat_write_class[]; 28 + extern unsigned compat_read_class[]; 29 + extern unsigned compat_dir_class[]; 30 + extern unsigned compat_chattr_class[]; 31 + extern unsigned compat_signal_class[]; 32 + 26 33 #endif