Re: [PATCH] percpu_counter: return precise count from __percpu_counter_compare()

kbuild test robot
2015-10-02T18:07:11Z

[-- Attachment #1: Type: text/plain, Size: 12503 bytes --]

Hi Waiman,

[auto build test results on v4.3-rc3 -- if it's inappropriate base, please ignore]

config: i386-alldefconfig (attached as .config)
reproduce:
# save the attached .config to linux build tree
make ARCH=i386

All error/warnings (new ones prefixed by >>):

In file included from include/linux/proportions.h:12:0,
from include/linux/sched.h:43,
from include/linux/uaccess.h:4,
from include/linux/crypto.h:26,
from arch/x86/kernel/asm-offsets.c:8:
include/linux/percpu_counter.h: In function '__percpu_counter_compare':
include/linux/percpu_counter.h:126:30: error: expected declaration specifiers before ')' token
s32 batch, s64 *pcnt))
^
include/linux/percpu_counter.h:133:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
{
^
include/linux/percpu_counter.h:141:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
{
^
include/linux/percpu_counter.h:146:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
{
^
include/linux/percpu_counter.h:155:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
{
^
include/linux/percpu_counter.h:160:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
{
^
include/linux/percpu_counter.h:165:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
{
^
include/linux/percpu_counter.h:170:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
{
^
include/linux/percpu_counter.h:177:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
{
^
include/linux/percpu_counter.h:182:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
{
^
include/linux/percpu_counter.h:187:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
{
^
In file included from include/linux/sched.h:43:0,
from include/linux/uaccess.h:4,
from include/linux/crypto.h:26,
from arch/x86/kernel/asm-offsets.c:8:
include/linux/proportions.h:17:1: warning: empty declaration
struct prop_global {
^
include/linux/proportions.h:38:1: warning: empty declaration
struct prop_descriptor {
^
include/linux/proportions.h:51:1: warning: empty declaration
struct prop_local_percpu {
^
include/linux/proportions.h:73:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
{
^
include/linux/proportions.h:102:1: warning: empty declaration
struct prop_local_single {
^
include/linux/proportions.h:129:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
{
^
In file included from include/linux/seccomp.h:4:0,
from include/linux/sched.h:44,
from include/linux/uaccess.h:4,
from include/linux/crypto.h:26,
from arch/x86/kernel/asm-offsets.c:8:
include/uapi/linux/seccomp.h:47:1: warning: empty declaration
struct seccomp_data {
^
In file included from include/linux/sched.h:44:0,
from include/linux/uaccess.h:4,
from include/linux/crypto.h:26,
from arch/x86/kernel/asm-offsets.c:8:
include/linux/seccomp.h:13:1: warning: empty declaration
struct seccomp_filter;
^
include/linux/seccomp.h:25:1: warning: empty declaration
struct seccomp {
^
>> include/linux/seccomp.h:31:12: error: storage class specified for parameter '__secure_computing'
extern int __secure_computing(void);
^
include/linux/seccomp.h:33:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
{
^
>> include/linux/seccomp.h:42:12: error: storage class specified for parameter 'seccomp_phase1'
extern u32 seccomp_phase1(struct seccomp_data *sd);
^
>> include/linux/seccomp.h:48:13: error: storage class specified for parameter 'prctl_get_seccomp'
extern long prctl_get_seccomp(void);
^
>> include/linux/seccomp.h:49:13: error: storage class specified for parameter 'prctl_set_seccomp'
extern long prctl_set_seccomp(unsigned long, char __user *);
^
include/linux/seccomp.h:52:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
{
^
include/linux/seccomp.h:90:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
{
^
include/linux/seccomp.h:94:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
{
^
In file included from include/linux/sched.h:46:0,
from include/linux/uaccess.h:4,
from include/linux/crypto.h:26,
from arch/x86/kernel/asm-offsets.c:8:
include/linux/rculist.h:31:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
{
^
include/linux/rculist.h:51:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
{
^
include/linux/rculist.h:79:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
{
^
include/linux/rculist.h:101:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
{
^
include/linux/rculist.h:130:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
{
^
include/linux/rculist.h:156:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
{
^
include/linux/rculist.h:173:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
{
^
include/linux/rculist.h:201:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
{
^
include/linux/rculist.h:344:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
{
^
include/linux/rculist.h:358:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
{
^
include/linux/rculist.h:397:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
{
^
include/linux/rculist.h:427:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
{
^
include/linux/rculist.h:454:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
{
^
In file included from include/linux/sched.h:47:0,
from include/linux/uaccess.h:4,
from include/linux/crypto.h:26,
from arch/x86/kernel/asm-offsets.c:8:
include/linux/rtmutex.h:19:12: error: storage class specified for parameter 'max_lock_depth'
extern int max_lock_depth; /* for sysctl */
^
include/linux/rtmutex.h:29:1: warning: empty declaration
struct rt_mutex {
^
include/linux/rtmutex.h:42:1: warning: empty declaration
struct rt_mutex_waiter;
^
include/linux/rtmutex.h:43:1: warning: empty declaration
struct hrtimer_sleeper;
^
include/linux/rtmutex.h:52:2: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
{
^
include/linux/rtmutex.h:85:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
{
^
include/linux/rtmutex.h:89:13: error: storage class specified for parameter '__rt_mutex_init'
extern void __rt_mutex_init(struct rt_mutex *lock, const char *name);
^
include/linux/rtmutex.h:90:13: error: storage class specified for parameter 'rt_mutex_destroy'
extern void rt_mutex_destroy(struct rt_mutex *lock);
^
include/linux/rtmutex.h:92:13: error: storage class specified for parameter 'rt_mutex_lock'
extern void rt_mutex_lock(struct rt_mutex *lock);
^
include/linux/rtmutex.h:93:12: error: storage class specified for parameter 'rt_mutex_lock_interruptible'
extern int rt_mutex_lock_interruptible(struct rt_mutex *lock);
^
include/linux/rtmutex.h:94:12: error: storage class specified for parameter 'rt_mutex_timed_lock'
extern int rt_mutex_timed_lock(struct rt_mutex *lock,
^
include/linux/rtmutex.h:97:12: error: storage class specified for parameter 'rt_mutex_trylock'
extern int rt_mutex_trylock(struct rt_mutex *lock);
^
include/linux/rtmutex.h:99:13: error: storage class specified for parameter 'rt_mutex_unlock'
extern void rt_mutex_unlock(struct rt_mutex *lock);
^
In file included from include/linux/resource.h:4:0,
from include/linux/sched.h:51,
from include/linux/uaccess.h:4,

vim +/__secure_computing +31 include/linux/seccomp.h

c2e1f2e30 Kees Cook 2014-06-05 7
^1da177e4 Linus Torvalds 2005-04-16 8 #ifdef CONFIG_SECCOMP
^1da177e4 Linus Torvalds 2005-04-16 9
^1da177e4 Linus Torvalds 2005-04-16 10 #include <linux/thread_info.h>
^1da177e4 Linus Torvalds 2005-04-16 11 #include <asm/seccomp.h>
^1da177e4 Linus Torvalds 2005-04-16 12
e2cfabdfd Will Drewry 2012-04-12 @13 struct seccomp_filter;
e2cfabdfd Will Drewry 2012-04-12 14 /**
e2cfabdfd Will Drewry 2012-04-12 15 * struct seccomp - the state of a seccomp'ed process
e2cfabdfd Will Drewry 2012-04-12 16 *
e2cfabdfd Will Drewry 2012-04-12 17 * @mode: indicates one of the valid values above for controlled
e2cfabdfd Will Drewry 2012-04-12 18 * system calls available to a process.
dbd952127 Kees Cook 2014-06-27 19 * @filter: must always point to a valid seccomp-filter or NULL as it is
dbd952127 Kees Cook 2014-06-27 20 * accessed without locking during system call entry.
e2cfabdfd Will Drewry 2012-04-12 21 *
e2cfabdfd Will Drewry 2012-04-12 22 * @filter must only be accessed from the context of current as there
dbd952127 Kees Cook 2014-06-27 23 * is no read locking.
e2cfabdfd Will Drewry 2012-04-12 24 */
932ecebb0 Will Drewry 2012-04-12 @25 struct seccomp {
932ecebb0 Will Drewry 2012-04-12 26 int mode;
e2cfabdfd Will Drewry 2012-04-12 27 struct seccomp_filter *filter;
932ecebb0 Will Drewry 2012-04-12 28 };
^1da177e4 Linus Torvalds 2005-04-16 29
a4412fc94 Andy Lutomirski 2014-07-21 30 #ifdef CONFIG_HAVE_ARCH_SECCOMP_FILTER
a4412fc94 Andy Lutomirski 2014-07-21 @31 extern int __secure_computing(void);
a4412fc94 Andy Lutomirski 2014-07-21 32 static inline int secure_computing(void)
^1da177e4 Linus Torvalds 2005-04-16 @33 {
^1da177e4 Linus Torvalds 2005-04-16 34 if (unlikely(test_thread_flag(TIF_SECCOMP)))
a4412fc94 Andy Lutomirski 2014-07-21 35 return __secure_computing();
acf3b2c71 Will Drewry 2012-04-12 36 return 0;
^1da177e4 Linus Torvalds 2005-04-16 37 }
13aa72f0f Andy Lutomirski 2014-07-21 38
13aa72f0f Andy Lutomirski 2014-07-21 39 #define SECCOMP_PHASE1_OK 0
13aa72f0f Andy Lutomirski 2014-07-21 40 #define SECCOMP_PHASE1_SKIP 1
13aa72f0f Andy Lutomirski 2014-07-21 41
d39bd00de Andy Lutomirski 2014-07-21 @42 extern u32 seccomp_phase1(struct seccomp_data *sd);
13aa72f0f Andy Lutomirski 2014-07-21 43 int seccomp_phase2(u32 phase1_result);
a4412fc94 Andy Lutomirski 2014-07-21 44 #else
a4412fc94 Andy Lutomirski 2014-07-21 45 extern void secure_computing_strict(int this_syscall);
a4412fc94 Andy Lutomirski 2014-07-21 46 #endif
e4da89d02 Will Drewry 2012-04-17 47
1d9d02fee Andrea Arcangeli 2007-07-15 @48 extern long prctl_get_seccomp(void);
e2cfabdfd Will Drewry 2012-04-12 @49 extern long prctl_set_seccomp(unsigned long, char __user *);
1d9d02fee Andrea Arcangeli 2007-07-15 50
932ecebb0 Will Drewry 2012-04-12 51 static inline int seccomp_mode(struct seccomp *s)
5cec93c21 Andy Lutomirski 2011-06-05 52 {

:::::: The code at line 31 was first introduced by commit
:::::: a4412fc9486ec85686c6c7929e7e829f62ae377e seccomp,x86,arm,mips,s390: Remove nr parameter from secure_computing

:::::: TO: Andy Lutomirski <luto@amacapital.net>
:::::: CC: Kees Cook <keescook@chromium.org>

---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/octet-stream, Size: 9474 bytes --]

[-- Attachment #3: Type: text/plain, Size: 121 bytes --]