Hi Rusty, After merging the modules tree, today's linux-next build (x86_64 allmodconfig) failed like this: In file included from include/linux/thread_info.h:11:0, from arch/x86/include/asm/preempt.h:6, from include/linux/preempt.h:18, from include/linux/spinlock.h:50, from include/linux/wait.h:8, from include/linux/fs.h:6, from drivers/staging/speakup/spk_types.h:9, from drivers/staging/speakup/spk_priv.h:27, from drivers/staging/speakup/speakup_acntsa.c:26: include/linux/bug.h:33:45: error: negative width in bit-field '' #define BUILD_BUG_ON_ZERO(e) (sizeof(struct { int:-!!(e); })) ^ include/linux/kernel.h:848:3: note: in expansion of macro 'BUILD_BUG_ON_ZERO' BUILD_BUG_ON_ZERO((perms) > 0777) + \ ^ include/linux/sysfs.h:75:12: note: in expansion of macro 'VERIFY_OCTAL_PERMISSIONS' .mode = VERIFY_OCTAL_PERMISSIONS(_mode) }, \ ^ drivers/staging/speakup/speakup_acntsa.c:50:2: note: in expansion of macro '__ATTR' __ATTR(caps_start, USER_RW, spk_var_show, spk_var_store); ^ And many more ... Exposed by commit 58f86cc89c33 ("VERIFY_OCTAL_PERMISSIONS: stricter checking for sysfs perms"). drivers/staging/speakup/speakup.h has #define USER_RW (S_IFREG|S_IRUGO|S_IWUGO) and others which are used in many attribute definitions (and only in those definitions). So I added this fixup patch (Rusty you might like to add this to your tree): From: Stephen Rothwell Date: Tue, 25 Mar 2014 13:54:38 +1100 Subject: [PATCH] VERIFY_OCTAL_PERMISSIONS: fix up for staging/speakup Signed-off-by: Stephen Rothwell --- drivers/staging/speakup/speakup.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/speakup/speakup.h b/drivers/staging/speakup/speakup.h index 0126f714821a..578824a9829d 100644 --- a/drivers/staging/speakup/speakup.h +++ b/drivers/staging/speakup/speakup.h @@ -10,10 +10,10 @@ #define MAX_DESC_LEN 72 /* proc permissions */ -#define USER_R (S_IFREG|S_IRUGO) -#define USER_W (S_IFREG|S_IWUGO) -#define USER_RW (S_IFREG|S_IRUGO|S_IWUGO) -#define ROOT_W (S_IFREG|S_IRUGO|S_IWUSR) +#define USER_R S_IRUGO +#define USER_W S_IWUGO +#define USER_RW (S_IRUGO|S_IWUGO) +#define ROOT_W (S_IRUGO|S_IWUSR) #define TOGGLE_0 .u.n = {NULL, 0, 0, 1, 0, 0, NULL } #define TOGGLE_1 .u.n = {NULL, 1, 0, 1, 0, 0, NULL } -- 1.9.1 -- Cheers, Stephen Rothwell sfr@canb.auug.org.au