Merge tag 's390-4.20-1' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux
authorLinus Torvalds <torvalds@linux-foundation.org>
Tue, 23 Oct 2018 10:14:47 +0000 (11:14 +0100)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 23 Oct 2018 10:14:47 +0000 (11:14 +0100)
Pull s390 updates from Martin Schwidefsky:

 - Improved access control for the zcrypt driver, multiple device nodes
   can now be created with different access control lists

 - Extend the pkey API to provide random protected keys, this is useful
   for encrypted swap device with ephemeral protected keys

 - Add support for virtually mapped kernel stacks

 - Rework the early boot code, this moves the memory detection into the
   boot code that runs prior to decompression.

 - Add KASAN support

 - Bug fixes and cleanups

* tag 's390-4.20-1' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: (83 commits)
  s390/pkey: move pckmo subfunction available checks away from module init
  s390/kasan: support preemptible kernel build
  s390/pkey: Load pkey kernel module automatically
  s390/perf: Return error when debug_register fails
  s390/sthyi: Fix machine name validity indication
  s390/zcrypt: fix broken zcrypt_send_cprb in-kernel api function
  s390/vmalloc: fix VMALLOC_START calculation
  s390/mem_detect: add missing include
  s390/dumpstack: print psw mask and address again
  s390/crypto: Enhance paes cipher to accept variable length key material
  s390/pkey: Introduce new API for transforming key blobs
  s390/pkey: Introduce new API for random protected key verification
  s390/pkey: Add sysfs attributes to emit secure key blobs
  s390/pkey: Add sysfs attributes to emit protected key blobs
  s390/pkey: Define protected key blob format
  s390/pkey: Introduce new API for random protected key generation
  s390/zcrypt: add ap_adapter_mask sysfs attribute
  s390/zcrypt: provide apfs failure code on type 86 error reply
  s390/zcrypt: zcrypt device driver cleanup
  s390/kasan: add support for mem= kernel parameter
  ...

1  2 
include/linux/compiler-gcc.h

index 4d36b27214fda629b7808ce662216d61d47e0265,997ade08a79de47a8dc55af98431c415c7563f61..90ddfefb6c2b12886acba122a6d2e79e99951f82
  #define __noretpoline __attribute__((indirect_branch("keep")))
  #endif
  
 -/*
 - * it doesn't make sense on ARM (currently the only user of __naked)
 - * to trace naked functions because then mcount is called without
 - * stack and frame pointer being set up and there is no chance to
 - * restore the lr register to the value before mcount was called.
 - *
 - * The asm() bodies of naked functions often depend on standard calling
 - * conventions, therefore they must be noinline and noclone.
 - *
 - * GCC 4.[56] currently fail to enforce this, so we must do so ourselves.
 - * See GCC PR44290.
 - */
 -#define __naked               __attribute__((naked)) noinline __noclone notrace
 -
  #define __UNIQUE_ID(prefix) __PASTE(__PASTE(__UNIQUE_ID_, prefix), __COUNTER__)
  
  #define __optimize(level)     __attribute__((__optimize__(level)))
   * Conflicts with inlining: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67368
   */
  #define __no_sanitize_address __attribute__((no_sanitize_address))
+ #ifdef CONFIG_KASAN
+ #define __no_sanitize_address_or_inline                                       \
+       __no_sanitize_address __maybe_unused notrace
+ #else
+ #define __no_sanitize_address_or_inline inline
+ #endif
  #endif
  
  #if GCC_VERSION >= 50100
  
  #if !defined(__no_sanitize_address)
  #define __no_sanitize_address
+ #define __no_sanitize_address_or_inline inline
  #endif
  
  /*