Merge tag 'xtensa-20191201' of git://github.com/jcmvbkbc/linux-xtensa
authorLinus Torvalds <torvalds@linux-foundation.org>
Tue, 3 Dec 2019 20:46:44 +0000 (12:46 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 3 Dec 2019 20:46:44 +0000 (12:46 -0800)
Pull Xtensa updates from Max Filippov:

 - add support for execute in place (XIP) kernels

 - improvements in inline assembly: use named arguments and "m"
   constraints where possible

 - improve stack dumping

 - clean up system_call code and syscall tracing

 - various small fixes and cleanups

* tag 'xtensa-20191201' of git://github.com/jcmvbkbc/linux-xtensa: (30 commits)
  xtensa: clean up system_call/xtensa_rt_sigreturn interaction
  xtensa: fix system_call interaction with ptrace
  xtensa: rearrange syscall tracing
  xtensa: fix syscall_set_return_value
  xtensa: drop unneeded headers from coprocessor.S
  xtensa: entry: Remove unneeded need_resched() loop
  xtensa: use MEMBLOCK_ALLOC_ANYWHERE for KASAN shadow map
  xtensa: fix TLB sanity checker
  xtensa: get rid of __ARCH_USE_5LEVEL_HACK
  xtensa: mm: fix PMD folding implementation
  xtensa: make stack dump size configurable
  xtensa: improve stack dumping
  xtensa: use "m" constraint instead of "r" in futex.h assembly
  xtensa: use "m" constraint instead of "a" in cmpxchg.h assembly
  xtensa: use named assembly arguments in cmpxchg.h
  xtensa: use "m" constraint instead of "a" in atomic.h assembly
  xtensa: use named assembly arguments in atomic.h
  xtensa: use "m" constraint instead of "a" in bitops.h assembly
  xtensa: use named assembly arguments in bitops.h
  xtensa: use macros to generate *_bit and test_and_*_bit functions
  ...

1  2 
arch/xtensa/Kconfig
arch/xtensa/kernel/vmlinux.lds.S

Simple merge
@@@ -126,16 -124,17 +126,15 @@@ SECTION
  
    . = ALIGN(16);
  
 -  RODATA
 +  RO_DATA(4096)
  
-   /*  Relocation table */
-   .fixup   : { *(.fixup) }
 -  EXCEPTION_TABLE(16)
 -  NOTES
    /* Data section */
  
+ #ifdef CONFIG_XIP_KERNEL
+   INIT_TEXT_SECTION(PAGE_SIZE)
+ #else
    _sdata = .;
 -  RW_DATA_SECTION(XCHAL_ICACHE_LINESIZE, PAGE_SIZE, THREAD_SIZE)
 +  RW_DATA(XCHAL_ICACHE_LINESIZE, PAGE_SIZE, THREAD_SIZE)
    _edata = .;
  
    /* Initialization code and data: */
  
    _end = .;
  
 -  RW_DATA_SECTION(XCHAL_ICACHE_LINESIZE, PAGE_SIZE, THREAD_SIZE)
+ #ifdef CONFIG_XIP_KERNEL
+   . = CONFIG_XIP_DATA_ADDR;
+   _xip_start = .;
+ #undef LOAD_OFFSET
+ #define LOAD_OFFSET \
+   (CONFIG_XIP_DATA_ADDR - (LOADADDR(.dummy) + SIZEOF(.dummy) + 3) & ~ 3)
+   _xip_data_start = .;
+   _sdata = .;
++  RW_DATA(XCHAL_ICACHE_LINESIZE, PAGE_SIZE, THREAD_SIZE)
+   _edata = .;
+   _xip_data_end = .;
+   /* Initialization data: */
+   STRUCT_ALIGN();
+   _xip_init_data_start = .;
+   __init_begin = .;
+   .init.data :
+   {
+     INIT_DATA
+   }
+   _xip_init_data_end = .;
+   __init_end = .;
+   BSS_SECTION(0, 8192, 0)
+   _xip_end = .;
+ #undef LOAD_OFFSET
+ #endif
    DWARF_DEBUG
  
    .xt.prop 0 : { KEEP(*(.xt.prop .xt.prop.* .gnu.linkonce.prop.*)) }