tree: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty.git tty-testing head: 82cfd2e62b354840af6a045e084f6e9e7c49584d commit: 1997e9dfdc84c8f73d6fc318355cf9e313aba183 [23/75] serial_core: Un-ifdef sysrq SUPPORT_SYSRQ config: arm-randconfig-a001-20191219 (attached as .config) compiler: arm-linux-gnueabi-gcc (GCC) 7.5.0 reproduce: wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross git checkout 1997e9dfdc84c8f73d6fc318355cf9e313aba183 # save the attached .config to linux build tree GCC_VERSION=7.5.0 make.cross ARCH=arm 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/kernel.h:11:0, from include/linux/list.h:9, from include/linux/module.h:12, from drivers/tty/serial/21285.c:7: drivers/tty/serial/21285.c: In function 'serial21285_stop_tx': >> drivers/tty/serial/21285.c:44:41: error: subscripted value is neither array nor pointer nor vector #define tx_enabled(port) ((port)->unused[0]) ^ include/linux/compiler.h:58:52: note: in definition of macro '__trace_if_var' #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond)) ^~~~ >> drivers/tty/serial/21285.c:60:2: note: in expansion of macro 'if' if (tx_enabled(port)) { ^~ >> drivers/tty/serial/21285.c:60:6: note: in expansion of macro 'tx_enabled' if (tx_enabled(port)) { ^~~~~~~~~~ >> drivers/tty/serial/21285.c:44:41: error: subscripted value is neither array nor pointer nor vector #define tx_enabled(port) ((port)->unused[0]) ^ include/linux/compiler.h:58:61: note: in definition of macro '__trace_if_var' #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond)) ^~~~ >> drivers/tty/serial/21285.c:60:2: note: in expansion of macro 'if' if (tx_enabled(port)) { ^~ >> drivers/tty/serial/21285.c:60:6: note: in expansion of macro 'tx_enabled' if (tx_enabled(port)) { ^~~~~~~~~~ >> drivers/tty/serial/21285.c:44:41: error: subscripted value is neither array nor pointer nor vector #define tx_enabled(port) ((port)->unused[0]) ^ include/linux/compiler.h:69:3: note: in definition of macro '__trace_if_value' (cond) ? \ ^~~~ include/linux/compiler.h:56:28: note: in expansion of macro '__trace_if_var' #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) ^~~~~~~~~~~~~~ >> drivers/tty/serial/21285.c:60:2: note: in expansion of macro 'if' if (tx_enabled(port)) { ^~ >> drivers/tty/serial/21285.c:60:6: note: in expansion of macro 'tx_enabled' if (tx_enabled(port)) { ^~~~~~~~~~ >> drivers/tty/serial/21285.c:44:41: error: subscripted value is neither array nor pointer nor vector #define tx_enabled(port) ((port)->unused[0]) ^ drivers/tty/serial/21285.c:62:3: note: in expansion of macro 'tx_enabled' tx_enabled(port) = 0; ^~~~~~~~~~ In file included from include/linux/kernel.h:11:0, from include/linux/list.h:9, from include/linux/module.h:12, from drivers/tty/serial/21285.c:7: drivers/tty/serial/21285.c: In function 'serial21285_start_tx': >> drivers/tty/serial/21285.c:44:41: error: subscripted value is neither array nor pointer nor vector #define tx_enabled(port) ((port)->unused[0]) ^ include/linux/compiler.h:58:52: note: in definition of macro '__trace_if_var' #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond)) ^~~~ drivers/tty/serial/21285.c:68:2: note: in expansion of macro 'if' if (!tx_enabled(port)) { ^~ drivers/tty/serial/21285.c:68:7: note: in expansion of macro 'tx_enabled' if (!tx_enabled(port)) { ^~~~~~~~~~ >> drivers/tty/serial/21285.c:44:41: error: subscripted value is neither array nor pointer nor vector #define tx_enabled(port) ((port)->unused[0]) ^ include/linux/compiler.h:58:61: note: in definition of macro '__trace_if_var' #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond)) ^~~~ drivers/tty/serial/21285.c:68:2: note: in expansion of macro 'if' if (!tx_enabled(port)) { ^~ drivers/tty/serial/21285.c:68:7: note: in expansion of macro 'tx_enabled' if (!tx_enabled(port)) { ^~~~~~~~~~ >> drivers/tty/serial/21285.c:44:41: error: subscripted value is neither array nor pointer nor vector #define tx_enabled(port) ((port)->unused[0]) ^ include/linux/compiler.h:69:3: note: in definition of macro '__trace_if_value' (cond) ? \ ^~~~ include/linux/compiler.h:56:28: note: in expansion of macro '__trace_if_var' #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) ^~~~~~~~~~~~~~ drivers/tty/serial/21285.c:68:2: note: in expansion of macro 'if' if (!tx_enabled(port)) { ^~ drivers/tty/serial/21285.c:68:7: note: in expansion of macro 'tx_enabled' if (!tx_enabled(port)) { ^~~~~~~~~~ >> drivers/tty/serial/21285.c:44:41: error: subscripted value is neither array nor pointer nor vector #define tx_enabled(port) ((port)->unused[0]) ^ drivers/tty/serial/21285.c:70:3: note: in expansion of macro 'tx_enabled' tx_enabled(port) = 1; ^~~~~~~~~~ In file included from include/linux/kernel.h:11:0, from include/linux/list.h:9, from include/linux/module.h:12, from drivers/tty/serial/21285.c:7: drivers/tty/serial/21285.c: In function 'serial21285_stop_rx': drivers/tty/serial/21285.c:45:41: error: subscripted value is neither array nor pointer nor vector #define rx_enabled(port) ((port)->unused[1]) ^ include/linux/compiler.h:58:52: note: in definition of macro '__trace_if_var' #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond)) ^~~~ drivers/tty/serial/21285.c:76:2: note: in expansion of macro 'if' if (rx_enabled(port)) { ^~ >> drivers/tty/serial/21285.c:76:6: note: in expansion of macro 'rx_enabled' if (rx_enabled(port)) { ^~~~~~~~~~ drivers/tty/serial/21285.c:45:41: error: subscripted value is neither array nor pointer nor vector #define rx_enabled(port) ((port)->unused[1]) ^ include/linux/compiler.h:58:61: note: in definition of macro '__trace_if_var' #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond)) ^~~~ drivers/tty/serial/21285.c:76:2: note: in expansion of macro 'if' if (rx_enabled(port)) { ^~ >> drivers/tty/serial/21285.c:76:6: note: in expansion of macro 'rx_enabled' if (rx_enabled(port)) { ^~~~~~~~~~ drivers/tty/serial/21285.c:45:41: error: subscripted value is neither array nor pointer nor vector #define rx_enabled(port) ((port)->unused[1]) ^ include/linux/compiler.h:69:3: note: in definition of macro '__trace_if_value' (cond) ? \ ^~~~ include/linux/compiler.h:56:28: note: in expansion of macro '__trace_if_var' #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) ^~~~~~~~~~~~~~ drivers/tty/serial/21285.c:76:2: note: in expansion of macro 'if' if (rx_enabled(port)) { ^~ >> drivers/tty/serial/21285.c:76:6: note: in expansion of macro 'rx_enabled' if (rx_enabled(port)) { ^~~~~~~~~~ drivers/tty/serial/21285.c:45:41: error: subscripted value is neither array nor pointer nor vector #define rx_enabled(port) ((port)->unused[1]) ^ drivers/tty/serial/21285.c:78:3: note: in expansion of macro 'rx_enabled' rx_enabled(port) = 0; ^~~~~~~~~~ drivers/tty/serial/21285.c: In function 'serial21285_startup': >> drivers/tty/serial/21285.c:44:41: error: subscripted value is neither array nor pointer nor vector #define tx_enabled(port) ((port)->unused[0]) ^ drivers/tty/serial/21285.c:188:2: note: in expansion of macro 'tx_enabled' tx_enabled(port) = 1; ^~~~~~~~~~ drivers/tty/serial/21285.c:45:41: error: subscripted value is neither array nor pointer nor vector #define rx_enabled(port) ((port)->unused[1]) ^ drivers/tty/serial/21285.c:189:2: note: in expansion of macro 'rx_enabled' rx_enabled(port) = 1; ^~~~~~~~~~ vim +44 drivers/tty/serial/21285.c ^1da177e4c3f41 drivers/serial/21285.c Linus Torvalds 2005-04-16 @7 #include ^1da177e4c3f41 drivers/serial/21285.c Linus Torvalds 2005-04-16 8 #include ^1da177e4c3f41 drivers/serial/21285.c Linus Torvalds 2005-04-16 9 #include ^1da177e4c3f41 drivers/serial/21285.c Linus Torvalds 2005-04-16 10 #include ^1da177e4c3f41 drivers/serial/21285.c Linus Torvalds 2005-04-16 11 #include ^1da177e4c3f41 drivers/serial/21285.c Linus Torvalds 2005-04-16 12 #include ^1da177e4c3f41 drivers/serial/21285.c Linus Torvalds 2005-04-16 13 #include ^1da177e4c3f41 drivers/serial/21285.c Linus Torvalds 2005-04-16 14 #include ^1da177e4c3f41 drivers/serial/21285.c Linus Torvalds 2005-04-16 15 #include 997302259f386b drivers/serial/21285.c Russell King 2009-03-25 16 #include ^1da177e4c3f41 drivers/serial/21285.c Linus Torvalds 2005-04-16 17 ^1da177e4c3f41 drivers/serial/21285.c Linus Torvalds 2005-04-16 18 #include ^1da177e4c3f41 drivers/serial/21285.c Linus Torvalds 2005-04-16 19 #include 9f97da78bf0182 drivers/tty/serial/21285.c David Howells 2012-03-28 20 #include ^1da177e4c3f41 drivers/serial/21285.c Linus Torvalds 2005-04-16 21 #include a09e64fbc0094e drivers/serial/21285.c Russell King 2008-08-05 22 #include ^1da177e4c3f41 drivers/serial/21285.c Linus Torvalds 2005-04-16 23 ^1da177e4c3f41 drivers/serial/21285.c Linus Torvalds 2005-04-16 24 #define BAUD_BASE (mem_fclk_21285/64) ^1da177e4c3f41 drivers/serial/21285.c Linus Torvalds 2005-04-16 25 ^1da177e4c3f41 drivers/serial/21285.c Linus Torvalds 2005-04-16 26 #define SERIAL_21285_NAME "ttyFB" ^1da177e4c3f41 drivers/serial/21285.c Linus Torvalds 2005-04-16 27 #define SERIAL_21285_MAJOR 204 ^1da177e4c3f41 drivers/serial/21285.c Linus Torvalds 2005-04-16 28 #define SERIAL_21285_MINOR 4 ^1da177e4c3f41 drivers/serial/21285.c Linus Torvalds 2005-04-16 29 ^1da177e4c3f41 drivers/serial/21285.c Linus Torvalds 2005-04-16 30 #define RXSTAT_DUMMY_READ 0x80000000 ^1da177e4c3f41 drivers/serial/21285.c Linus Torvalds 2005-04-16 31 #define RXSTAT_FRAME (1 << 0) ^1da177e4c3f41 drivers/serial/21285.c Linus Torvalds 2005-04-16 32 #define RXSTAT_PARITY (1 << 1) ^1da177e4c3f41 drivers/serial/21285.c Linus Torvalds 2005-04-16 33 #define RXSTAT_OVERRUN (1 << 2) ^1da177e4c3f41 drivers/serial/21285.c Linus Torvalds 2005-04-16 34 #define RXSTAT_ANYERR (RXSTAT_FRAME|RXSTAT_PARITY|RXSTAT_OVERRUN) ^1da177e4c3f41 drivers/serial/21285.c Linus Torvalds 2005-04-16 35 ^1da177e4c3f41 drivers/serial/21285.c Linus Torvalds 2005-04-16 36 #define H_UBRLCR_BREAK (1 << 0) ^1da177e4c3f41 drivers/serial/21285.c Linus Torvalds 2005-04-16 37 #define H_UBRLCR_PARENB (1 << 1) ^1da177e4c3f41 drivers/serial/21285.c Linus Torvalds 2005-04-16 38 #define H_UBRLCR_PAREVN (1 << 2) ^1da177e4c3f41 drivers/serial/21285.c Linus Torvalds 2005-04-16 39 #define H_UBRLCR_STOPB (1 << 3) ^1da177e4c3f41 drivers/serial/21285.c Linus Torvalds 2005-04-16 40 #define H_UBRLCR_FIFO (1 << 4) ^1da177e4c3f41 drivers/serial/21285.c Linus Torvalds 2005-04-16 41 ^1da177e4c3f41 drivers/serial/21285.c Linus Torvalds 2005-04-16 42 static const char serial21285_name[] = "Footbridge UART"; ^1da177e4c3f41 drivers/serial/21285.c Linus Torvalds 2005-04-16 43 ^1da177e4c3f41 drivers/serial/21285.c Linus Torvalds 2005-04-16 @44 #define tx_enabled(port) ((port)->unused[0]) ^1da177e4c3f41 drivers/serial/21285.c Linus Torvalds 2005-04-16 @45 #define rx_enabled(port) ((port)->unused[1]) ^1da177e4c3f41 drivers/serial/21285.c Linus Torvalds 2005-04-16 46 ^1da177e4c3f41 drivers/serial/21285.c Linus Torvalds 2005-04-16 47 /* ^1da177e4c3f41 drivers/serial/21285.c Linus Torvalds 2005-04-16 48 * The documented expression for selecting the divisor is: ^1da177e4c3f41 drivers/serial/21285.c Linus Torvalds 2005-04-16 49 * BAUD_BASE / baud - 1 ^1da177e4c3f41 drivers/serial/21285.c Linus Torvalds 2005-04-16 50 * However, typically BAUD_BASE is not divisible by baud, so ^1da177e4c3f41 drivers/serial/21285.c Linus Torvalds 2005-04-16 51 * we want to select the divisor that gives us the minimum ^1da177e4c3f41 drivers/serial/21285.c Linus Torvalds 2005-04-16 52 * error. Therefore, we want: ^1da177e4c3f41 drivers/serial/21285.c Linus Torvalds 2005-04-16 53 * int(BAUD_BASE / baud - 0.5) -> ^1da177e4c3f41 drivers/serial/21285.c Linus Torvalds 2005-04-16 54 * int(BAUD_BASE / baud - (baud >> 1) / baud) -> ^1da177e4c3f41 drivers/serial/21285.c Linus Torvalds 2005-04-16 55 * int((BAUD_BASE - (baud >> 1)) / baud) ^1da177e4c3f41 drivers/serial/21285.c Linus Torvalds 2005-04-16 56 */ ^1da177e4c3f41 drivers/serial/21285.c Linus Torvalds 2005-04-16 57 b129a8ccd53f74 drivers/serial/21285.c Russell King 2005-08-31 58 static void serial21285_stop_tx(struct uart_port *port) ^1da177e4c3f41 drivers/serial/21285.c Linus Torvalds 2005-04-16 59 { ^1da177e4c3f41 drivers/serial/21285.c Linus Torvalds 2005-04-16 @60 if (tx_enabled(port)) { cc20b900be7aa8 drivers/serial/21285.c Simon Kagstrom 2010-01-11 61 disable_irq_nosync(IRQ_CONTX); ^1da177e4c3f41 drivers/serial/21285.c Linus Torvalds 2005-04-16 62 tx_enabled(port) = 0; ^1da177e4c3f41 drivers/serial/21285.c Linus Torvalds 2005-04-16 63 } ^1da177e4c3f41 drivers/serial/21285.c Linus Torvalds 2005-04-16 64 } ^1da177e4c3f41 drivers/serial/21285.c Linus Torvalds 2005-04-16 65 b129a8ccd53f74 drivers/serial/21285.c Russell King 2005-08-31 66 static void serial21285_start_tx(struct uart_port *port) ^1da177e4c3f41 drivers/serial/21285.c Linus Torvalds 2005-04-16 67 { ^1da177e4c3f41 drivers/serial/21285.c Linus Torvalds 2005-04-16 68 if (!tx_enabled(port)) { ^1da177e4c3f41 drivers/serial/21285.c Linus Torvalds 2005-04-16 69 enable_irq(IRQ_CONTX); ^1da177e4c3f41 drivers/serial/21285.c Linus Torvalds 2005-04-16 70 tx_enabled(port) = 1; ^1da177e4c3f41 drivers/serial/21285.c Linus Torvalds 2005-04-16 71 } ^1da177e4c3f41 drivers/serial/21285.c Linus Torvalds 2005-04-16 72 } ^1da177e4c3f41 drivers/serial/21285.c Linus Torvalds 2005-04-16 73 ^1da177e4c3f41 drivers/serial/21285.c Linus Torvalds 2005-04-16 74 static void serial21285_stop_rx(struct uart_port *port) ^1da177e4c3f41 drivers/serial/21285.c Linus Torvalds 2005-04-16 75 { ^1da177e4c3f41 drivers/serial/21285.c Linus Torvalds 2005-04-16 @76 if (rx_enabled(port)) { cc20b900be7aa8 drivers/serial/21285.c Simon Kagstrom 2010-01-11 77 disable_irq_nosync(IRQ_CONRX); ^1da177e4c3f41 drivers/serial/21285.c Linus Torvalds 2005-04-16 78 rx_enabled(port) = 0; ^1da177e4c3f41 drivers/serial/21285.c Linus Torvalds 2005-04-16 79 } ^1da177e4c3f41 drivers/serial/21285.c Linus Torvalds 2005-04-16 80 } ^1da177e4c3f41 drivers/serial/21285.c Linus Torvalds 2005-04-16 81 :::::: The code at line 44 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/hyperkitty/list/kbuild-all@lists.01.org Intel Corporation