Hi Rasmus, Thank you for the patch! Yet something to improve: [auto build test ERROR on linus/master] [cannot apply to v5.4-rc6 next-20191105] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system. BTW, we also suggest to use '--base' option to specify the base tree in git format-patch, please see https://stackoverflow.com/a/37406982] url: https://github.com/0day-ci/linux/commits/Rasmus-Villemoes/watchdog-make-nowayout-sysfs-file-writable/20191106-032539 base: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git a99d8080aaf358d5d23581244e5da23b35e340b9 config: ia64-allmodconfig (attached as .config) compiler: ia64-linux-gcc (GCC) 7.4.0 reproduce: wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # save the attached .config to linux build tree GCC_VERSION=7.4.0 make.cross ARCH=ia64 If you fix the issue, kindly add following tag Reported-by: kbuild test robot All error/warnings (new ones prefixed by >>): In file included from include/linux/mutex.h:14:0, from include/linux/kernfs.h:12, from include/linux/sysfs.h:16, from include/linux/kobject.h:20, from include/linux/cdev.h:5, from drivers/watchdog/watchdog_dev.c:31: drivers/watchdog/watchdog_dev.c: In function 'nowayout_store': >> arch/ia64/include/asm/current.h:16:19: error: expected identifier or '(' before 'struct' #define current ((struct task_struct *) ia64_getreg(_IA64_REG_TP)) ^ drivers/watchdog/watchdog_dev.c:460:22: note: in expansion of macro 'current' unsigned int value, current; ^~~~~~~ In file included from arch/ia64/include/asm/gcc_intrin.h:10:0, from arch/ia64/include/uapi/asm/intrinsics.h:20, from arch/ia64/include/asm/intrinsics.h:11, from arch/ia64/include/asm/bitops.h:19, from include/linux/bitops.h:26, from include/linux/kernel.h:12, from include/linux/list.h:9, from include/linux/kobject.h:19, from include/linux/cdev.h:5, from drivers/watchdog/watchdog_dev.c:31: >> arch/ia64/include/uapi/asm/gcc_intrin.h:64:1: error: expected ')' before '(' token ({ \ ^ >> arch/ia64/include/uapi/asm/intrinsics.h:92:36: note: in expansion of macro 'ia64_native_getreg' #define IA64_INTRINSIC_MACRO(name) ia64_native_ ## name ^~~~~~~~~~~~ >> arch/ia64/include/uapi/asm/intrinsics.h:113:23: note: in expansion of macro 'IA64_INTRINSIC_MACRO' #define ia64_getreg IA64_INTRINSIC_MACRO(getreg) ^~~~~~~~~~~~~~~~~~~~ >> arch/ia64/include/asm/current.h:16:41: note: in expansion of macro 'ia64_getreg' #define current ((struct task_struct *) ia64_getreg(_IA64_REG_TP)) ^~~~~~~~~~~ drivers/watchdog/watchdog_dev.c:460:22: note: in expansion of macro 'current' unsigned int value, current; ^~~~~~~ drivers/watchdog/watchdog_dev.c:468:10: error: lvalue required as left operand of assignment current = !!test_bit(WDOG_NO_WAY_OUT, &wdd->status); ^ -- In file included from include/linux/mutex.h:14:0, from include/linux/kernfs.h:12, from include/linux/sysfs.h:16, from include/linux/kobject.h:20, from include/linux/cdev.h:5, from drivers//watchdog/watchdog_dev.c:31: drivers//watchdog/watchdog_dev.c: In function 'nowayout_store': >> arch/ia64/include/asm/current.h:16:19: error: expected identifier or '(' before 'struct' #define current ((struct task_struct *) ia64_getreg(_IA64_REG_TP)) ^ drivers//watchdog/watchdog_dev.c:460:22: note: in expansion of macro 'current' unsigned int value, current; ^~~~~~~ In file included from arch/ia64/include/asm/gcc_intrin.h:10:0, from arch/ia64/include/uapi/asm/intrinsics.h:20, from arch/ia64/include/asm/intrinsics.h:11, from arch/ia64/include/asm/bitops.h:19, from include/linux/bitops.h:26, from include/linux/kernel.h:12, from include/linux/list.h:9, from include/linux/kobject.h:19, from include/linux/cdev.h:5, from drivers//watchdog/watchdog_dev.c:31: >> arch/ia64/include/uapi/asm/gcc_intrin.h:64:1: error: expected ')' before '(' token ({ \ ^ >> arch/ia64/include/uapi/asm/intrinsics.h:92:36: note: in expansion of macro 'ia64_native_getreg' #define IA64_INTRINSIC_MACRO(name) ia64_native_ ## name ^~~~~~~~~~~~ >> arch/ia64/include/uapi/asm/intrinsics.h:113:23: note: in expansion of macro 'IA64_INTRINSIC_MACRO' #define ia64_getreg IA64_INTRINSIC_MACRO(getreg) ^~~~~~~~~~~~~~~~~~~~ >> arch/ia64/include/asm/current.h:16:41: note: in expansion of macro 'ia64_getreg' #define current ((struct task_struct *) ia64_getreg(_IA64_REG_TP)) ^~~~~~~~~~~ drivers//watchdog/watchdog_dev.c:460:22: note: in expansion of macro 'current' unsigned int value, current; ^~~~~~~ drivers//watchdog/watchdog_dev.c:468:10: error: lvalue required as left operand of assignment current = !!test_bit(WDOG_NO_WAY_OUT, &wdd->status); ^ vim +16 arch/ia64/include/asm/current.h ^1da177e4c3f41 include/asm-ia64/current.h Linus Torvalds 2005-04-16 11 ^1da177e4c3f41 include/asm-ia64/current.h Linus Torvalds 2005-04-16 12 /* ^1da177e4c3f41 include/asm-ia64/current.h Linus Torvalds 2005-04-16 13 * In kernel mode, thread pointer (r13) is used to point to the current task ^1da177e4c3f41 include/asm-ia64/current.h Linus Torvalds 2005-04-16 14 * structure. ^1da177e4c3f41 include/asm-ia64/current.h Linus Torvalds 2005-04-16 15 */ ^1da177e4c3f41 include/asm-ia64/current.h Linus Torvalds 2005-04-16 @16 #define current ((struct task_struct *) ia64_getreg(_IA64_REG_TP)) ^1da177e4c3f41 include/asm-ia64/current.h Linus Torvalds 2005-04-16 17 :::::: The code at line 16 was first introduced by commit :::::: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Linux-2.6.12-rc2 :::::: TO: Linus Torvalds :::::: CC: Linus Torvalds --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation