1. 31 Jul, 2016 15 commits
    • James Hogan's avatar
      s390: Define AT_VECTOR_SIZE_ARCH for ARCH_DLINFO · 68c5cf5a
      James Hogan authored
      AT_VECTOR_SIZE_ARCH should be defined with the maximum number of
      NEW_AUX_ENT entries that ARCH_DLINFO can contain, but it wasn't defined
      for s390 at all even though ARCH_DLINFO can contain one NEW_AUX_ENT when
      VDSO is enabled.
      
      This shouldn't be a problem as AT_VECTOR_SIZE_BASE includes space for
      AT_BASE_PLATFORM which s390 doesn't use, but lets define it now and add
      the comment above ARCH_DLINFO as found in several other architectures to
      remind future modifiers of ARCH_DLINFO to keep AT_VECTOR_SIZE_ARCH up to
      date.
      
      Fixes: b020632e ("[S390] introduce vdso on s390")
      Signed-off-by: default avatarJames Hogan <james.hogan@imgtec.com>
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
      Cc: linux-s390@vger.kernel.org
      68c5cf5a
    • Wei Yongjun's avatar
      s390/zcrypt: fix possible memory leak in ap_module_init() · 33c388b8
      Wei Yongjun authored
      ap_configuration is malloced in ap_module_init() and should be freed
      before leaving from the error handling cases, otherwise it may cause
      memory leak.
      Signed-off-by: default avatarWei Yongjun <weiyj.lk@gmail.com>
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      33c388b8
    • Heiko Carstens's avatar
      s390/numa: only set possible nodes within node_possible_map · ef4423ce
      Heiko Carstens authored
      Make sure that only those nodes appear in the node_possible_map that
      may actually be used. Usually that means that the node online and
      possible maps are identical. For mode "plain" we only have one node,
      for mode "emu" we have "emu_nodes" nodes.
      
      Before this the possible map included (with default config) 16 nodes
      while usually only one was used. That made a couple of loops that
      iterated over all possible nodes do more work than necessary.
      Signed-off-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
      Acked-by: default avatarMichael Holzheu <holzheu@linux.vnet.ibm.com>
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      ef4423ce
    • Heiko Carstens's avatar
      s390/als: fix compile with gcov enabled · 88143091
      Heiko Carstens authored
      Fix this one when gcov is enabled:
      
      arch/s390/kernel/als.o:(.data+0x118): undefined reference to `__gcov_merge_add'
      arch/s390/kernel/als.o: In function `_GLOBAL__sub_I_65535_0_verify_facilities':
      (.text.startup+0x8): undefined reference to `__gcov_init'
      
      Please merge with "s390/als: convert architecture level set code to C".
      Signed-off-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      88143091
    • Heiko Carstens's avatar
      s390/facilities: do not generate DWORDS define anymore · fbd6534c
      Heiko Carstens authored
      The architecture level set code has been converted to C and doesn't
      need a define to figure out array sizes. Since the old code was the
      only user of the DWORDS define, we can get rid of it again.
      Signed-off-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
      Reviewed-by: default avatarSascha Silbe <silbe@linux.vnet.ibm.com>
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      fbd6534c
    • Heiko Carstens's avatar
      s390/als: print missing facilities on facility mismatch · a02d1988
      Heiko Carstens authored
      If the kernel needs more facilities to run than the machine provides
      it is running on, print the facility bit numbers which are missing.
      
      This allows to easily tell what went wrong and if simply the machine
      does not provide a required facility or if either the kernel or the
      hypervisor may have a bug.
      Signed-off-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
      Reviewed-by: default avatarSascha Silbe <silbe@linux.vnet.ibm.com>
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      a02d1988
    • Heiko Carstens's avatar
      s390/als: print machine type on facility mismatch · 06ed5512
      Heiko Carstens authored
      If we have a facility mismatch the kernel only emits a warning that
      the processor is not recent enough and stops operating. This doesn't
      give us a lot of an idea of what actually went wrong.
      
      As a first step print the machine type in addition.
      Signed-off-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
      Reviewed-by: default avatarSascha Silbe <silbe@linux.vnet.ibm.com>
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      06ed5512
    • Heiko Carstens's avatar
      s390/als: convert architecture level set code to C · be2412c2
      Heiko Carstens authored
      There is no reason to have this code in assembly language. Therefore
      convert it to C.
      
      Note that this code needs special treatment: it is called very early
      and one of the side effects is that e.g. the bss section is not
      cleared. Therefore the preferred way for static variables is to put
      them on the stack which has a size of 16KB.
      
      There is no functional change with this patch.
      Signed-off-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
      Reviewed-by: default avatarSascha Silbe <silbe@linux.vnet.ibm.com>
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      be2412c2
    • Heiko Carstens's avatar
      s390/sclp: move uninitialized data to data section · cf9fdfea
      Heiko Carstens authored
      The early sclp code may be called before the bss section is
      cleared. Therefore move all variables to the data section.
      Signed-off-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      cf9fdfea
    • Ingo Tuchscherer's avatar
      s390/zcrypt: Fix zcrypt suspend/resume behavior · d6d86c57
      Ingo Tuchscherer authored
      The device suspend call triggers all ap devices to fetch potentially
      available response messages from the queues. Therefore the
      corresponding zcrypt device, that is allocated asynchronously after
      ap device probing, needs to be fully prepared. This race condition
      could lead to uninitialized response buffers while trying to read
      from the queues.
      
      Introduce a new callback within the ap layer to get noticed when a
      zcrypt device is fully prepared. Additional checks prevent reading
      from devices that are not fully prepared.
      Signed-off-by: default avatarIngo Tuchscherer <ingo.tuchscherer@linux.vnet.ibm.com>
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      d6d86c57
    • Sebastian Ott's avatar
      s390/cio: fix premature wakeup during chp configure · 4475aeb8
      Sebastian Ott authored
      We store requests for channel path configure operations in an array but
      maintain an additional cfg_busy variable (indicating if we have requests
      stored in said array). When 2 tasks request a channel path configure
      operation cfg_busy could be set to 0 even if we still have unprocessed
      requests. This would lead to the second task being woken up although its
      request was not processed yet.
      
      Fix that by getting rid of cfg_busy and use the chp_cfg_task array
      in the wake up condition.
      Signed-off-by: default avatarSebastian Ott <sebott@linux.vnet.ibm.com>
      Reviewed-by: default avatarPeter Oberparleiter <oberpar@linux.vnet.ibm.com>
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      4475aeb8
    • Sebastian Ott's avatar
      s390/cio: convert cfg_lock mutex to spinlock · 837c5220
      Sebastian Ott authored
      cfg_lock is never held long and we don't want to sleep while the
      lock is being held. Thus it can be converted to a simple spinlock.
      In addition we can now use the lock during the evaluation of a
      wake_up condition.
      Signed-off-by: default avatarSebastian Ott <sebott@linux.vnet.ibm.com>
      Reviewed-by: default avatarPeter Oberparleiter <oberpar@linux.vnet.ibm.com>
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      837c5220
    • Gerald Schaefer's avatar
      s390/mm: clean up pte/pmd encoding · bc29b7ac
      Gerald Schaefer authored
      The hugetlbfs pte<->pmd conversion functions currently assume that the pmd
      bit layout is consistent with the pte layout, which is not really true.
      
      The SW read and write bits are encoded as the sequence "wr" in a pte, but
      in a pmd it is "rw". The hugetlbfs conversion assumes that the sequence
      is identical in both cases, which results in swapped read and write bits
      in the pmd. In practice this is not a problem, because those pmd bits are
      only relevant for THP pmds and not for hugetlbfs pmds. The hugetlbfs code
      works on (fake) ptes, and the converted pte bits are correct.
      
      There is another variation in pte/pmd encoding which affects dirty
      prot-none ptes/pmds. In this case, a pmd has both its HW read-only and
      invalid bit set, while it is only the invalid bit for a pte. This also has
      no effect in practice, but it should better be consistent.
      
      This patch fixes both inconsistencies by changing the SW read/write bit
      layout for pmds as well as the PAGE_NONE encoding for ptes. It also makes
      the hugetlbfs conversion functions more robust by introducing a
      move_set_bit() macro that uses the pte/pmd bit #defines instead of
      constant shifts.
      Signed-off-by: default avatarGerald Schaefer <gerald.schaefer@de.ibm.com>
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      bc29b7ac
    • Linus Torvalds's avatar
      Merge tag 'powerpc-4.8-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux · bad60e6f
      Linus Torvalds authored
      Pull powerpc updates from Michael Ellerman:
       "Highlights:
         - PowerNV PCI hotplug support.
         - Lots more Power9 support.
         - eBPF JIT support on ppc64le.
         - Lots of cxl updates.
         - Boot code consolidation.
      
        Bug fixes:
         - Fix spin_unlock_wait() from Boqun Feng
         - Fix stack pointer corruption in __tm_recheckpoint() from Michael
           Neuling
         - Fix multiple bugs in memory_hotplug_max() from Bharata B Rao
         - mm: Ensure "special" zones are empty from Oliver O'Halloran
         - ftrace: Separate the heuristics for checking call sites from
           Michael Ellerman
         - modules: Never restore r2 for a mprofile-kernel style mcount() call
           from Michael Ellerman
         - Fix endianness when reading TCEs from Alexey Kardashevskiy
         - start rtasd before PCI probing from Greg Kurz
         - PCI: rpaphp: Fix slot registration for multiple slots under a PHB
           from Tyrel Datwyler
         - powerpc/mm: Add memory barrier in __hugepte_alloc() from Sukadev
           Bhattiprolu
      
        Cleanups & fixes:
         - Drop support for MPIC in pseries from Rashmica Gupta
         - Define and use PPC64_ELF_ABI_v2/v1 from Michael Ellerman
         - Remove unused symbols in asm-offsets.c from Rashmica Gupta
         - Fix SRIOV not building without EEH enabled from Russell Currey
         - Remove kretprobe_trampoline_holder from Thiago Jung Bauermann
         - Reduce log level of PCI I/O space warning from Benjamin
           Herrenschmidt
         - Add array bounds checking to crash_shutdown_handlers from Suraj
           Jitindar Singh
         - Avoid -maltivec when using clang integrated assembler from Anton
           Blanchard
         - Fix array overrun in ppc_rtas() syscall from Andrew Donnellan
         - Fix error return value in cmm_mem_going_offline() from Rasmus
           Villemoes
         - export cpu_to_core_id() from Mauricio Faria de Oliveira
         - Remove old symbols from defconfigs from Andrew Donnellan
         - Update obsolete comments in setup_32.c about entry conditions from
           Benjamin Herrenschmidt
         - Add comment explaining the purpose of setup_kdump_trampoline() from
           Benjamin Herrenschmidt
         - Merge the RELOCATABLE config entries for ppc32 and ppc64 from Kevin
           Hao
         - Remove RELOCATABLE_PPC32 from Kevin Hao
         - Fix .long's in tlb-radix.c to more meaningful from Balbir Singh
      
        Minor cleanups & fixes:
         - Andrew Donnellan, Anna-Maria Gleixner, Anton Blanchard, Benjamin
           Herrenschmidt, Bharata B Rao, Christophe Leroy, Colin Ian King,
           Geliang Tang, Greg Kurz, Madhavan Srinivasan, Michael Ellerman,
           Michael Ellerman, Stephen Rothwell, Stewart Smith.
      
        Freescale updates from Scott:
         - "Highlights include more 8xx optimizations, device tree updates,
           and MVME7100 support."
      
        PowerNV PCI hotplug from Gavin Shan:
         - PCI: Add pcibios_setup_bridge()
         - Override pcibios_setup_bridge()
         - Remove PCI_RESET_DELAY_US
         - Move pnv_pci_ioda_setup_opal_tce_kill() around
         - Increase PE# capacity
         - Allocate PE# in reverse order
         - Create PEs in pcibios_setup_bridge()
         - Setup PE for root bus
         - Extend PCI bridge resources
         - Make pnv_ioda_deconfigure_pe() visible
         - Dynamically release PE
         - Update bridge windows on PCI plug
         - Delay populating pdn
         - Support PCI slot ID
         - Use PCI slot reset infrastructure
         - Introduce pnv_pci_get_slot_id()
         - Functions to get/set PCI slot state
         - PCI/hotplug: PowerPC PowerNV PCI hotplug driver
         - Print correct PHB type names
      
        Power9 idle support from Shreyas B. Prabhu:
         - set power_save func after the idle states are initialized
         - Use PNV_THREAD_WINKLE macro while requesting for winkle
         - make hypervisor state restore a function
         - Rename idle_power7.S to idle_book3s.S
         - Rename reusable idle functions to hardware agnostic names
         - Make pnv_powersave_common more generic
         - abstraction for saving SPRs before entering deep idle states
         - Add platform support for stop instruction
         - cpuidle/powernv: Use CPUIDLE_STATE_MAX instead of MAX_POWERNV_IDLE_STATES
         - cpuidle/powernv: cleanup cpuidle-powernv.c
         - cpuidle/powernv: Add support for POWER ISA v3 idle states
         - Use deepest stop state when cpu is offlined
      
        Power9 PMU from Madhavan Srinivasan:
         - factor out power8 pmu macros and defines
         - factor out power8 pmu functions
         - factor out power8 __init_pmu code
         - Add power9 event list macros for generic and cache events
         - Power9 PMU support
         - Export Power9 generic and cache events to sysfs
      
        Power9 preliminary interrupt & PCI support from Benjamin Herrenschmidt:
         - Add XICS emulation APIs
         - Move a few exception common handlers to make room
         - Add support for HV virtualization interrupts
         - Add mechanism to force a replay of interrupts
         - Add ICP OPAL backend
         - Discover IODA3 PHBs
         - pci: Remove obsolete SW invalidate
         - opal: Add real mode call wrappers
         - Rename TCE invalidation calls
         - Remove SWINV constants and obsolete TCE code
         - Rework accessing the TCE invalidate register
         - Fallback to OPAL for TCE invalidations
         - Use the device-tree to get available range of M64's
         - Check status of a PHB before using it
         - pci: Don't try to allocate resources that will be reassigned
      
        Other Power9:
         - Send SIGBUS on unaligned copy and paste from Chris Smart
         - Large Decrementer support from Oliver O'Halloran
         - Load Monitor Register Support from Jack Miller
      
        Performance improvements from Anton Blanchard:
         - Avoid load hit store in __giveup_fpu() and __giveup_altivec()
         - Avoid load hit store in setup_sigcontext()
         - Remove assembly versions of strcpy, strcat, strlen and strcmp
         - Align hot loops of some string functions
      
        eBPF JIT from Naveen N. Rao:
         - Fix/enhance 32-bit Load Immediate implementation
         - Optimize 64-bit Immediate loads
         - Introduce rotate immediate instructions
         - A few cleanups
         - Isolate classic BPF JIT specifics into a separate header
         - Implement JIT compiler for extended BPF
      
        Operator Panel driver from Suraj Jitindar Singh:
         - devicetree/bindings: Add binding for operator panel on FSP machines
         - Add inline function to get rc from an ASYNC_COMP opal_msg
         - Add driver for operator panel on FSP machines
      
        Sparse fixes from Daniel Axtens:
         - make some things static
         - Introduce asm-prototypes.h
         - Include headers containing prototypes
         - Use #ifdef __BIG_ENDIAN__ #else for REG_BYTE
         - kvm: Clarify __user annotations
         - Pass endianness to sparse
         - Make ppc_md.{halt, restart} __noreturn
      
        MM fixes & cleanups from Aneesh Kumar K.V:
         - radix: Update LPCR HR bit as per ISA
         - use _raw variant of page table accessors
         - Compile out radix related functions if RADIX_MMU is disabled
         - Clear top 16 bits of va only on older cpus
         - Print formation regarding the the MMU mode
         - hash: Update SDR1 size encoding as documented in ISA 3.0
         - radix: Update PID switch sequence
         - radix: Update machine call back to support new HCALL.
         - radix: Add LPID based tlb flush helpers
         - radix: Add a kernel command line to disable radix
         - Cleanup LPCR defines
      
        Boot code consolidation from Benjamin Herrenschmidt:
         - Move epapr_paravirt_early_init() to early_init_devtree()
         - cell: Don't use flat device-tree after boot
         - ge_imp3a: Don't use the flat device-tree after boot
         - mpc85xx_ds: Don't use the flat device-tree after boot
         - mpc85xx_rdb: Don't use the flat device-tree after boot
         - Don't test for machine type in rtas_initialize()
         - Don't test for machine type in smp_setup_cpu_maps()
         - dt: Add of_device_compatible_match()
         - Factor do_feature_fixup calls
         - Move 64-bit feature fixup earlier
         - Move 64-bit memory reserves to setup_arch()
         - Use a cachable DART
         - Move FW feature probing out of pseries probe()
         - Put exception configuration in a common place
         - Remove early allocation of the SMU command buffer
         - Move MMU backend selection out of platform code
         - pasemi: Remove IOBMAP allocation from platform probe()
         - mm/hash: Don't use machine_is() early during boot
         - Don't test for machine type to detect HEA special case
         - pmac: Remove spurrious machine type test
         - Move hash table ops to a separate structure
         - Ensure that ppc_md is empty before probing for machine type
         - Move 64-bit probe_machine() to later in the boot process
         - Move 32-bit probe() machine to later in the boot process
         - Get rid of ppc_md.init_early()
         - Move the boot time info banner to a separate function
         - Move setting of {i,d}cache_bsize to initialize_cache_info()
         - Move the content of setup_system() to setup_arch()
         - Move cache info inits to a separate function
         - Re-order the call to smp_setup_cpu_maps()
         - Re-order setup_panic()
         - Make a few boot functions __init
         - Merge 32-bit and 64-bit setup_arch()
      
        Other new features:
         - tty/hvc: Use IRQF_SHARED for OPAL hvc consoles from Sam Mendoza-Jonas
         - tty/hvc: Use opal irqchip interface if available from Sam Mendoza-Jonas
         - powerpc: Add module autoloading based on CPU features from Alastair D'Silva
         - crypto: vmx - Convert to CPU feature based module autoloading from Alastair D'Silva
         - Wake up kopald polling thread before waiting for events from Benjamin Herrenschmidt
         - xmon: Dump ISA 2.06 SPRs from Michael Ellerman
         - xmon: Dump ISA 2.07 SPRs from Michael Ellerman
         - Add a parameter to disable 1TB segs from Oliver O'Halloran
         - powerpc/boot: Add OPAL console to epapr wrappers from Oliver O'Halloran
         - Assign fixed PHB number based on device-tree properties from Guilherme G. Piccoli
         - pseries: Add pseries hotplug workqueue from John Allen
         - pseries: Add support for hotplug interrupt source from John Allen
         - pseries: Use kernel hotplug queue for PowerVM hotplug events from John Allen
         - pseries: Move property cloning into its own routine from Nathan Fontenot
         - pseries: Dynamic add entires to associativity lookup array from Nathan Fontenot
         - pseries: Auto-online hotplugged memory from Nathan Fontenot
         - pseries: Remove call to memblock_add() from Nathan Fontenot
      
        cxl:
         - Add set and get private data to context struct from Michael Neuling
         - make base more explicitly non-modular from Paul Gortmaker
         - Use for_each_compatible_node() macro from Wei Yongjun
         - Frederic Barrat
         - Abstract the differences between the PSL and XSL
         - Make vPHB device node match adapter's
         - Philippe Bergheaud
         - Add mechanism for delivering AFU driver specific events
         - Ignore CAPI adapters misplaced in switched slots
         - Refine slice error debug messages
         - Andrew Donnellan
         - static-ify variables to fix sparse warnings
         - PCI/hotplug: pnv_php: export symbols and move struct types needed by cxl
         - PCI/hotplug: pnv_php: handle OPAL_PCI_SLOT_OFFLINE power state
         - Add cxl_check_and_switch_mode() API to switch bi-modal cards
         - remove dead Kconfig options
         - fix potential NULL dereference in free_adapter()
         - Ian Munsie
         - Update process element after allocating interrupts
         - Add support for CAPP DMA mode
         - Fix allowing bogus AFU descriptors with 0 maximum processes
         - Fix allocating a minimum of 2 pages for the SPA
         - Fix bug where AFU disable operation had no effect
         - Workaround XSL bug that does not clear the RA bit after a reset
         - Fix NULL pointer dereference on kernel contexts with no AFU interrupts
         - powerpc/powernv: Split cxl code out into a separate file
         - Add cxl_slot_is_supported API
         - Enable bus mastering for devices using CAPP DMA mode
         - Move cxl_afu_get / cxl_afu_put to base
         - Allow a default context to be associated with an external pci_dev
         - Do not create vPHB if there are no AFU configuration records
         - powerpc/powernv: Add support for the cxl kernel api on the real phb
         - Add support for using the kernel API with a real PHB
         - Add kernel APIs to get & set the max irqs per context
         - Add preliminary workaround for CX4 interrupt limitation
         - Add support for interrupts on the Mellanox CX4
         - Workaround PE=0 hardware limitation in Mellanox CX4
         - powerpc/powernv: Fix pci-cxl.c build when CONFIG_MODULES=n
      
        selftests:
         - Test unaligned copy and paste from Chris Smart
         - Load Monitor Register Tests from Jack Miller
         - Cyril Bur
         - exec() with suspended transaction
         - Use signed long to read perf_event_paranoid
         - Fix usage message in context_switch
         - Fix generation of vector instructions/types in context_switch
         - Michael Ellerman
         - Use "Delta" rather than "Error" in normal output
         - Import Anton's mmap & futex micro benchmarks
         - Add a test for PROT_SAO"
      
      * tag 'powerpc-4.8-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux: (263 commits)
        powerpc/mm: Parenthesise IS_ENABLED() in if condition
        tty/hvc: Use opal irqchip interface if available
        tty/hvc: Use IRQF_SHARED for OPAL hvc consoles
        selftests/powerpc: exec() with suspended transaction
        powerpc: Improve comment explaining why we modify VRSAVE
        powerpc/mm: Drop unused externs for hpte_init_beat[_v3]()
        powerpc/mm: Rename hpte_init_lpar() and move the fallback to a header
        powerpc/mm: Fix build break when PPC_NATIVE=n
        crypto: vmx - Convert to CPU feature based module autoloading
        powerpc: Add module autoloading based on CPU features
        powerpc/powernv/ioda: Fix endianness when reading TCEs
        powerpc/mm: Add memory barrier in __hugepte_alloc()
        powerpc/modules: Never restore r2 for a mprofile-kernel style mcount() call
        powerpc/ftrace: Separate the heuristics for checking call sites
        powerpc: Merge 32-bit and 64-bit setup_arch()
        powerpc/64: Make a few boot functions __init
        powerpc: Re-order setup_panic()
        powerpc: Re-order the call to smp_setup_cpu_maps()
        powerpc/32: Move cache info inits to a separate function
        powerpc/64: Move the content of setup_system() to setup_arch()
        ...
      bad60e6f
    • Michael Ellerman's avatar
      random: Fix crashes with sparse node ids · dd0f0cf5
      Michael Ellerman authored
      On a system with sparse node ids, eg. a powerpc system with 4 nodes
      numbered like so:
      
        node   0: [mem 0x0000000000000000-0x00000007ffffffff]
        node   1: [mem 0x0000000800000000-0x0000000fffffffff]
        node  16: [mem 0x0000001000000000-0x00000017ffffffff]
        node  17: [mem 0x0000001800000000-0x0000001fffffffff]
      
      The code in rand_initialize() will allocate 4 pointers for the pool
      array, and initialise them correctly.
      
      However when go to use the pool, in eg. extract_crng(), we use the
      numa_node_id() to index into the array. For the higher numbered node ids
      this leads to random memory corruption, depending on what was kmalloc'ed
      adjacent to the pool array.
      
      Fix it by using nr_node_ids to size the pool array.
      
      Fixes: 1e7f583a ("random: make /dev/urandom scalable for silly userspace programs")
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      dd0f0cf5
  2. 30 Jul, 2016 10 commits
    • Linus Torvalds's avatar
      Merge tag 'nfs-for-4.8-1' of git://git.linux-nfs.org/projects/trondmy/linux-nfs · 7f155c70
      Linus Torvalds authored
      Pull NFS client updates from Trond Myklebust:
       "Highlights include:
      
        Stable bugfixes:
         - nfs: don't create zero-length requests
      
         - several LAYOUTGET bugfixes
      
        Features:
         - several performance related features
      
         - more aggressive caching when we can rely on close-to-open
           cache consistency
      
         - remove serialisation of O_DIRECT reads and writes
      
         - optimise several code paths to not flush to disk unnecessarily.
      
           However allow for the idiosyncracies of pNFS for those layout
           types that need to issue a LAYOUTCOMMIT before the metadata can
           be updated on the server.
      
         - SUNRPC updates to the client data receive path
      
         - pNFS/SCSI support RH/Fedora dm-mpath device nodes
      
         - pNFS files/flexfiles can now use unprivileged ports when
           the generic NFS mount options allow it.
      
        Bugfixes:
         - Don't use RDMA direct data placement together with data
           integrity or privacy security flavours
      
         - Remove the RDMA ALLPHYSICAL memory registration mode as
           it has potential security holes.
      
         - Several layout recall fixes to improve NFSv4.1 protocol
           compliance.
      
         - Fix an Oops in the pNFS files and flexfiles connection
           setup to the DS
      
         - Allow retry of operations that used a returned delegation
            stateid
      
         - Don't mark the inode as revalidated if a LAYOUTCOMMIT is
           outstanding
      
         - Fix writeback races in nfs4_copy_range() and
           nfs42_proc_deallocate()"
      
      * tag 'nfs-for-4.8-1' of git://git.linux-nfs.org/projects/trondmy/linux-nfs: (104 commits)
        pNFS: Actively set attributes as invalid if LAYOUTCOMMIT is outstanding
        NFSv4: Clean up lookup of SECINFO_NO_NAME
        NFSv4.2: Fix warning "variable ‘stateids’ set but not used"
        NFSv4: Fix warning "no previous prototype for ‘nfs4_listxattr’"
        SUNRPC: Fix a compiler warning in fs/nfs/clnt.c
        pNFS: Remove redundant smp_mb() from pnfs_init_lseg()
        pNFS: Cleanup - do layout segment initialisation in one place
        pNFS: Remove redundant stateid invalidation
        pNFS: Remove redundant pnfs_mark_layout_returned_if_empty()
        pNFS: Clear the layout metadata if the server changed the layout stateid
        pNFS: Cleanup - don't open code pnfs_mark_layout_stateid_invalid()
        NFS: pnfs_mark_matching_lsegs_return() should match the layout sequence id
        pNFS: Do not set plh_return_seq for non-callback related layoutreturns
        pNFS: Ensure layoutreturn acts as a completion for layout callbacks
        pNFS: Fix CB_LAYOUTRECALL stateid verification
        pNFS: Always update the layout barrier seqid on LAYOUTGET
        pNFS: Always update the layout stateid if NFS_LAYOUT_INVALID_STID is set
        pNFS: Clear the layout return tracking on layout reinitialisation
        pNFS: LAYOUTRETURN should only update the stateid if the layout is valid
        nfs: don't create zero-length requests
        ...
      7f155c70
    • Linus Torvalds's avatar
      Merge branch 'x86-microcode-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · d761f3ed
      Linus Torvalds authored
      Pull x86 microcode updates from Thomas Gleixner:
      
       - more work to make the microcode loader robust
      
       - a fix for the micro code load precedence
      
       - fixes for initrd loading with randomized memory
      
       - less printk noise on SMP machines
      
      * 'x86-microcode-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/asm, x86/microcode: Add __PAGE_OFFSET_BASE define on 32-bit
        x86/microcode/intel: Fix initrd loading with CONFIG_RANDOMIZE_MEMORY=y
        x86/microcode: Remove unused symbol exports
        x86/microcode/intel: Do not issue microcode updates messages on each CPU
        Documentation/microcode: Document some aspects for more clarity
        x86/microcode/AMD: Make amd_ucode_patch[] static
        x86/microcode/intel: Unexport save_mc_for_early()
        x86/microcode/intel: Rename load_microcode_early() to find_microcode_patch()
        x86/microcode: Propagate save_microcode_in_initrd() retval
        x86/microcode: Get rid of find_cpio_data()'s dummy offset arg
        lib/cpio: Make find_cpio_data()'s offset arg optional
        x86/microcode: Fix suspend to RAM with builtin microcode
        x86/microcode: Fix loading precedence
      d761f3ed
    • Linus Torvalds's avatar
      Merge branch 'x86-cpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · b325e04e
      Linus Torvalds authored
      Pull x86 cpufeature updates from Thomas Gleixner:
      
       - a workaround for the MONITOR instruction erratum of Goldmont CPUs
      
       - small fixes and cleanups here and there
      
      * 'x86-cpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/cpu: Add workaround for MONITOR instruction erratum on Goldmont based CPUs
        x86/cpu: Rename "WESTMERE2" family to "NEHALEM_G"
        x86/amd_nb: Clean up init path
        x86/cpufeature: Add helper macro for mask check macros
        x86/cpufeature: Make sure DISABLED/REQUIRED macros are updated
        x86/cpufeature: Update cpufeaure macros
      b325e04e
    • Linus Torvalds's avatar
      Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 7f7d5564
      Linus Torvalds authored
      Pull perf fixes from Thomas Gleixner:
       "This update contains:
      
         - a fix for the bpf tools to use the new EM_BPF code
      
         - a fix for the module parser of perf to retrieve the
           proper text start address
      
         - add str_error_c to libapi to avoid linking against
           tools/lib/str_error_r.o"
      
      * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        tools lib api: Add str_error_c to libapi
        perf s390: Fix 'start' address of module's map
        tools lib bpf: Use official ELF e_machine value
      7f7d5564
    • Linus Torvalds's avatar
      Merge branch 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 228ffba2
      Linus Torvalds authored
      Pull misc fixes from Thomas Gleixner:
       "This update contains:
      
         - a fix for stomp-machine so the nmi_watchdog wont trigger on the cpu
           waiting for the others to execute the callback
      
         - various fixes and updates to objtool including an resync of the
           instruction decoder to match the kernel's decoder"
      
      * 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        objtool: Un-capitalize "Warning" for out-of-sync instruction decoder
        objtool: Resync x86 instruction decoder with the kernel's
        objtool: Support new GCC 6 switch jump table pattern
        stop_machine: Touch_nmi_watchdog() after MULTI_STOP_PREPARE
        objtool: Add 'fixdep' to objtool/.gitignore
      228ffba2
    • Linus Torvalds's avatar
      Merge tag 'devicetree-for-4.8' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux · f64d6e2a
      Linus Torvalds authored
      Pull DeviceTree updates from Rob Herring:
      
       - remove most of_platform_populate() calls in arch code.  Now the DT
         core code calls it in the default case and platforms only need to
         call it if they have special needs
      
       - use pr_fmt on all the DT core print statements
      
       - CoreSight binding doc improvements to block name descriptions
      
       - add dt_to_config script which can parse dts files and list
         corresponding kernel config options
      
       - fix memory leak hit with a PowerMac DT
      
       - correct a bunch of STMicro compatible strings to use the correct
         vendor prefix
      
       - fix DA9052 PMIC binding doc to match what is actually used in dts
         files
      
      * tag 'devicetree-for-4.8' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux: (35 commits)
        documentation: da9052: Update regulator bindings names to match DA9052/53 DTS expectations
        xtensa: Partially Revert "xtensa: Remove unnecessary of_platform_populate with default match table"
        xtensa: Fix build error due to missing include file
        MIPS: ath79: Add missing include file
        Fix spelling errors in Documentation/devicetree
        ARM: dts: fix STMicroelectronics compatible strings
        powerpc/dts: fix STMicroelectronics compatible strings
        Documentation: dt: i2c: use correct STMicroelectronics vendor prefix
        scripts/dtc: dt_to_config - kernel config options for a devicetree
        of: fdt: mark unflattened tree as detached
        of: overlay: add resolver error prints
        coresight: document binding acronyms
        Documentation/devicetree: document cavium-pip rx-delay/tx-delay properties
        of: use pr_fmt prefix for all console printing
        of/irq: Mark initialised interrupt controllers as populated
        of: fix memory leak related to safe_name()
        Revert "of/platform: export of_default_bus_match_table"
        of: unittest: use of_platform_default_populate() to populate default bus
        memory: omap-gpmc: use of_platform_default_populate() to populate default bus
        bus: uniphier-system-bus: use of_platform_default_populate() to populate default bus
        ...
      f64d6e2a
    • Linus Torvalds's avatar
      Merge tag 'clk-for-linus-4.8' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux · 1056c9bd
      Linus Torvalds authored
      Pull clk updates from Michael Turquette:
       "The bulk of the changes are updates and fixes to existing clk provider
        drivers, along with a pretty standard number of new drivers.  The core
        recieved a small number of updates as well.
      
        Core changes of note:
         - removed CLK_IS_ROOT flag
      
        New clk provider drivers:
         - Renesas r8a7796 clock pulse generator / module standby and
           software reset
         - Allwinner sun8i H3 clock controller unit
         - AmLogic meson8b clock controller (rewritten)
         - AmLogic gxbb clock controller
         - support for some new ICs was added by simple changes to static
           data tables for chips sharing the same family
      
        Driver updates of note:
         - the Allwinner sunxi clock driver infrastucture was rewritten to
           comform to the state of the art at drivers/clk/sunxi-ng.  The old
           implementation is still supported for backwards compatibility with
           the DT ABI"
      
      * tag 'clk-for-linus-4.8' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux: (162 commits)
        clk: Makefile: re-sort and clean up
        Revert "clk: gxbb: expose CLKID_MMC_PCLK"
        clk: samsung: Allow modular build of the Audio Subsystem CLKCON driver
        clk: samsung: make clk-s5pv210-audss explicitly non-modular
        clk: exynos5433: remove CLK_IGNORE_UNUSED flag from SPI clocks
        clk: oxnas: Add hardware dependencies
        clk: imx7d: do not set parent of ethernet time/ref clocks
        ARM: dt: sun8i: switch the H3 to the new CCU driver
        clk: sunxi-ng: h3: Fix Kconfig symbol typo
        clk: sunxi-ng: h3: Fix audio clock divider offset
        clk: sunxi-ng: Add H3 clocks
        clk: sunxi-ng: Add N-K-M-P factor clock
        clk: sunxi-ng: Add N-K-M Factor clock
        clk: sunxi-ng: Add N-M-factor clock support
        clk: sunxi-ng: Add N-K-factor clock support
        clk: sunxi-ng: Add M-P factor clock support
        clk: sunxi-ng: Add divider
        clk: sunxi-ng: Add phase clock support
        clk: sunxi-ng: Add mux clock support
        clk: sunxi-ng: Add gate clock support
        ...
      1056c9bd
    • Michael Ellerman's avatar
      Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/scottwood/linux into next · 719dbb2d
      Michael Ellerman authored
      Freescale updates from Scott:
      
      "Highlights include more 8xx optimizations, device tree updates,
      and MVME7100 support."
      719dbb2d
    • Linus Torvalds's avatar
      Merge branch 'stable-4.8' of git://git.infradead.org/users/pcmoore/audit · 797cee98
      Linus Torvalds authored
      Pull audit updates from Paul Moore:
       "Six audit patches for 4.8.
      
        There are a couple of style and minor whitespace tweaks for the logs,
        as well as a minor fixup to catch errors on user filter rules, however
        the major improvements are a fix to the s390 syscall argument masking
        code (reviewed by the nice s390 folks), some consolidation around the
        exclude filtering (less code, always a win), and a double-fetch fix
        for recording the execve arguments"
      
      * 'stable-4.8' of git://git.infradead.org/users/pcmoore/audit:
        audit: fix a double fetch in audit_log_single_execve_arg()
        audit: fix whitespace in CWD record
        audit: add fields to exclude filter by reusing user filter
        s390: ensure that syscall arguments are properly masked on s390
        audit: fix some horrible switch statement style crimes
        audit: fixup: log on errors from filter user rules
      797cee98
    • Linus Torvalds's avatar
      Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security · 7a1e8b80
      Linus Torvalds authored
      Pull security subsystem updates from James Morris:
       "Highlights:
      
         - TPM core and driver updates/fixes
         - IPv6 security labeling (CALIPSO)
         - Lots of Apparmor fixes
         - Seccomp: remove 2-phase API, close hole where ptrace can change
           syscall #"
      
      * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security: (156 commits)
        apparmor: fix SECURITY_APPARMOR_HASH_DEFAULT parameter handling
        tpm: Add TPM 2.0 support to the Nuvoton i2c driver (NPCT6xx family)
        tpm: Factor out common startup code
        tpm: use devm_add_action_or_reset
        tpm2_i2c_nuvoton: add irq validity check
        tpm: read burstcount from TPM_STS in one 32-bit transaction
        tpm: fix byte-order for the value read by tpm2_get_tpm_pt
        tpm_tis_core: convert max timeouts from msec to jiffies
        apparmor: fix arg_size computation for when setprocattr is null terminated
        apparmor: fix oops, validate buffer size in apparmor_setprocattr()
        apparmor: do not expose kernel stack
        apparmor: fix module parameters can be changed after policy is locked
        apparmor: fix oops in profile_unpack() when policy_db is not present
        apparmor: don't check for vmalloc_addr if kvzalloc() failed
        apparmor: add missing id bounds check on dfa verification
        apparmor: allow SYS_CAP_RESOURCE to be sufficient to prlimit another task
        apparmor: use list_next_entry instead of list_entry_next
        apparmor: fix refcount race when finding a child profile
        apparmor: fix ref count leak when profile sha1 hash is read
        apparmor: check that xindex is in trans_table bounds
        ...
      7a1e8b80
  3. 29 Jul, 2016 15 commits
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace · a867d734
      Linus Torvalds authored
      Pull userns vfs updates from Eric Biederman:
       "This tree contains some very long awaited work on generalizing the
        user namespace support for mounting filesystems to include filesystems
        with a backing store.  The real world target is fuse but the goal is
        to update the vfs to allow any filesystem to be supported.  This
        patchset is based on a lot of code review and testing to approach that
        goal.
      
        While looking at what is needed to support the fuse filesystem it
        became clear that there were things like xattrs for security modules
        that needed special treatment.  That the resolution of those concerns
        would not be fuse specific.  That sorting out these general issues
        made most sense at the generic level, where the right people could be
        drawn into the conversation, and the issues could be solved for
        everyone.
      
        At a high level what this patchset does a couple of simple things:
      
         - Add a user namespace owner (s_user_ns) to struct super_block.
      
         - Teach the vfs to handle filesystem uids and gids not mapping into
           to kuids and kgids and being reported as INVALID_UID and
           INVALID_GID in vfs data structures.
      
        By assigning a user namespace owner filesystems that are mounted with
        only user namespace privilege can be detected.  This allows security
        modules and the like to know which mounts may not be trusted.  This
        also allows the set of uids and gids that are communicated to the
        filesystem to be capped at the set of kuids and kgids that are in the
        owning user namespace of the filesystem.
      
        One of the crazier corner casees this handles is the case of inodes
        whose i_uid or i_gid are not mapped into the vfs.  Most of the code
        simply doesn't care but it is easy to confuse the inode writeback path
        so no operation that could cause an inode write-back is permitted for
        such inodes (aka only reads are allowed).
      
        This set of changes starts out by cleaning up the code paths involved
        in user namespace permirted mounts.  Then when things are clean enough
        adds code that cleanly sets s_user_ns.  Then additional restrictions
        are added that are possible now that the filesystem superblock
        contains owner information.
      
        These changes should not affect anyone in practice, but there are some
        parts of these restrictions that are changes in behavior.
      
         - Andy's restriction on suid executables that does not honor the
           suid bit when the path is from another mount namespace (think
           /proc/[pid]/fd/) or when the filesystem was mounted by a less
           privileged user.
      
         - The replacement of the user namespace implicit setting of MNT_NODEV
           with implicitly setting SB_I_NODEV on the filesystem superblock
           instead.
      
           Using SB_I_NODEV is a stronger form that happens to make this state
           user invisible.  The user visibility can be managed but it caused
           problems when it was introduced from applications reasonably
           expecting mount flags to be what they were set to.
      
        There is a little bit of work remaining before it is safe to support
        mounting filesystems with backing store in user namespaces, beyond
        what is in this set of changes.
      
         - Verifying the mounter has permission to read/write the block device
           during mount.
      
         - Teaching the integrity modules IMA and EVM to handle filesystems
           mounted with only user namespace root and to reduce trust in their
           security xattrs accordingly.
      
         - Capturing the mounters credentials and using that for permission
           checks in d_automount and the like.  (Given that overlayfs already
           does this, and we need the work in d_automount it make sense to
           generalize this case).
      
        Furthermore there are a few changes that are on the wishlist:
      
         - Get all filesystems supporting posix acls using the generic posix
           acls so that posix_acl_fix_xattr_from_user and
           posix_acl_fix_xattr_to_user may be removed.  [Maintainability]
      
         - Reducing the permission checks in places such as remount to allow
           the superblock owner to perform them.
      
         - Allowing the superblock owner to chown files with unmapped uids and
           gids to something that is mapped so the files may be treated
           normally.
      
        I am not considering even obvious relaxations of permission checks
        until it is clear there are no more corner cases that need to be
        locked down and handled generically.
      
        Many thanks to Seth Forshee who kept this code alive, and putting up
        with me rewriting substantial portions of what he did to handle more
        corner cases, and for his diligent testing and reviewing of my
        changes"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace: (30 commits)
        fs: Call d_automount with the filesystems creds
        fs: Update i_[ug]id_(read|write) to translate relative to s_user_ns
        evm: Translate user/group ids relative to s_user_ns when computing HMAC
        dquot: For now explicitly don't support filesystems outside of init_user_ns
        quota: Handle quota data stored in s_user_ns in quota_setxquota
        quota: Ensure qids map to the filesystem
        vfs: Don't create inodes with a uid or gid unknown to the vfs
        vfs: Don't modify inodes with a uid or gid unknown to the vfs
        cred: Reject inodes with invalid ids in set_create_file_as()
        fs: Check for invalid i_uid in may_follow_link()
        vfs: Verify acls are valid within superblock's s_user_ns.
        userns: Handle -1 in k[ug]id_has_mapping when !CONFIG_USER_NS
        fs: Refuse uid/gid changes which don't map into s_user_ns
        selinux: Add support for unprivileged mounts from user namespaces
        Smack: Handle labels consistently in untrusted mounts
        Smack: Add support for unprivileged mounts from user namespaces
        fs: Treat foreign mounts as nosuid
        fs: Limit file caps to the user namespace of the super block
        userns: Remove the now unnecessary FS_USERNS_DEV_MOUNT flag
        userns: Remove implicit MNT_NODEV fragility.
        ...
      a867d734
    • Steve Twiss's avatar
      documentation: da9052: Update regulator bindings names to match DA9052/53 DTS expectations · 099c0cbd
      Steve Twiss authored
      Buck and LDO binding name changes.
      
      The binding names for the regulators have been changed to match the current
      expectation from existing device tree source files.
      
      This fix rectifies the disparity between what currently exists in some
      .dts[i] board files and what is listed in this binding document. This
      change re-aligns those differences and also brings the binding document
      in-line with the expectations of the product datasheet from Dialog
      Semiconductor.
      
      Bucks and LDOs now follow the expected notation:
      { buck1, buck2, buck3, buck4 }
      { ldo1, ldo2, ldo3, ldo4, ldo5, ldo6, ldo7, ldo8, ldo9, ldo10 }
      Signed-off-by: default avatarSteve Twiss <stwiss.opensource@diasemi.com>
      Signed-off-by: default avatarRob Herring <robh@kernel.org>
      099c0cbd
    • Linus Torvalds's avatar
      Merge tag 'pm-urgent-4.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 601f887d
      Linus Torvalds authored
      Pull power management fix from Rafael Wysocki:
       "Fix a nasty (and really hard to debug) memory corruption during resume
        from hibernation on x86-64 (that leads to a kernel panic most of the
        time) due to the use of a stale stack pointer value in FRAME_BEGIN
        (Josh Poimboeuf)"
      
      * tag 'pm-urgent-4.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        x86/power/64: Fix hibernation return address corruption
      601f887d
    • Linus Torvalds's avatar
      Merge branch 'for-4.7-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup · 574c7e23
      Linus Torvalds authored
      Pull more cgroup updates from Tejun Heo:
       "I forgot to include the patches which got applied to for-4.7-fixes
        late during last cycle.
      
        Eric's three patches fix bugs introduced with the namespace support"
      
      * 'for-4.7-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup:
        cgroupns: Only allow creation of hierarchies in the initial cgroup namespace
        cgroupns: Close race between cgroup_post_fork and copy_cgroup_ns
        cgroupns: Fix the locking in copy_cgroup_ns
      574c7e23
    • Linus Torvalds's avatar
      Merge branch 'smp-hotplug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · a6408f6c
      Linus Torvalds authored
      Pull smp hotplug updates from Thomas Gleixner:
       "This is the next part of the hotplug rework.
      
         - Convert all notifiers with a priority assigned
      
         - Convert all CPU_STARTING/DYING notifiers
      
           The final removal of the STARTING/DYING infrastructure will happen
           when the merge window closes.
      
        Another 700 hundred line of unpenetrable maze gone :)"
      
      * 'smp-hotplug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (70 commits)
        timers/core: Correct callback order during CPU hot plug
        leds/trigger/cpu: Move from CPU_STARTING to ONLINE level
        powerpc/numa: Convert to hotplug state machine
        arm/perf: Fix hotplug state machine conversion
        irqchip/armada: Avoid unused function warnings
        ARC/time: Convert to hotplug state machine
        clocksource/atlas7: Convert to hotplug state machine
        clocksource/armada-370-xp: Convert to hotplug state machine
        clocksource/exynos_mct: Convert to hotplug state machine
        clocksource/arm_global_timer: Convert to hotplug state machine
        rcu: Convert rcutree to hotplug state machine
        KVM/arm/arm64/vgic-new: Convert to hotplug state machine
        smp/cfd: Convert core to hotplug state machine
        x86/x2apic: Convert to CPU hotplug state machine
        profile: Convert to hotplug state machine
        timers/core: Convert to hotplug state machine
        hrtimer: Convert to hotplug state machine
        x86/tboot: Convert to hotplug state machine
        arm64/armv8 deprecated: Convert to hotplug state machine
        hwtracing/coresight-etm4x: Convert to hotplug state machine
        ...
      a6408f6c
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/ide · 1a81a8f2
      Linus Torvalds authored
      Pull IDE updates from David Miller:
       "Just a couple small bug fixes, nothing overly exciting in here"
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/ide:
        ide: missing break statement in set_timings_mdma()
        ide: hpt366: fix incorrect mask when checking at cmd_high_time
        ide-tape: fix misprint in failure handling in idetape_init()
        cmd640: add __init attribute
      1a81a8f2
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc · 86505fc0
      Linus Torvalds authored
      Pull sparc updates from David Miller:
      
       1) Double spin lock bug in sunhv serial driver, from Dan Carpenter.
      
       2) Use correct RSS estimate when determining whether to grow the huge
          TSB or not, from Mike Kravetz.
      
       3) Don't use full three level page tables for hugepages, PMD level is
          sufficient.  From Nitin Gupta.
      
       4) Mask out extraneous bits from TSB_TAG_ACCESS register, we only want
          the address bits.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc:
        sparc64: Trim page tables for 8M hugepages
        sparc64 mm: Fix base TSB sizing when hugetlb pages are used
        sparc: serial: sunhv: fix a double lock bug
        sparc32: off by ones in BUG_ON()
        sparc: Don't leak context bits into thread->fault_address
      86505fc0
    • Linus Torvalds's avatar
      Merge tag 'arc-4.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc · 9d3bc3d4
      Linus Torvalds authored
      Pull ARC updates from Vineet Gupta:
       "Things have been calm here - nothing much except for a few fixes"
      
      * tag 'arc-4.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc:
        ARC: mm: don't loose PTE_SPECIAL in pte_modify()
        ARC: dma: fix address translation in arc_dma_free
        ARC: typo fix in mm/ioremap.c
        ARC: fix linux-next build breakage
      9d3bc3d4
    • Rafael J. Wysocki's avatar
      Merge branch 'pm-sleep' · e148d0f8
      Rafael J. Wysocki authored
      * pm-sleep:
        x86/power/64: Fix hibernation return address corruption
      e148d0f8
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/egtvedt/linux-avr32 · befff3bf
      Linus Torvalds authored
      Pull AVR32 updates from Hans-Christian Noren Egtvedt.
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/egtvedt/linux-avr32:
        avr32: off by one in at32_init_pio()
        avr32: fixup code style in unistd.h and syscall_table.S
        avr32: wire up preadv2 and pwritev2 syscalls
      befff3bf
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm · b5f00d18
      Linus Torvalds authored
      Pull ARM updates from Russell King:
       "Included in this update are:
      
         - Patches from Gregory Clement to fix the coherent DMA cases in our
           dma-mapping code.
      
         - A number of CPU errata updates and fixes.
      
         - ARM cpuidle improvements from Jisheng Zhang.
      
         - Fix from Kees for the location of _etext.
      
         - Cleanups from Masahiro Yamada to avoid duplicated messages during
           the kernel build, and remove CONFIG_ARCH_HAS_BARRIERS.
      
         - Remove a udelay loop limitation, allowing for faster CPUs to
           calibrate the delay correctly.
      
         - Cleanup some left-overs from the SW PAN implementation.
      
         - Ensure that a modified address limit is not visible to exception
           handlers"
      
      * 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm: (21 commits)
        ARM: 8586/1: cpuidle: make arm_cpuidle_suspend() a bit more efficient
        ARM: 8585/1: cpuidle: fix !cpuidle_ops[cpu].init case during init
        ARM: 8561/4: dma-mapping: Fix the coherent case when iommu is used
        ARM: 8561/3: dma-mapping: Don't use outer_flush_range when the L2C is coherent
        ARM: 8560/1: errata: Workaround errata A12 825619 / A17 852421
        ARM: 8559/1: errata: Workaround erratum A12 821420
        ARM: 8558/1: errata: Workaround errata A12 818325/852422 A17 852423
        ARM: save and reset the address limit when entering an exception
        ARM: 8577/1: Fix Cortex-A15 798181 errata initialization
        ARM: 8584/1: floppy: avoid gcc-6 warning
        ARM: 8583/1: mm: fix location of _etext
        ARM: 8582/1: remove unused CONFIG_ARCH_HAS_BARRIERS
        ARM: 8306/1: loop_udelay: remove bogomips value limitation
        ARM: 8581/1: add missing <asm/prom.h> to arch/arm/kernel/devtree.c
        ARM: 8576/1: avoid duplicating "Kernel: arch/arm/boot/*Image is ready"
        ARM: 8556/1: on a generic DT system: do not touch l2x0
        ARM: uaccess: remove put_user() code duplication
        ARM: 8580/1: Remove orphaned __addr_ok() definition
        ARM: get rid of horrible *(unsigned int *)(regs + 1)
        ARM: introduce svc_pt_regs structure
        ...
      b5f00d18
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse · 27ae0c41
      Linus Torvalds authored
      Pull fuse updates from Miklos Szeredi:
       "This fixes error propagation from writeback to fsync/close for
        writeback cache mode as well as adding a missing capability flag to
        the INIT message.  The rest are cleanups.
      
        (The commits are recent but all the code actually sat in -next for a
        while now.  The recommits are due to conflict avoidance and the
        addition of Cc: stable@...)"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse:
        fuse: use filemap_check_errors()
        mm: export filemap_check_errors() to modules
        fuse: fix wrong assignment of ->flags in fuse_send_init()
        fuse: fuse_flush must check mapping->flags for errors
        fuse: fsync() did not return IO errors
        fuse: don't mess with blocking signals
        new helper: wait_event_killable_exclusive()
        fuse: improve aio directIO write performance for size extending writes
      27ae0c41
    • Linus Torvalds's avatar
      Revert "vfs: add lookup_hash() helper" · 20d00ee8
      Linus Torvalds authored
      This reverts commit 3c9fe8cd.
      
      As Miklos points out in commit c1b2cc1a, the "lookup_hash()" helper
      is now unused, and in fact, with the hash salting changes, since the
      hash of a dentry name now depends on the directory dentry it is in, the
      helper function isn't even really likely to be useful.
      
      So rather than keep it around in case somebody else might end up finding
      a use for it, let's just remove the helper and not trick people into
      thinking it might be a useful thing.
      
      For example, I had obviously completely missed how the helper didn't
      follow the normal dentry hashing patterns, and how the hash salting
      patch broke overlayfs.  Things would quietly build and look sane, but
      not work.
      Suggested-by: default avatarMiklos Szeredi <mszeredi@redhat.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      20d00ee8
    • Linus Torvalds's avatar
      Merge branch 'overlayfs-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs · e7b4f2d8
      Linus Torvalds authored
      Pull overlayfs update from Miklos Szeredi:
       "First of all, this fixes a regression in overlayfs introduced by the
        dentry hash salting.  I've moved the patch fixing this to the front of
        the queue, so if (god forbid) something needs to be bisected in
        overlayfs this regression won't interfere with that.
      
        The biggest part is preparation for selinux support, done by Vivek
        Goyal.  Essentially this makes all operations on underlying
        filesystems be done with credentials of mounter.  This makes
        everything nicely consistent.
      
        There are also fixes for a number of known and recently discovered
        non-standard behavior (thanks to Eryu Guan for testing and improving
        the test suites)"
      
      * 'overlayfs-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs: (23 commits)
        ovl: simplify empty checking
        qstr: constify instances in overlayfs
        ovl: clear nlink on rmdir
        ovl: disallow overlayfs as upperdir
        ovl: fix warning
        ovl: remove duplicated include from super.c
        ovl: append MAY_READ when diluting write checks
        ovl: dilute permission checks on lower only if not special file
        ovl: fix POSIX ACL setting
        ovl: share inode for hard link
        ovl: store real inode pointer in ->i_private
        ovl: permission: return ECHILD instead of ENOENT
        ovl: update atime on upper
        ovl: fix sgid on directory
        ovl: simplify permission checking
        ovl: do not require mounter to have MAY_WRITE on lower
        ovl: do operations on underlying file system in mounter's context
        ovl: modify ovl_permission() to do checks on two inodes
        ovl: define ->get_acl() for overlay inodes
        ovl: move some common code in a function
        ...
      e7b4f2d8
    • Linus Torvalds's avatar
      Merge tag 'freevxfs-for-4.8' of git://git.infradead.org/users/hch/freevxfs · 0a7736d0
      Linus Torvalds authored
      Pull freevxfs updates from Christoph Hellwig:
       "Support for foreign endianess and HP-UP superblocks from
        Krzysztof Błaszkowski"
      
      * tag 'freevxfs-for-4.8' of git://git.infradead.org/users/hch/freevxfs:
        freevxfs: update Kconfig information
        freevxfs: refactor readdir and lookup code
        freevxfs: fix lack of inode initialization
        freevxfs: fix memory leak in vxfs_read_fshead()
        freevxfs: update documentation and cresdits for HP-UX support
        freevxfs: implement ->alloc_inode and ->destroy_inode
        freevxfs: avoid the need for forward declaring the super operations
        freevxfs: move VFS inode allocation into vxfs_blkiget and vxfs_stiget
        freevxfs: remove vxfs_put_fake_inode
        freevxfs: handle big endian HP-UX file systems
      0a7736d0