Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux
authorLinus Torvalds <torvalds@linux-foundation.org>
Tue, 5 Sep 2017 16:45:46 +0000 (09:45 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 5 Sep 2017 16:45:46 +0000 (09:45 -0700)
Pull s390 updates from Martin Schwidefsky:
 "The first part of the s390 updates for 4.14:

   - Add machine type 0x3906 for IBM z14

   - Add IBM z14 TLB flushing improvements for KVM guests

   - Exploit the TOD clock epoch extension to provide a continuous TOD
     clock afer 2042/09/17

   - Add NIAI spinlock hints for IBM z14

   - Rework the vmcp driver and use CMA for the respone buffer of z/VM
     CP commands

   - Drop some s390 specific asm headers and use the generic version

   - Add block discard for DASD-FBA devices under z/VM

   - Add average request times to DASD statistics

   - A few of those constify patches which seem to be in vogue right now

   - Cleanup and bug fixes"

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: (50 commits)
  s390/mm: avoid empty zero pages for KVM guests to avoid postcopy hangs
  s390/dasd: Add discard support for FBA devices
  s390/zcrypt: make CPRBX const
  s390/uaccess: avoid mvcos jump label
  s390/mm: use generic mm_hooks
  s390/facilities: fix typo
  s390/vmcp: simplify vmcp_response_free()
  s390/topology: Remove the unused parent_node() macro
  s390/dasd: Change unsigned long long to unsigned long
  s390/smp: convert cpuhp_setup_state() return code to zero on success
  s390: fix 'novx' early parameter handling
  s390/dasd: add average request times to dasd statistics
  s390/scm: use common completion path
  s390/pci: log changes to uid checking
  s390/vmcp: simplify vmcp_ioctl()
  s390/vmcp: return -ENOTTY for unknown ioctl commands
  s390/vmcp: split vmcp header file and move to uapi
  s390/vmcp: make use of contiguous memory allocator
  s390/cpcmd,vmcp: avoid GFP_DMA allocations
  s390/vmcp: fix uaccess check and avoid undefined behavior
  ...

1  2 
Documentation/admin-guide/kernel-parameters.txt
arch/s390/include/asm/mmu_context.h
arch/s390/include/asm/spinlock.h
arch/s390/include/asm/tlb.h

index 24bc41622a983cf353c6d414d521cbd94cd43cbb,31eea626148851454cbf9587068e52418bf307bf..72e9ca83a6687873787ac7eb656c73aaf8dbc42e
@@@ -44,12 -45,7 +45,12 @@@ static inline int init_new_context(stru
                mm->context.asce = __pa(mm->pgd) | _ASCE_TABLE_LENGTH |
                                   _ASCE_USER_BITS | _ASCE_TYPE_REGION3;
                break;
-       case 1UL << 53:
 +      case -PAGE_SIZE:
 +              /* forked 5-level task, set new asce with new_mm->pgd */
 +              mm->context.asce = __pa(mm->pgd) | _ASCE_TABLE_LENGTH |
 +                      _ASCE_USER_BITS | _ASCE_TYPE_REGION1;
 +              break;
+       case _REGION1_SIZE:
                /* forked 4-level task, set new asce with new mm->pgd */
                mm->context.asce = __pa(mm->pgd) | _ASCE_TABLE_LENGTH |
                                   _ASCE_USER_BITS | _ASCE_TYPE_REGION2;
index 217ee5210c32ea0845d98deff7436f6d2e84b215,339e450b0567d3420d48528dac2aa6c7fa754f4c..8182b521c42f010e94e6c06e9a49e6f32bf307da
@@@ -92,12 -92,20 +92,13 @@@ static inline void arch_spin_unlock(arc
  {
        typecheck(int, lp->lock);
        asm volatile(
-               "st     %1,%0\n"
-               : "+Q" (lp->lock)
-               : "d" (0)
-               : "cc", "memory");
+ #ifdef CONFIG_HAVE_MARCH_ZEC12_FEATURES
+               "       .long   0xb2fa0070\n"   /* NIAI 7 */
+ #endif
+               "       st      %1,%0\n"
+               : "=Q" (lp->lock) : "d" (0) : "cc", "memory");
  }
  
 -static inline void arch_spin_unlock_wait(arch_spinlock_t *lock)
 -{
 -      while (arch_spin_is_locked(lock))
 -              arch_spin_relax(lock);
 -      smp_acquire__after_ctrl_dep();
 -}
 -
  /*
   * Read-write spinlocks, allowing multiple readers
   * but only one writer.
Simple merge