Re: [mel:mm-vmscan-node-lru-v8r12 185/295] arch/arm/include/asm/jump_label.h:13:2: note: in expansion of macro 'asm_volatile_goto'

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

On 06/24/2016 12:00 PM, kbuild test robot wrote:
> tree:   https://git.kernel.org/pub/scm/linux/kernel/git/mel/linux mm-vmscan-node-lru-v8r12
> head:   572d76872348caf13577b82f35e4f1869fd79681
> commit: 6a8bfa2685fa2969d95b16470c846175c0ded7a4 [185/295] dynamic_debug: add jump label support
> config: arm-allyesconfig (attached as .config)
> compiler: arm-linux-gnueabi-gcc (Debian 5.3.1-8) 5.3.1 20160205
> reproduce:
>         wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
>         chmod +x ~/bin/make.cross
>         git checkout 6a8bfa2685fa2969d95b16470c846175c0ded7a4
>         # save the attached .config to linux build tree
>         make.cross ARCH=arm 
> 
> All error/warnings (new ones prefixed by >>):
> 
>    In file included from include/linux/compiler.h:60:0,
>                     from include/linux/linkage.h:4,
>                     from include/linux/kernel.h:6,
>                     from drivers/crypto/ux500/cryp/cryp_irq.c:11:
>    arch/arm/include/asm/jump_label.h: In function 'cryp_enable_irq_src':
>>> include/linux/compiler-gcc.h:243:38: warning: asm operand 0 probably doesn't match constraints
>     #define asm_volatile_goto(x...) do { asm goto(x); asm (""); } while (0)
>


In drivers/crypto/ux500/cryp/Makefile, there is an explicit setting to
disable gcc optimizations:

ifdef CONFIG_CRYPTO_DEV_UX500_DEBUG
CFLAGS_cryp_core.o := -DDEBUG -O0
CFLAGS_cryp.o := -DDEBUG -O0
CFLAGS_cryp_irq.o := -DDEBUG -O0
endif

If I change those to -O1 or -O2, it seems to build fine, strange...I was
able to reproduce this with gcc 4.9.0 as well.

Thanks,

-Jason

                                          ^
>>> arch/arm/include/asm/jump_label.h:13:2: note: in expansion of macro 'asm_volatile_goto'
>      asm_volatile_goto("1:\n\t"
>      ^
>>> include/linux/compiler-gcc.h:243:38: error: impossible constraint in 'asm'
>     #define asm_volatile_goto(x...) do { asm goto(x); asm (""); } while (0)
>                                          ^
>>> arch/arm/include/asm/jump_label.h:13:2: note: in expansion of macro 'asm_volatile_goto'
>      asm_volatile_goto("1:\n\t"
>      ^
>    arch/arm/include/asm/jump_label.h: In function 'cryp_disable_irq_src':
>>> include/linux/compiler-gcc.h:243:38: warning: asm operand 0 probably doesn't match constraints
>     #define asm_volatile_goto(x...) do { asm goto(x); asm (""); } while (0)
>                                          ^
>>> arch/arm/include/asm/jump_label.h:13:2: note: in expansion of macro 'asm_volatile_goto'
>      asm_volatile_goto("1:\n\t"
>      ^
> --
>    In file included from include/linux/compiler.h:60:0,
>                     from include/linux/err.h:4,
>                     from include/linux/clk.h:15,
>                     from drivers/crypto/ux500/cryp/cryp_core.c:12:
>    arch/arm/include/asm/jump_label.h: In function 'cryp_interrupt_handler':
>>> include/linux/compiler-gcc.h:243:38: warning: asm operand 0 probably doesn't match constraints
>     #define asm_volatile_goto(x...) do { asm goto(x); asm (""); } while (0)
>                                          ^
>>> arch/arm/include/asm/jump_label.h:13:2: note: in expansion of macro 'asm_volatile_goto'
>      asm_volatile_goto("1:\n\t"
>      ^
>>> include/linux/compiler-gcc.h:243:38: error: impossible constraint in 'asm'
>     #define asm_volatile_goto(x...) do { asm goto(x); asm (""); } while (0)
>                                          ^
>>> arch/arm/include/asm/jump_label.h:13:2: note: in expansion of macro 'asm_volatile_goto'
>      asm_volatile_goto("1:\n\t"
>      ^
>    arch/arm/include/asm/jump_label.h: In function 'cfg_iv':
>>> include/linux/compiler-gcc.h:243:38: warning: asm operand 0 probably doesn't match constraints
>     #define asm_volatile_goto(x...) do { asm goto(x); asm (""); } while (0)
>                                          ^
>>> arch/arm/include/asm/jump_label.h:13:2: note: in expansion of macro 'asm_volatile_goto'
>      asm_volatile_goto("1:\n\t"
>      ^
>    arch/arm/include/asm/jump_label.h: In function 'cfg_ivs':
>>> include/linux/compiler-gcc.h:243:38: warning: asm operand 0 probably doesn't match constraints
>     #define asm_volatile_goto(x...) do { asm goto(x); asm (""); } while (0)
>                                          ^
>>> arch/arm/include/asm/jump_label.h:13:2: note: in expansion of macro 'asm_volatile_goto'
>      asm_volatile_goto("1:\n\t"
>      ^
>    arch/arm/include/asm/jump_label.h: In function 'set_key':
>>> include/linux/compiler-gcc.h:243:38: warning: asm operand 0 probably doesn't match constraints
>     #define asm_volatile_goto(x...) do { asm goto(x); asm (""); } while (0)
>                                          ^
>>> arch/arm/include/asm/jump_label.h:13:2: note: in expansion of macro 'asm_volatile_goto'
>      asm_volatile_goto("1:\n\t"
>      ^
>    arch/arm/include/asm/jump_label.h: In function 'cfg_keys':
>>> include/linux/compiler-gcc.h:243:38: warning: asm operand 0 probably doesn't match constraints
>     #define asm_volatile_goto(x...) do { asm goto(x); asm (""); } while (0)
>                                          ^
>>> arch/arm/include/asm/jump_label.h:13:2: note: in expansion of macro 'asm_volatile_goto'
>      asm_volatile_goto("1:\n\t"
>      ^
>    arch/arm/include/asm/jump_label.h: In function 'cryp_get_device_data':
>>> include/linux/compiler-gcc.h:243:38: warning: asm operand 0 probably doesn't match constraints
>     #define asm_volatile_goto(x...) do { asm goto(x); asm (""); } while (0)
>                                          ^
>>> arch/arm/include/asm/jump_label.h:13:2: note: in expansion of macro 'asm_volatile_goto'
>      asm_volatile_goto("1:\n\t"
>      ^
>    arch/arm/include/asm/jump_label.h: In function 'cryp_dma_out_callback':
>>> include/linux/compiler-gcc.h:243:38: warning: asm operand 0 probably doesn't match constraints
>     #define asm_volatile_goto(x...) do { asm goto(x); asm (""); } while (0)
>                                          ^
>>> arch/arm/include/asm/jump_label.h:13:2: note: in expansion of macro 'asm_volatile_goto'
>      asm_volatile_goto("1:\n\t"
>      ^
>    arch/arm/include/asm/jump_label.h: In function 'cryp_set_dma_transfer':
>>> include/linux/compiler-gcc.h:243:38: warning: asm operand 0 probably doesn't match constraints
>     #define asm_volatile_goto(x...) do { asm goto(x); asm (""); } while (0)
>                                          ^
>>> arch/arm/include/asm/jump_label.h:13:2: note: in expansion of macro 'asm_volatile_goto'
>      asm_volatile_goto("1:\n\t"
>      ^
>>> include/linux/compiler-gcc.h:243:38: warning: asm operand 0 probably doesn't match constraints
>     #define asm_volatile_goto(x...) do { asm goto(x); asm (""); } while (0)
>                                          ^
>>> arch/arm/include/asm/jump_label.h:13:2: note: in expansion of macro 'asm_volatile_goto'
>      asm_volatile_goto("1:\n\t"
>      ^
> 
> vim +/asm_volatile_goto +13 arch/arm/include/asm/jump_label.h
> 
> 09f05d85 Rabin Vincent   2012-02-18   1  #ifndef _ASM_ARM_JUMP_LABEL_H
> 09f05d85 Rabin Vincent   2012-02-18   2  #define _ASM_ARM_JUMP_LABEL_H
> 09f05d85 Rabin Vincent   2012-02-18   3  
> 55dd0df7 Anton Blanchard 2015-04-09   4  #ifndef __ASSEMBLY__
> 09f05d85 Rabin Vincent   2012-02-18   5  
> 09f05d85 Rabin Vincent   2012-02-18   6  #include <linux/types.h>
> 11276d53 Peter Zijlstra  2015-07-24   7  #include <asm/unified.h>
> 09f05d85 Rabin Vincent   2012-02-18   8  
> 09f05d85 Rabin Vincent   2012-02-18   9  #define JUMP_LABEL_NOP_SIZE 4
> 09f05d85 Rabin Vincent   2012-02-18  10  
> 11276d53 Peter Zijlstra  2015-07-24  11  static __always_inline bool arch_static_branch(struct static_key *key, bool branch)
> 11276d53 Peter Zijlstra  2015-07-24  12  {
> 11276d53 Peter Zijlstra  2015-07-24 @13  	asm_volatile_goto("1:\n\t"
> 11276d53 Peter Zijlstra  2015-07-24  14  		 WASM(nop) "\n\t"
> 11276d53 Peter Zijlstra  2015-07-24  15  		 ".pushsection __jump_table,  \"aw\"\n\t"
> 11276d53 Peter Zijlstra  2015-07-24  16  		 ".word 1b, %l[l_yes], %c0\n\t"
> 11276d53 Peter Zijlstra  2015-07-24  17  		 ".popsection\n\t"
> 11276d53 Peter Zijlstra  2015-07-24  18  		 : :  "i" (&((char *)key)[branch]) :  : l_yes);
> 11276d53 Peter Zijlstra  2015-07-24  19  
> 11276d53 Peter Zijlstra  2015-07-24  20  	return false;
> 11276d53 Peter Zijlstra  2015-07-24  21  l_yes:
> 
> :::::: The code at line 13 was first introduced by commit
> :::::: 11276d5306b8e5b438a36bbff855fe792d7eaa61 locking/static_keys: Add a new static_key interface
> 
> :::::: TO: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
> :::::: CC: Ingo Molnar <mingo@xxxxxxxxxx>
> 
> ---
> 0-DAY kernel test infrastructure                Open Source Technology Center
> https://lists.01.org/pipermail/kbuild-all                   Intel Corporation
> 

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@xxxxxxxxx.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@xxxxxxxxx";> email@xxxxxxxxx </a>



[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]