1. 18 Nov, 2016 1 commit
  2. 15 Nov, 2016 1 commit
  3. 12 Nov, 2016 6 commits
  4. 27 Oct, 2016 3 commits
    • Nicholas Piggin's avatar
      powerpc/64s: relocation, register save fixes for system reset interrupt · fb479e44
      Nicholas Piggin authored
      This patch does a couple of things. First of all, powernv immediately
      explodes when running a relocated kernel, because the system reset
      exception for handling sleeps does not do correct relocated branches.
      
      Secondly, the sleep handling code trashes the condition and cfar
      registers, which we would like to preserve for debugging purposes (for
      non-sleep case exception).
      
      This patch changes the exception to use the standard format that saves
      registers before any tests or branches are made. It adds the test for
      idle-wakeup as an "extra" to break out of the normal exception path.
      Then it branches to a relocated idle handler that calls the various
      idle handling functions.
      
      After this patch, POWER8 CPU simulator now boots powernv kernel that is
      running at non-zero.
      
      Fixes: 948cf67c ("powerpc: Add NAP mode support on Power7 in HV mode")
      Cc: stable@vger.kernel.org # v3.0+
      Signed-off-by: default avatarNicholas Piggin <npiggin@gmail.com>
      Acked-by: default avatarGautham R. Shenoy <ego@linux.vnet.ibm.com>
      Acked-by: default avatarBalbir Singh <bsingharora@gmail.com>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      fb479e44
    • Aneesh Kumar K.V's avatar
      powerpc/mm/radix: Use tlbiel only if we ever ran on the current cpu · bd77c449
      Aneesh Kumar K.V authored
      Before this patch, we used tlbiel, if we ever ran only on this core.
      That was mostly derived from the nohash usage of the same. But is
      incorrect, the ISA 3.0 clarifies tlbiel such that:
      
      "All TLB entries that have all of the following properties are made
      invalid on the thread executing the tlbiel instruction"
      
      ie. tlbiel only invalidates TLB entries on the current thread. So if the
      mm has been used on any other thread (aka. cpu) then we must broadcast
      the invalidate.
      
      This bug could lead to invalid TLB entries if a program runs on multiple
      threads of a core.
      
      Hence use tlbiel, if we only ever ran on only the current cpu.
      
      Fixes: 1a472c9d ("powerpc/mm/radix: Add tlbflush routines")
      Cc: stable@vger.kernel.org # v4.7+
      Signed-off-by: default avatarAneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      bd77c449
    • Valentin Rothberg's avatar
      powerpc/process: Fix CONFIG_ALIVEC typo in restore_tm_state() · 39715bf9
      Valentin Rothberg authored
      It should be ALTIVEC, not ALIVEC.
      
      Cyril explains: If a thread performs a transaction with altivec and then
      gets preempted for whatever reason, this bug may cause the kernel to not
      re-enable altivec when that thread runs again. This will result in an
      altivec unavailable fault, when that fault happens inside a user
      transaction the kernel has no choice but to enable altivec and doom the
      transaction.
      
      The result is that transactions using altivec may get aborted more often
      than they should.
      
      The difficulty in catching this with a selftest is my deliberate use of
      the word may above. Optimisations to avoid FPU/altivec/VSX faults mean
      that the kernel will always leave them on for 255 switches. This code
      prevents the kernel turning it off if it got to the 256th switch (and
      userspace was transactional).
      
      Fixes: dc16b553 ("powerpc: Always restore FPU/VEC/VSX if hardware transactional memory in use")
      Reviewed-by: default avatarCyril Bur <cyrilbur@gmail.com>
      Signed-off-by: default avatarValentin Rothberg <valentinrothberg@gmail.com>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      39715bf9
  5. 24 Oct, 2016 3 commits
    • Paul Mackerras's avatar
      powerpc/64: Fix race condition in setting lock bit in idle/wakeup code · 09b7e37b
      Paul Mackerras authored
      This fixes a race condition where one thread that is entering or
      leaving a power-saving state can inadvertently ignore the lock bit
      that was set by another thread, and potentially also clear it.
      The core_idle_lock_held function is called when the lock bit is
      seen to be set.  It polls the lock bit until it is clear, then
      does a lwarx to load the word containing the lock bit and thread
      idle bits so it can be updated.  However, it is possible that the
      value loaded with the lwarx has the lock bit set, even though an
      immediately preceding lwz loaded a value with the lock bit clear.
      If this happens then we go ahead and update the word despite the
      lock bit being set, and when called from pnv_enter_arch207_idle_mode,
      we will subsequently clear the lock bit.
      
      No identifiable misbehaviour has been attributed to this race.
      
      This fixes it by checking the lock bit in the value loaded by the
      lwarx.  If it is set then we just go back and keep on polling.
      
      Fixes: b32aadc1 ("powerpc/powernv: Fix race in updating core_idle_state")
      Cc: stable@vger.kernel.org # v4.2+
      Signed-off-by: default avatarPaul Mackerras <paulus@ozlabs.org>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      09b7e37b
    • Paul Mackerras's avatar
      powerpc/64: Re-fix race condition between going idle and entering guest · 56c46222
      Paul Mackerras authored
      Commit 8117ac6a ("powerpc/powernv: Switch off MMU before entering
      nap/sleep/rvwinkle mode", 2014-12-10) fixed a race condition where one
      thread entering a KVM guest could switch the MMU context to the guest
      while another thread was still in host kernel context with the MMU on.
      That commit moved the point where a thread entering a power-saving
      mode set its kvm_hstate.hwthread_state field in its PACA to
      KVM_HWTHREAD_IN_IDLE from a point where the MMU was on to after the
      MMU had been switched off.  That commit also added a comment
      explaining that we have to switch to real mode before setting
      hwthread_state to avoid this race.
      
      Nevertheless, commit 4eae2c9a ("powerpc/powernv: Make
      pnv_powersave_common more generic", 2016-07-08) subsequently moved
      the setting of hwthread_state back to a point where the MMU is on,
      thus reintroducing the race, despite the comment saying that this
      should not be done being included in full in the context lines of
      the patch that did it.
      
      This fixes the race again and adds a bigger and shoutier comment
      explaining the potential race condition.
      
      Fixes: 4eae2c9a ("powerpc/powernv: Make pnv_powersave_common more generic")
      Cc: stable@vger.kernel.org # v4.8+
      Signed-off-by: default avatarPaul Mackerras <paulus@ozlabs.org>
      Reviewed-by: default avatarShreyas B. Prabhu <shreyasbp@gmail.com>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      56c46222
    • Vaibhav Jain's avatar
      cxl: Fix leaking pid refs in some error paths · a05b82d5
      Vaibhav Jain authored
      In some error paths in functions cxl_start_context and
      afu_ioctl_start_work pid references to the current & group-leader tasks
      can leak after they are taken. This patch fixes these error paths to
      release these pid references before exiting the error path.
      
      Fixes: 7b8ad495 ("cxl: Fix DSI misses when the context owning task exits")
      Cc: stable@vger.kernel.org # v4.5+
      Reviewed-by: default avatarAndrew Donnellan <andrew.donnellan@au1.ibm.com>
      Reported-by: default avatarFrederic Barrat <fbarrat@linux.vnet.ibm.com>
      Signed-off-by: default avatarVaibhav Jain <vaibhav@linux.vnet.ibm.com>
      Acked-by: default avatarFrederic Barrat <fbarrat@linux.vnet.ibm.com>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      a05b82d5
  6. 21 Oct, 2016 2 commits
    • Segher Boessenkool's avatar
      powerpc: Convert cmp to cmpd in idle enter sequence · 80f23935
      Segher Boessenkool authored
      PowerPC's "cmp" instruction has four operands. Normally people write
      "cmpw" or "cmpd" for the second cmp operand 0 or 1. But, frequently
      people forget, and write "cmp" with just three operands.
      
      With older binutils this is silently accepted as if this was "cmpw",
      while often "cmpd" is wanted. With newer binutils GAS will complain
      about this for 64-bit code. For 32-bit code it still silently assumes
      "cmpw" is what is meant.
      
      In this instance the code comes directly from ISA v2.07, including the
      cmp, but cmpd is correct. Backport to stable so that new toolchains can
      build old kernels.
      
      Fixes: 948cf67c ("powerpc: Add NAP mode support on Power7 in HV mode")
      Cc: stable@vger.kernel.org # v3.0
      Reviewed-by: default avatarVaidyanathan Srinivasan <svaidy@linux.vnet.ibm.com>
      Signed-off-by: default avatarSegher Boessenkool <segher@kernel.crashing.org>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      80f23935
    • Michael Ellerman's avatar
      KVM: PPC: Book3S HV: Fix build error when SMP=n · 62623d5f
      Michael Ellerman authored
      Commit 5d375199 ("KVM: PPC: Book3S HV: Set server for passed-through
      interrupts") broke the SMP=n build:
      
        arch/powerpc/kvm/book3s_hv_rm_xics.c:758:2: error: implicit declaration of function 'get_hard_smp_processor_id'
      
      That is because we lost the implicit include of asm/smp.h, so include it
      explicitly to get the definition for get_hard_smp_processor_id().
      
      Fixes: 5d375199 ("KVM: PPC: Book3S HV: Set server for passed-through interrupts")
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      62623d5f
  7. 19 Oct, 2016 6 commits
    • Stephen Rothwell's avatar
      powerpc: Ignore the pkey system calls for now · 78914ff0
      Stephen Rothwell authored
      Eliminates warning messages:
      
      <stdin>:1316:2: warning: #warning syscall pkey_mprotect not implemented [-Wcpp]
      <stdin>:1319:2: warning: #warning syscall pkey_alloc not implemented [-Wcpp]
      <stdin>:1322:2: warning: #warning syscall pkey_free not implemented [-Wcpp]
      
      Hopefully we will remember to revert this commit if we ever implement
      them.
      Signed-off-by: default avatarStephen Rothwell <sfr@canb.auug.org.au>
      Acked-by: default avatarBalbir Singh <bsingharora@gmail.com>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      78914ff0
    • Aneesh Kumar K.V's avatar
      powerpc: Fix numa topology console print · 8467801c
      Aneesh Kumar K.V authored
      With recent update to printk, we get console output like below:
      
      [    0.550639] Brought up 160 CPUs
      [    0.550718] Node 0 CPUs:
      [    0.550721]  0
      [    0.550754] -39
      
      [    0.550794] Node 1 CPUs:
      [    0.550798]  40
      [    0.550817] -79
      
      [    0.550856] Node 16 CPUs:
      [    0.550860]  80
      [    0.550880] -119
      
      [    0.550917] Node 17 CPUs:
      [    0.550923]  120
      [    0.550942] -159
      
      Fix this by properly using pr_cont(), ie. KERN_CONT.
      Signed-off-by: default avatarAneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      8467801c
    • Michael Ellerman's avatar
      powerpc/mm: Drop dump_numa_memory_topology() · 08b5e79e
      Michael Ellerman authored
      At boot we dump the NUMA memory topology in dump_numa_memory_topology(),
      at KERN_DEBUG level, resulting in output like:
      
        Node 0 Memory: 0x0-0x100000000
        Node 1 Memory: 0x100000000-0x200000000
      
      Which is nice enough, but immediately after that we iterate over each
      node and call setup_node_data(), which also prints out the node ranges,
      at KERN_INFO, giving eg:
      
        numa: Initmem setup node 0 [mem 0x00000000-0xffffffff]
        numa: Initmem setup node 1 [mem 0x100000000-0x1ffffffff]
      
      Additionally dump_numa_memory_topology() does not use KERN_CONT
      correctly, resulting in split output lines on recent kernels.
      
      So drop dump_numa_memory_topology() as superfluous chatter.
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      Acked-by: default avatarBalbir Singh <bsingharora@gmail.com>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      08b5e79e
    • Vaibhav Jain's avatar
      cxl: Prevent adapter reset if an active context exists · 70b565bb
      Vaibhav Jain authored
      This patch prevents resetting the cxl adapter via sysfs in presence of
      one or more active cxl_context on it. This protects against an
      unrecoverable error caused by PSL owning a dirty cache line even after
      reset and host tries to touch the same cache line. In case a force reset
      of the card is required irrespective of any active contexts, the int
      value -1 can be stored in the 'reset' sysfs attribute of the card.
      
      The patch introduces a new atomic_t member named contexts_num inside
      struct cxl that holds the number of active context attached to the card
      , which is checked against '0' before proceeding with the reset. To
      prevent against a race condition where a context is activated just after
      reset check is performed, the contexts_num is atomically set to '-1'
      after reset-check to indicate that no more contexts can be activated on
      the card anymore.
      
      Before activating a context we atomically test if contexts_num is
      non-negative and if so, increment its value by one. In case the value of
      contexts_num is negative then it indicates that the card is about to be
      reset and context activation is error-ed out at that point.
      
      Fixes: 62fa19d4 ("cxl: Add ability to reset the card")
      Cc: stable@vger.kernel.org # v4.0+
      Acked-by: default avatarFrederic Barrat <fbarrat@linux.vnet.ibm.com>
      Reviewed-by: default avatarAndrew Donnellan <andrew.donnellan@au1.ibm.com>
      Signed-off-by: default avatarVaibhav Jain <vaibhav@linux.vnet.ibm.com>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      70b565bb
    • Heiner Kallweit's avatar
      powerpc/boot: Fix boot on systems with uncompressed kernel image · 65bc3ece
      Heiner Kallweit authored
      This commit broke boot on systems with an uncompressed kernel image,
      namely systems using a cuImage. On such systems the compressed boot
      image (boot wrapper, uncompressed kernel image, ..) is decompressed
      by u-boot already, therefore the boot wrapper code sees an
      uncompressed kernel image.
      
      The old decompression code silently assumed an uncompressed kernel
      image if it found no valid gzip signature, whilst the new code
      bailed out in this case.
      
      Fix this by re-introducing such a fallback if no valid compressed
      image is found.
      
      Fixes: 1b7898ee ("Use the pre-boot decompression API")
      Signed-off-by: default avatarHeiner Kallweit <hkallweit1@gmail.com>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      65bc3ece
    • Frederic Barrat's avatar
      powerpc/mm: Prevent unlikely crash in copro_calculate_slb() · d2cf909c
      Frederic Barrat authored
      If a cxl adapter faults on an invalid address for a kernel context, we
      may enter copro_calculate_slb() with a NULL mm pointer (kernel
      context) and an effective address which looks like a user
      address. Which will cause a crash when dereferencing mm. It is clearly
      an AFU bug, but there's no reason to crash either. So return an error,
      so that cxl can ack the interrupt with an address error.
      
      Fixes: 73d16a6e ("powerpc/cell: Move data segment faulting code out of cell platform")
      Cc: stable@vger.kernel.org # v3.18+
      Signed-off-by: default avatarFrederic Barrat <fbarrat@linux.vnet.ibm.com>
      Acked-by: default avatarIan Munsie <imunsie@au1.ibm.com>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      d2cf909c
  8. 15 Oct, 2016 15 commits
    • Linus Torvalds's avatar
      Linux 4.9-rc1 · 1001354c
      Linus Torvalds authored
      1001354c
    • Linus Torvalds's avatar
      Merge tag 'befs-v4.9-rc1' of git://github.com/luisbg/linux-befs · df34d04a
      Linus Torvalds authored
      Pull befs fixes from Luis de Bethencourt:
       "I recently took maintainership of the befs file system [0]. This is
        the first time I send you a git pull request, so please let me know if
        all the below is OK.
      
        Salah Triki and myself have been cleaning the code and fixing a few
        small bugs.
      
        Sorry I couldn't send this sooner in the merge window, I was waiting
        to have my GPG key signed by kernel members at ELCE in Berlin a few
        days ago."
      
      [0] https://lkml.org/lkml/2016/7/27/502
      
      * tag 'befs-v4.9-rc1' of git://github.com/luisbg/linux-befs: (39 commits)
        befs: befs: fix style issues in datastream.c
        befs: improve documentation in datastream.c
        befs: fix typos in datastream.c
        befs: fix typos in btree.c
        befs: fix style issues in super.c
        befs: fix comment style
        befs: add check for ag_shift in superblock
        befs: dump inode_size superblock information
        befs: remove unnecessary initialization
        befs: fix typo in befs_sb_info
        befs: add flags field to validate superblock state
        befs: fix typo in befs_find_key
        befs: remove unused BEFS_BT_PARMATCH
        fs: befs: remove ret variable
        fs: befs: remove in vain variable assignment
        fs: befs: remove unnecessary *befs_sb variable
        fs: befs: remove useless initialization to zero
        fs: befs: remove in vain variable assignment
        fs: befs: Insert NULL inode to dentry
        fs: befs: Remove useless calls to brelse in befs_find_brun_dblindirect
        ...
      df34d04a
    • Linus Torvalds's avatar
      Merge tag 'gcc-plugins-v4.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux · 9ffc6694
      Linus Torvalds authored
      Pull gcc plugins update from Kees Cook:
       "This adds a new gcc plugin named "latent_entropy". It is designed to
        extract as much possible uncertainty from a running system at boot
        time as possible, hoping to capitalize on any possible variation in
        CPU operation (due to runtime data differences, hardware differences,
        SMP ordering, thermal timing variation, cache behavior, etc).
      
        At the very least, this plugin is a much more comprehensive example
        for how to manipulate kernel code using the gcc plugin internals"
      
      * tag 'gcc-plugins-v4.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
        latent_entropy: Mark functions with __latent_entropy
        gcc-plugins: Add latent_entropy plugin
      9ffc6694
    • Linus Torvalds's avatar
      Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus · 133d970e
      Linus Torvalds authored
      Pull MIPS updates from Ralf Baechle:
       "This is the main MIPS pull request for 4.9:
      
        MIPS core arch code:
         - traps: 64bit kernels should read CP0_EBase 64bit
         - traps: Convert ebase to KSEG0
         - c-r4k: Drop bc_wback_inv() from icache flush
         - c-r4k: Split user/kernel flush_icache_range()
         - cacheflush: Use __flush_icache_user_range()
         - uprobes: Flush icache via kernel address
         - KVM: Use __local_flush_icache_user_range()
         - c-r4k: Fix flush_icache_range() for EVA
         - Fix -mabi=64 build of vdso.lds
         - VDSO: Drop duplicated -I*/-E* aflags
         - tracing: move insn_has_delay_slot to a shared header
         - tracing: disable uprobe/kprobe on compact branch instructions
         - ptrace: Fix regs_return_value for kernel context
         - Squash lines for simple wrapper functions
         - Move identification of VP(E) into proc.c from smp-mt.c
         - Add definitions of SYNC barrierstype values
         - traps: Ensure full EBase is written
         - tlb-r4k: If there are wired entries, don't use TLBINVF
         - Sanitise coherentio semantics
         - dma-default: Don't check hw_coherentio if device is non-coherent
         - Support per-device DMA coherence
         - Adjust MIPS64 CAC_BASE to reflect Config.K0
         - Support generating Flattened Image Trees (.itb)
         - generic: Introduce generic DT-based board support
         - generic: Convert SEAD-3 to a generic board
         - Enable hardened usercopy
         - Don't specify STACKPROTECTOR in defconfigs
      
        Octeon:
         - Delete dead code and files across the platform.
         - Change to use all memory into use by default.
         - Rename upper case variables in setup code to lowercase.
         - Delete legacy hack for broken bootloaders.
         - Leave maintaining the link state to the actual ethernet/PHY drivers.
         - Add DTS for D-Link DSR-500N.
         - Fix PCI interrupt routing on D-Link DSR-500N.
      
        Pistachio:
         - Remove ANDROID_TIMED_OUTPUT from defconfig
      
        TX39xx:
         - Move GPIO setup from .mem_setup() to .arch_init()
         - Convert to Common Clock Framework
      
        TX49xx:
         - Move GPIO setup from .mem_setup() to .arch_init()
         - Convert to Common Clock Framework
      
        txx9wdt:
         - Add missing clock (un)prepare calls for CCF
      
        BMIPS:
         - Add PW, GPIO SDHCI and NAND device node names
         - Support APPENDED_DTB
         - Add missing bcm97435svmb to DT_NONE
         - Rename bcm96358nb4ser to bcm6358-neufbox4-sercom
         - Add DT examples for BCM63268, BCM3368 and BCM6362
         - Add support for BCM3368 and BCM6362
      
        PCI
         - Reduce stack frame usage
         - Use struct list_head lists
         - Support for CONFIG_PCI_DOMAINS_GENERIC
         - Make pcibios_set_cache_line_size an initcall
         - Inline pcibios_assign_all_busses
         - Split pci.c into pci.c & pci-legacy.c
         - Introduce CONFIG_PCI_DRIVERS_LEGACY
         - Support generic drivers
      
        CPC
         - Convert bare 'unsigned' to 'unsigned int'
         - Avoid lock when MIPS CM >= 3 is present
      
        GIC:
         - Delete unused file smp-gic.c
      
        mt7620:
         - Delete unnecessary assignment for the field "owner" from PCI
      
        BCM63xx:
         - Let clk_disable() return immediately if clk is NULL
      
        pm-cps:
         - Change FSB workaround to CPU blacklist
         - Update comments on barrier instructions
         - Use MIPS standard lightweight ordering barrier
         - Use MIPS standard completion barrier
         - Remove selection of sync types
         - Add MIPSr6 CPU support
         - Support CM3 changes to Coherence Enable Register
      
        SMP:
         - Wrap call to mips_cpc_lock_other in mips_cm_lock_other
         - Introduce mechanism for freeing and allocating IPIs
      
        cpuidle:
         - cpuidle-cps: Enable use with MIPSr6 CPUs.
      
        SEAD3:
         - Rewrite to use DT and generic kernel feature.
      
        USB:
         - host: ehci-sead3: Remove SEAD-3 EHCI code
      
        FBDEV:
         - cobalt_lcdfb: Drop SEAD3 support
      
        dt-bindings:
         -  Document a binding for simple ASCII LCDs
      
        auxdisplay:
         - img-ascii-lcd: driver for simple ASCII LCD displays
      
        irqchip i8259:
         - i8259: Add domain before mapping parent irq
         - i8259: Allow platforms to override poll function
         - i8259: Remove unused i8259A_irq_pending
      
        Malta:
         - Rewrite to use DT
      
        of/platform:
         - Probe "isa" busses by default
      
        CM:
         - Print CM error reports upon bus errors
      
        Module:
         - Migrate exception table users off module.h and onto extable.h
         - Make various drivers explicitly non-modular:
         - Audit and remove any unnecessary uses of module.h
      
        mailmap:
         - Canonicalize to Qais' current email address.
      
        Documentation:
         - MIPS supports HAVE_REGS_AND_STACK_ACCESS_API
      
        Loongson1C:
         - Add CPU support for Loongson1C
         - Add board support
         - Add defconfig
         - Add RTC support for Loongson1C board
      
        All this except one Documentation fix has sat in linux-next and has
        survived Imagination's automated build test system"
      
      * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus: (127 commits)
        Documentation: MIPS supports HAVE_REGS_AND_STACK_ACCESS_API
        MIPS: ptrace: Fix regs_return_value for kernel context
        MIPS: VDSO: Drop duplicated -I*/-E* aflags
        MIPS: Fix -mabi=64 build of vdso.lds
        MIPS: Enable hardened usercopy
        MIPS: generic: Convert SEAD-3 to a generic board
        MIPS: generic: Introduce generic DT-based board support
        MIPS: Support generating Flattened Image Trees (.itb)
        MIPS: Adjust MIPS64 CAC_BASE to reflect Config.K0
        MIPS: Print CM error reports upon bus errors
        MIPS: Support per-device DMA coherence
        MIPS: dma-default: Don't check hw_coherentio if device is non-coherent
        MIPS: Sanitise coherentio semantics
        MIPS: PCI: Support generic drivers
        MIPS: PCI: Introduce CONFIG_PCI_DRIVERS_LEGACY
        MIPS: PCI: Split pci.c into pci.c & pci-legacy.c
        MIPS: PCI: Inline pcibios_assign_all_busses
        MIPS: PCI: Make pcibios_set_cache_line_size an initcall
        MIPS: PCI: Support for CONFIG_PCI_DOMAINS_GENERIC
        MIPS: PCI: Use struct list_head lists
        ...
      133d970e
    • Linus Torvalds's avatar
      Merge tag 'sound-fix-4.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · 050aaeab
      Linus Torvalds authored
      Pull sound fixes from Takashi Iwai:
       "Just a few trivial small fixes"
      
      * tag 'sound-fix-4.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
        ALSA: line6: fix a crash in line6_hwdep_write()
        ALSA: seq: fix passing wrong pointer in function call of compatibility layer
        ALSA: hda - Fix a failure of micmute led when having multi adcs
        ALSA: line6: Fix POD X3 Live audio input
      050aaeab
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · b26b5ef5
      Linus Torvalds authored
      Pull more misc uaccess and vfs updates from Al Viro:
       "The rest of the stuff from -next (more uaccess work) + assorted fixes"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        score: traps: Add missing include file to fix build error
        fs/super.c: don't fool lockdep in freeze_super() and thaw_super() paths
        fs/super.c: fix race between freeze_super() and thaw_super()
        overlayfs: Fix setting IOP_XATTR flag
        iov_iter: kernel-doc import_iovec() and rw_copy_check_uvector()
        blackfin: no access_ok() for __copy_{to,from}_user()
        arm64: don't zero in __copy_from_user{,_inatomic}
        arm: don't zero in __copy_from_user_inatomic()/__copy_from_user()
        arc: don't leak bits of kernel stack into coredump
        alpha: get rid of tail-zeroing in __copy_user()
      b26b5ef5
    • Linus Torvalds's avatar
      Merge branch 'for-next' of git://git.samba.org/sfrench/cifs-2.6 · 87dbe42a
      Linus Torvalds authored
      Pull cifs fixes from Steve French:
       "Including:
      
         - nine bug fixes for stable. Some of these we found at the recent two
           weeks of SMB3 test events/plugfests.
      
         - significant improvements in reconnection (e.g. if server or network
           crashes) especially when mounted with "persistenthandles" or to
           server which advertises Continuous Availability on the share.
      
         - a new mount option "idsfromsid" which improves POSIX compatibility
           in some cases (when winbind not configured e.g.) by better (and
           faster) fetching uid/gid from acl (when "cifsacl" mount option is
           enabled). NB: we are almost complete work on "cifsacl" (querying
           mode/uid/gid from ACL) for SMB3, but SMB3 support for cifsacl is
           not included in this set.
      
         - improved handling for SMB3 "credits" (even if server is buggy)
      
        Still working on two sets of changes:
      
         - cifsacl enablement for SMB3
      
         - cleanup of RFC1001 length calculation (so we can handle encryption
           and multichannel and RDMA)
      
        And a couple of new bugs were reported recently (unrelated to above)
        so will probably have another merge request next week"
      
      * 'for-next' of git://git.samba.org/sfrench/cifs-2.6: (21 commits)
        CIFS: Retrieve uid and gid from special sid if enabled
        CIFS: Add new mount option to set owner uid and gid from special sids in acl
        CIFS: Reset read oplock to NONE if we have mandatory locks after reopen
        CIFS: Fix persistent handles re-opening on reconnect
        SMB2: Separate RawNTLMSSP authentication from SMB2_sess_setup
        SMB2: Separate Kerberos authentication from SMB2_sess_setup
        Expose cifs module parameters in sysfs
        Cleanup missing frees on some ioctls
        Enable previous version support
        Do not send SMB3 SET_INFO request if nothing is changing
        SMB3: Add mount parameter to allow user to override max credits
        fs/cifs: reopen persistent handles on reconnect
        Clarify locking of cifs file and tcon structures and make more granular
        Fix regression which breaks DFS mounting
        fs/cifs: keep guid when assigning fid to fileinfo
        SMB3: GUIDs should be constructed as random but valid uuids
        Set previous session id correctly on SMB3 reconnect
        cifs: Limit the overall credit acquired
        Display number of credits available
        Add way to query creation time of file via cifs xattr
        ...
      87dbe42a
    • Linus Torvalds's avatar
      Merge branch 'for-linus-4.9' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs · d3304cad
      Linus Torvalds authored
      Pull btrfs fixes from Chris Mason:
       "Some fixes from Omar and Dave Sterba for our new free space tree.
      
        This isn't heavily used yet, but as we move toward making it the new
        default we wanted to nail down an endian bug"
      
      * 'for-linus-4.9' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs:
        btrfs: tests: uninline member definitions in free_space_extent
        btrfs: tests: constify free space extent specs
        Btrfs: expand free space tree sanity tests to catch endianness bug
        Btrfs: fix extent buffer bitmap tests on big-endian systems
        Btrfs: catch invalid free space trees
        Btrfs: fix mount -o clear_cache,space_cache=v2
        Btrfs: fix free space tree bitmaps on big-endian systems
      d3304cad
    • Al Viro's avatar
      Merge branch 'work.uaccess' into for-linus · 2692a71b
      Al Viro authored
      2692a71b
    • Guenter Roeck's avatar
      score: traps: Add missing include file to fix build error · 7041c577
      Guenter Roeck authored
      score images fail to build as follows.
      
      arch/score/kernel/traps.c: In function 'show_stack':
      arch/score/kernel/traps.c:55:3: error:
      	implicit declaration of function '__get_user'
      
      __get_user() is declared in asm/uaccess.h, which was previously included
      through asm/module.h.
      
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Fixes: 88dd4a74 ("score: separate extable.h, switch module.h to it")
      Signed-off-by: default avatarGuenter Roeck <linux@roeck-us.net>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      7041c577
    • Oleg Nesterov's avatar
      fs/super.c: don't fool lockdep in freeze_super() and thaw_super() paths · f1a96220
      Oleg Nesterov authored
      sb_wait_write()->percpu_rwsem_release() fools lockdep to avoid the
      false-positives. Now that xfs was fixed by Dave's commit dbad7c99
      ("xfs: stop holding ILOCK over filldir callbacks") we can remove it and
      change freeze_super() and thaw_super() to run with s_writers.rw_sem locks
      held; we add two trivial helpers for that, lockdep_sb_freeze_release()
      and lockdep_sb_freeze_acquire().
      
      xfstests-dev/check `grep -il freeze tests/*/???` does not trigger any
      warning from lockdep.
      Signed-off-by: default avatarOleg Nesterov <oleg@redhat.com>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      f1a96220
    • Linus Torvalds's avatar
      Merge branch 'overlayfs-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs · 1a892b48
      Linus Torvalds authored
      Pull overlayfs updates from Miklos Szeredi:
       "This update contains fixes to the "use mounter's permission to access
        underlying layers" area, and miscellaneous other fixes and cleanups.
      
        No new features this time"
      
      * 'overlayfs-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs:
        ovl: use vfs_get_link()
        vfs: add vfs_get_link() helper
        ovl: use generic_readlink
        ovl: explain error values when removing acl from workdir
        ovl: Fix info leak in ovl_lookup_temp()
        ovl: during copy up, switch to mounter's creds early
        ovl: lookup: do getxattr with mounter's permission
        ovl: copy_up_xattr(): use strnlen
      1a892b48
    • Oleg Nesterov's avatar
      fs/super.c: fix race between freeze_super() and thaw_super() · 89f39af1
      Oleg Nesterov authored
      Change thaw_super() to check frozen != SB_FREEZE_COMPLETE rather than
      frozen == SB_UNFROZEN, otherwise it can race with freeze_super() which
      drops sb->s_umount after SB_FREEZE_WRITE to preserve the lock ordering.
      
      In this case thaw_super() will wrongly call s_op->unfreeze_fs() before
      it was actually frozen, and call sb_freeze_unlock() which leads to the
      unbalanced percpu_up_write(). Unfortunately lockdep can't detect this,
      so this triggers misc BUG_ON()'s in kernel/rcu/sync.c.
      Reported-and-tested-by: default avatarNikolay Borisov <kernel@kyup.com>
      Signed-off-by: default avatarOleg Nesterov <oleg@redhat.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      89f39af1
    • Vivek Goyal's avatar
      overlayfs: Fix setting IOP_XATTR flag · 655042cc
      Vivek Goyal authored
      ovl_fill_super calls ovl_new_inode to create a root inode for the new
      superblock before initializing sb->s_xattr.  This wrongly causes
      IOP_XATTR to be cleared in i_opflags of the new inode, causing SELinux
      to log the following message:
      
        SELinux: (dev overlay, type overlay) has no xattr support
      
      Fix this by initializing sb->s_xattr and similar fields before calling
      ovl_new_inode.
      Signed-off-by: default avatarAndreas Gruenbacher <agruenba@redhat.com>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      655042cc
    • Vegard Nossum's avatar
      iov_iter: kernel-doc import_iovec() and rw_copy_check_uvector() · ffecee4f
      Vegard Nossum authored
      Both import_iovec() and rw_copy_check_uvector() take an array
      (typically small and on-stack) which is used to hold an iovec array copy
      from userspace. This is to avoid an expensive memory allocation in the
      fast path (i.e. few iovec elements).
      
      The caller may have to check whether these functions actually used
      the provided buffer or allocated a new one -- but this differs between
      the too. Let's just add a kernel doc to clarify what the semantics are
      for each function.
      Signed-off-by: default avatarVegard Nossum <vegard.nossum@oracle.com>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      ffecee4f
  9. 14 Oct, 2016 3 commits
    • Linus Torvalds's avatar
      Merge tag 'linux-kselftest-4.9-rc1-update' of... · 5d89d9f5
      Linus Torvalds authored
      Merge tag 'linux-kselftest-4.9-rc1-update' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest
      
      Pull kselftest updates from Shuah Khan:
       "This update consists of:
      
         - Fixes and improvements to existing tests
      
         - Moving code from Documentation to selftests, samples, and tools:
      
           * Moves dnotify_test, prctl, ptp, vDSO, ia64, watchdog, and
             networking tests from Documentation to selftests.
      
           * Moves mic/mpssd, misc-devices/mei, timers, watchdog, auxdisplay,
             and blackfin examples from Documentation to samples.
      
           * Moves accounting, laptops/dslm, and pcmcia/crc32hash tools from
             Documentation to tools.
      
           * Deletes BUILD_DOCSRC and its dependencies"
      
      * tag 'linux-kselftest-4.9-rc1-update' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest: (21 commits)
        selftests/futex: Check ANSI terminal color support
        Doc: update 00-INDEX files to reflect the runnable code move
        samples: move blackfin gptimers-example from Documentation
        tools: move pcmcia crc32hash tool from Documentation
        tools: move laptops dslm tool from Documentation
        tools: move accounting tool from Documentation
        samples: move auxdisplay example code from Documentation
        samples: move watchdog example code from Documentation
        samples: move timers example code from Documentation
        samples: move misc-devices/mei example code from Documentation
        samples: move mic/mpssd example code from Documentation
        selftests: Move networking/timestamping from Documentation
        selftests: move watchdog tests from Documentation/watchdog
        selftests: move ia64 tests from Documentation/ia64
        selftests: move vDSO tests from Documentation/vDSO
        selftests: move ptp tests from Documentation/ptp
        selftests: move prctl tests from Documentation/prctl
        selftests: move dnotify_test from Documentation/filesystems
        selftests/timers: Add missing error code assignment before test
        selftests/zram: replace ZRAM_LZ4_COMPRESS
        ...
      5d89d9f5
    • Linus Torvalds's avatar
      Merge branch 'misc' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild · 50cff898
      Linus Torvalds authored
      Pull misc kbuild changes from Michal Marek:
       "Just a few patches on the kbuild.git#misc branch this time:
      
         - New Coccinelle patch by Nicholas Mc Guire
         - Existing patch fixes by Julia Lawall
         - Minor comment fix by Markus Elfring"
      
      * 'misc' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild:
        Coccinelle: flag conditions with no effect
        scripts/coccicheck: Update reference for the corresponding documentation
        Coccinelle: pm_runtime: ensure relevance of pm_runtime reports
        Coccinelle: limit memdup_user transformation to GFP_KERNEL case
      50cff898
    • Linus Torvalds's avatar
      Merge branch 'kbuild' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild · 84d69848
      Linus Torvalds authored
      Pull kbuild updates from Michal Marek:
      
       - EXPORT_SYMBOL for asm source by Al Viro.
      
         This does bring a regression, because genksyms no longer generates
         checksums for these symbols (CONFIG_MODVERSIONS). Nick Piggin is
         working on a patch to fix this.
      
         Plus, we are talking about functions like strcpy(), which rarely
         change prototypes.
      
       - Fixes for PPC fallout of the above by Stephen Rothwell and Nick
         Piggin
      
       - fixdep speedup by Alexey Dobriyan.
      
       - preparatory work by Nick Piggin to allow architectures to build with
         -ffunction-sections, -fdata-sections and --gc-sections
      
       - CONFIG_THIN_ARCHIVES support by Stephen Rothwell
      
       - fix for filenames with colons in the initramfs source by me.
      
      * 'kbuild' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild: (22 commits)
        initramfs: Escape colons in depfile
        ppc: there is no clear_pages to export
        powerpc/64: whitelist unresolved modversions CRCs
        kbuild: -ffunction-sections fix for archs with conflicting sections
        kbuild: add arch specific post-link Makefile
        kbuild: allow archs to select link dead code/data elimination
        kbuild: allow architectures to use thin archives instead of ld -r
        kbuild: Regenerate genksyms lexer
        kbuild: genksyms fix for typeof handling
        fixdep: faster CONFIG_ search
        ia64: move exports to definitions
        sparc32: debride memcpy.S a bit
        [sparc] unify 32bit and 64bit string.h
        sparc: move exports to definitions
        ppc: move exports to definitions
        arm: move exports to definitions
        s390: move exports to definitions
        m68k: move exports to definitions
        alpha: move exports to actual definitions
        x86: move exports to actual definitions
        ...
      84d69848