Skip to content
  1. Jun 02, 2013
    • Linus Torvalds's avatar
      Linux 3.10-rc4 · d683b96b
      Linus Torvalds authored
      d683b96b
    • Linus Torvalds's avatar
      Merge branch 'for-3.10' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux · cc863973
      Linus Torvalds authored
      Pull parisc fixes from Helge Deller:
       "This patcheset includes fixes for:
      
         - the PCI/LBA which brings back the stifb graphics framebuffer
           console
         - possible memory overflows in parisc kernel init code
         - parport support on older GSC machines
         - avoids that users by mistake enable PARPORT_PC_SUPERIO on parisc
         - MAINTAINERS file list updates for parisc."
      
      * 'for-3.10' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux:
        parisc: parport0: fix this legacy no-device port driver!
        parport_pc: disable PARPORT_PC_SUPERIO on parisc architecture
        parisc/PCI: lba: fix: convert to pci_create_root_bus() for correct root bus resources (v2)
        parisc/PCI: Set type for LBA bus_num resource
        MAINTAINERS: update parisc architecture file list
        parisc: kernel: using strlcpy() instead of strcpy()
        parisc: rename "CONFIG_PA7100" to "CONFIG_PA7000"
        parisc: fix kernel BUG at arch/parisc/include/asm/mmzone.h:50
        parisc: memory overflow, 'name' length is too short for using
      cc863973
  2. Jun 01, 2013
    • Helge Deller's avatar
      parisc: parport0: fix this legacy no-device port driver! · 4edb3869
      Helge Deller authored
      
      
      Fix the above kernel error from parport_announce_port() on 32bit GSC
      machines (e.g. B160L). The parport driver requires now a pointer to the
      device struct.
      
      Signed-off-by: default avatarHelge Deller <deller@gmx.de>
      4edb3869
    • Helge Deller's avatar
      parport_pc: disable PARPORT_PC_SUPERIO on parisc architecture · c218c713
      Helge Deller authored
      
      
      If enabled, CONFIG_PARPORT_PC_SUPERIO scans on PC-like hardware for
      various super-io chips by accessing i/o ports in a range which will
      crash any parisc hardware at once.
      
      In addition, parisc has it's own incompatible superio chip
      (CONFIG_SUPERIO), so if we disable PARPORT_PC_SUPERIO completely for
      parisc we can avoid that people by accident enable the parport_pc
      superio option too.
      
      Signed-off-by: default avatarHelge Deller <deller@gmx.de>
      c218c713
    • Helge Deller's avatar
      parisc/PCI: lba: fix: convert to pci_create_root_bus() for correct root bus resources (v2) · b204a4d2
      Helge Deller authored
      commit dc7dce28
      
      
      Author: Bjorn Helgaas <bhelgaas@google.com>
      Date:   Fri Oct 28 16:27:27 2011 -0600
         parisc/PCI: lba: convert to pci_create_root_bus() for correct root bus
                          resources
      
        Supply root bus resources to pci_create_root_bus() so they're correct
        immediately.  This fixes the problem of "early" and "header" quirks seeing
        incorrect root bus resources.
      
      added tests for elmmio_space.start while it should use
      elmmio_space.flags.  This for example led to incorrect resource
      assignments and a non-working stifb framebuffer on most parisc machines.
      
      LBA 10:1: PCI host bridge to bus 0000:01
      pci_bus 0000:01: root bus resource [io  0x12000-0x13fff] (bus address [0x2000-0x3fff])
      pci_bus 0000:01: root bus resource [mem 0xfffffffffa000000-0xfffffffffbffffff] (bus address [0xfa000000-0xfbffffff])
      pci_bus 0000:01: root bus resource [mem 0xfffffffff4800000-0xfffffffff4ffffff] (bus address [0xf4800000-0xf4ffffff])
      pci_bus 0000:01: root bus resource [??? 0x00000001 flags 0x0]
      
      Signed-off-by: default avatarHelge Deller <deller@gmx.de>
      Acked-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      b204a4d2
    • Bjorn Helgaas's avatar
      parisc/PCI: Set type for LBA bus_num resource · b47d4934
      Bjorn Helgaas authored
      The non-PAT resource probing code failed to set the type of the LBA bus_num
      resource (30aa80da
      
       "parisc/PCI: register busn_res for root buses" did
      the corresponding thing for the PAT case).
      
      This causes incorrect resource assignments and a non-working stifb
      framebuffer on most parisc machines.
      
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      Signed-off-by: default avatarHelge Deller <deller@gmx.de>
      b47d4934
    • Helge Deller's avatar
      2b6bac9e
    • Chen Gang's avatar
      parisc: kernel: using strlcpy() instead of strcpy() · ea99b1ad
      Chen Gang authored
      
      
      'boot_args' is an input args, and 'boot_command_line' has a fix length.
      So use strlcpy() instead of strcpy() to avoid memory overflow.
      
      Signed-off-by: default avatarChen Gang <gang.chen@asianux.com>
      Acked-by: default avatarKyle McMartin <kyle@mcmartin.ca>
      Signed-off-by: default avatarHelge Deller <deller@gmx.de>
      ea99b1ad
    • Paul Bolle's avatar
      parisc: rename "CONFIG_PA7100" to "CONFIG_PA7000" · 76603902
      Paul Bolle authored
      
      
      There's a Makefile line setting cflags for CONFIG_PA7100. But that
      Kconfig macro doesn't exist. There is a Kconfig symbol PA7000, which
      covers both PA7000 and PA7100 processors. So let's use the corresponding
      Kconfig macro.
      
      Signed-off-by: default avatarPaul Bolle <pebolle@tiscali.nl>
      Signed-off-by: default avatarHelge Deller <deller@gmx.de>
      76603902
    • Helge Deller's avatar
      parisc: fix kernel BUG at arch/parisc/include/asm/mmzone.h:50 · ae249b5f
      Helge Deller authored
      
      
      With CONFIG_DISCONTIGMEM=y and multiple physical memory areas,
      cat /proc/kpageflags triggers this kernel bug:
      
      kernel BUG at arch/parisc/include/asm/mmzone.h:50!
      CPU: 2 PID: 7848 Comm: cat Tainted: G      D W 3.10.0-rc3-64bit #44
       IAOQ[0]: kpageflags_read0x128/0x238
       IAOQ[1]: kpageflags_read0x12c/0x238
       RP(r2): proc_reg_read0xbc/0x130
      Backtrace:
       [<00000000402ca2d4>] proc_reg_read0xbc/0x130
       [<0000000040235bcc>] vfs_read0xc4/0x1d0
       [<0000000040235f0c>] SyS_read0x94/0xf0
       [<0000000040105fc0>] syscall_exit0x0/0x14
      
      kpageflags_read() walks through the whole memory, even if some memory
      areas are physically not available. So, we should better not BUG on an
      unavailable pfn in pfn_to_nid() but just return the expected value -1 or
      0.
      
      Signed-off-by: default avatarHelge Deller <deller@gmx.de>
      ae249b5f
    • Chen Gang's avatar
      parisc: memory overflow, 'name' length is too short for using · 3f108de9
      Chen Gang authored
      
      
      'path.bc[i]' can be asigned by PCI_SLOT() which can '> 10', so sizeof(6
      * "%u:" + "%u" + '\0') may be 21.
      
      Since 'name' length is 20, it may be memory overflow.
      
      And 'path.bc[i]' is 'unsigned char' for printing, we can be sure the
      max length of 'name' must be less than 28.
      
      So simplify thinking, we can use 28 instead of 20 directly, and do not
      think of whether 'patchc.bc[i]' can '> 100'.
      
      Signed-off-by: default avatarChen Gang <gang.chen@asianux.com>
      Signed-off-by: default avatarHelge Deller <deller@gmx.de>
      3f108de9
    • Linus Torvalds's avatar
      Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc · aa3ae6de
      Linus Torvalds authored
      Pull powerpc fixes from Ben Herrenschmidt:
       "Here are a few more fixes for powerpc 3.10.  It's a bit more than I
        would have liked this late in the game but I suppose that's what
        happens with a brand new chip generation coming out.
      
        A few regression fixes, some last minute fixes for new P8 features
        such as transactional memory,...
      
        There's also one powerpc KVM patch that I requested that adds two
        missing functions to our in-kernel interrupt controller support which
        is itself a new 3.10 feature.  These are defined by the base
        hypervisor specification.  We didn't implement them originally because
        Linux doesn't use them but they are simple and I'm not comfortable
        having a half-implemented interface in 3.10 and having to deal with
        versionning etc...  later when something starts needing those calls.
        They cannot be emulated in qemu when using in-kernel interrupt
        controller (not enough shared state).
      
        Just added a last minute patch to fix a typo introducing a breakage in
        our cputable for Power7+ processors, sorry about that, but the
        regression it fixes just hurt me :-)"
      
      * 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc:
        powerpc/cputable: Fix typo on P7+ cputable entry
        powerpc/perf: Add missing SIER support
        powerpc/perf: Revert to original NO_SIPR logic
        powerpc/pci: Remove the unused variables in pci_process_bridge_OF_ranges
        powerpc/pci: Remove the stale comments of pci_process_bridge_OF_ranges
        powerpc/pseries: Always enable CONFIG_HOTPLUG_CPU on PSERIES SMP
        powerpc/kvm/book3s: Add support for H_IPOLL and H_XIRR_X in XICS emulation
        powerpc/32bit:Store temporary result in r0 instead of r8
        powerpc/mm: Always invalidate tlb on hpte invalidate and update
        powerpc/pseries: Improve stream generation comments in copypage/user
        powerpc/pseries: Kill all prefetch streams on context switch
        powerpc/cputable: Fix oprofile_cpu_type on power8
        powerpc/mpic: Fix irq distribution problem when MPIC_SINGLE_DEST_CPU
        powerpc/tm: Fix userspace stack corruption on signal delivery for active transactions
        powerpc/tm: Move TM abort cause codes to uapi
        powerpc/tm: Abort on emulation and alignment faults
        powerpc/tm: Update cause codes documentation
        powerpc/tm: Make room for hypervisor in abort cause codes
      aa3ae6de
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending · 008bd2de
      Linus Torvalds authored
      Pull scsi target fixes from Nicholas Bellinger:
       "The highlights include:
      
         - Re-instate sess->wait_list in target_wait_for_sess_cmds() for
           active I/O shutdown handling in fabrics using se_cmd->cmd_kref
         - Make ib_srpt call target_sess_cmd_list_set_waiting() during session
           shutdown
         - Fix FILEIO off-by-one READ_CAPACITY bug for !S_ISBLK export
         - Fix iscsi-target login error heap buffer overflow (Kees)
         - Fix iscsi-target active I/O shutdown handling regression in
           v3.10-rc1
      
        A big thanks to Kees Cook for fixing a long standing login error
        buffer overflow bug.
      
        All patches are CC'ed to stable with the exception of the v3.10-rc1
        specific regression + other minor target cleanup."
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending:
        iscsi-target: Fix iscsit_free_cmd() se_cmd->cmd_kref shutdown handling
        target: Propigate up ->cmd_kref put return via transport_generic_free_cmd
        iscsi-target: fix heap buffer overflow on error
        target/file: Fix off-by-one READ_CAPACITY bug for !S_ISBLK export
        ib_srpt: Call target_sess_cmd_list_set_waiting during shutdown_session
        target: Re-instate sess_wait_list for target_wait_for_sess_cmds
        target: Remove unused wait_for_tasks bit in target_wait_for_sess_cmds
      008bd2de
    • Linus Torvalds's avatar
      Merge tag 'clk-fixes-for-linus' of git://git.linaro.org/people/mturquette/linux · 0f7dafd4
      Linus Torvalds authored
      Pull clock subsystem fixes from Mike Turquette:
       "A mix of small fixes affecting mostly ARM platforms as well as a
        discrete clock expander chip.  Most fixes are corrections to lousy
        clock data of one form or another."
      
      * tag 'clk-fixes-for-linus' of git://git.linaro.org/people/mturquette/linux:
        clk: mxs: Include clk mxs header file
        clk: vt8500: Fix unbalanced spinlock in vt8500_dclk_set_rate()
        clk: si5351: Set initial clkout rate when defined in platform data.
        clk: si5351: Fix clkout rate computation.
        clk: samsung: Add CLK_IGNORE_UNUSED flag for the sysreg clocks
        clk: ux500: clk-sysctrl: handle clocks with no parents
        clk: ux500: Provide device enumeration number suffix for SMSC911x
      0f7dafd4
    • Linus Torvalds's avatar
      Merge tag 'fbdev-for-3.10-rc4' of... · c361cb59
      Linus Torvalds authored
      Merge tag 'fbdev-for-3.10-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/plagnioj/linux-fbdev
      
      Pull fbdev fixes from Jean-Christophe PLAGNIOL-VILLARD:
       "This contains some small fixes
      
         - Atmel LCDC: fix blank the backlight on remove
         - ps3fb: fix compile warning
         - OMAPDSS: Fix crash with DT boot"
      
      * tag 'fbdev-for-3.10-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/plagnioj/linux-fbdev:
        atmel_lcdfb: blank the backlight on remove
        trivial: atmel_lcdfb: add missing error message
        OMAPDSS: Fix crash with DT boot
        fbdev/ps3fb: fix compile warning
      c361cb59
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 6cf3c736
      Linus Torvalds authored
      Pull assorted fixes from Al Viro:
       "There'll be more - I'm trying to dig out from under the pile of mail
        (a couple of weeks of something flu-like ;-/) and there's several more
        things waiting for review; this is just the obvious stuff."
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        zoran: racy refcount handling in vm_ops ->open()/->close()
        befs_readdir(): do not increment ->f_pos if filldir tells us to stop
        hpfs: deadlock and race in directory lseek()
        qnx6: qnx6_readdir() has a braino in pos calculation
        fix buffer leak after "scsi: saner replacements for ->proc_info()"
        vfs: Fix invalid ida_remove() call
      6cf3c736
    • Linus Torvalds's avatar
      Merge tag 'nfs-for-3.10-4' of git://git.linux-nfs.org/projects/trondmy/linux-nfs · f8cb2791
      Linus Torvalds authored
      Pull two NFS client fixes from Trond Myklebust:
       - Fix a regression that broke NFS mounting using klibc and busybox
       - Stable fix to check access modes correctly on NFSv4 delegated open()
      
      * tag 'nfs-for-3.10-4' of git://git.linux-nfs.org/projects/trondmy/linux-nfs:
        NFS: Fix security flavor negotiation with legacy binary mounts
        NFSv4: Fix a thinko in nfs4_try_open_cached
      f8cb2791
    • Will Schmidt's avatar
      powerpc/cputable: Fix typo on P7+ cputable entry · badec11b
      Will Schmidt authored
      
      
      Fix a typo in setting COMMON_USER2_POWER7 bits to .cpu_user_features2
      cpu specs table.
      
      Signed-off-by: default avatarWill Schmidt <will_schmidt@vnet.ibm.com>
      Acked-by: default avatarMichael Neuling <mikey@neuling.org>
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      badec11b
    • Michael Ellerman's avatar
      powerpc/perf: Add missing SIER support · 58a032c3
      Michael Ellerman authored
      Commit 8f61aa32
      
       "Add support for SIER" missed updates to siar_valid()
      and perf_get_data_addr().
      
      In both cases we need to check the SIER instead of mmcra.
      
      Signed-off-by: default avatarMichael Ellerman <michael@ellerman.id.au>
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      58a032c3
    • Michael Ellerman's avatar
      powerpc/perf: Revert to original NO_SIPR logic · cbda6aa1
      Michael Ellerman authored
      This is a revert and then some of commit 860aad71
      
       "Add regs_no_sipr()".
      This workaround was only needed on early chip versions.
      
      As before NO_SIPR becomes a static flag of the PMU struct.
      
      Signed-off-by: default avatarMichael Ellerman <michael@ellerman.id.au>
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      cbda6aa1
    • Kevin Hao's avatar
      powerpc/pci: Remove the unused variables in pci_process_bridge_OF_ranges · 858957ab
      Kevin Hao authored
      
      
      The codes which ever used these two variables have gone. Throw away
      them too.
      
      Signed-off-by: default avatarKevin Hao <haokexin@gmail.com>
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      858957ab
    • Kevin Hao's avatar
      powerpc/pci: Remove the stale comments of pci_process_bridge_OF_ranges · 27983896
      Kevin Hao authored
      
      
      These comments already don't apply to the current code. So just remove
      them.
      
      Signed-off-by: default avatarKevin Hao <haokexin@gmail.com>
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      27983896
    • Srivatsa S. Bhat's avatar
      powerpc/pseries: Always enable CONFIG_HOTPLUG_CPU on PSERIES SMP · f274ef87
      Srivatsa S. Bhat authored
      Adam Lackorzynski reported the following build failure on
      !CONFIG_HOTPLUG_CPU configuration:
      
        CC      arch/powerpc/kernel/rtas.o
      arch/powerpc/kernel/rtas.c: In function ‘rtas_cpu_state_change_mask’:
      arch/powerpc/kernel/rtas.c:843:4: error: implicit declaration of function ‘cpu_down’ [-Werror=implicit-function-declaration]
      cc1: all warnings being treated as errors
      make[1]: *** [arch/powerpc/kernel/rtas.o] Error 1
      make: *** [arch/powerpc/kernel] Error 2
      
      The build fails because cpu_down() is defined only under CONFIG_HOTPLUG_CPU.
      
      Looking further, the mobility code in pseries is one of the call-sites which
      uses rtas_ibm_suspend_me(), which in turn calls rtas_cpu_state_change_mask().
      And the mobility code is unconditionally compiled-in (it does not fall under
      any Kconfig option). And commit 120496ac
      
       (powerpc: Bring all threads online
      prior to migration/hibernation) which introduced this build regression is
      critical for the proper functioning of the migration code. So it appears
      that the only solution to this problem is to enable CONFIG_HOTPLUG_CPU if
      SMP is enabled on PPC_PSERIES platforms. So make that change in the Kconfig.
      
      Reported-by: default avatarAdam Lackorzynski <adam@os.inf.tu-dresden.de>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarSrivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com>
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      f274ef87
    • Paul Mackerras's avatar
      powerpc/kvm/book3s: Add support for H_IPOLL and H_XIRR_X in XICS emulation · 8e44ddc3
      Paul Mackerras authored
      
      
      This adds the remaining two hypercalls defined by PAPR for manipulating
      the XICS interrupt controller, H_IPOLL and H_XIRR_X.  H_IPOLL returns
      information about the priority and pending interrupts for a virtual
      cpu, without changing any state.  H_XIRR_X is like H_XIRR in that it
      reads and acknowledges the highest-priority pending interrupt, but it
      also returns the timestamp (timebase register value) from when the
      interrupt was first received by the hypervisor.  Currently we just
      return the current time, since we don't do any software queueing of
      virtual interrupts inside the XICS emulation code.
      
      These hcalls are not currently used by Linux guests, but may be in
      future.
      
      Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
      Acked-by: default avatarScott Wood <scottwood@freescale.com>
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      8e44ddc3
    • Priyanka Jain's avatar
      powerpc/32bit:Store temporary result in r0 instead of r8 · f7b33677
      Priyanka Jain authored
      Commit a9c4e541
      
      
      "powerpc/kprobe: Complete kprobe and migrate exception frame"
      introduced a regression:
      
      While returning from exception handling in case of PREEMPT enabled,
      _TIF_NEED_RESCHED bit is checked in TI_FLAGS (thread_info flag) of current
      task. Only if this bit is set, it should continue with the process of
      calling preempt_schedule_irq() to schedule highest priority task if
      available.
      
      Current code assumes that r8 contains TI_FLAGS and check this for
      _TIF_NEED_RESCHED, but as r8 is modified in the code which executes before
      this check, r8 no longer contains the expected TI_FLAGS information.
      
      As a result check for comparison with _TIF_NEED_RESCHED was failing even if
      NEED_RESCHED bit is set in the current thread_info flag. Due to this,
      preempt_schedule_irq() and in turn scheduler was not getting called even if
      highest priority task is ready for execution.
      
      So, store temporary results in r0 instead of r8 to prevent r8 from getting
      modified as subsequent code is dependent on its value.
      
      Signed-off-by: default avatarPriyanka Jain <Priyanka.Jain@freescale.com>
      CC: <stable@vger.kernel.org> [v3.7+]
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      f7b33677
    • Aneesh Kumar K.V's avatar
      powerpc/mm: Always invalidate tlb on hpte invalidate and update · 0608d692
      Aneesh Kumar K.V authored
      If a hash bucket gets full, we "evict" a more/less random entry from it.
      When we do that we don't invalidate the TLB (hpte_remove) because we assume
      the old translation is still technically "valid". This implies that when
      we are invalidating or updating pte, even if HPTE entry is not valid
      we should do a tlb invalidate.
      
      This was a regression introduced by b1022fbd
      
      
      
      Signed-off-by: default avatarAneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      0608d692
    • Michael Neuling's avatar
      powerpc/pseries: Improve stream generation comments in copypage/user · 280a5ba2
      Michael Neuling authored
      
      
      No code changes, just documenting what's happening a little better.
      
      Signed-off-by: default avatarMichael Neuling <mikey@neuling.org>
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      280a5ba2
    • Michael Neuling's avatar
      powerpc/pseries: Kill all prefetch streams on context switch · a515348f
      Michael Neuling authored
      
      
      On context switch, we should have no prefetch streams leak from one
      userspace process to another.  This frees up prefetch resources for the
      next process.
      
      Based on patch from Milton Miller.
      
      Signed-off-by: default avatarMichael Neuling <mikey@neuling.org>
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      a515348f
    • Nishanth Aravamudan's avatar
      powerpc/cputable: Fix oprofile_cpu_type on power8 · 2ac6f427
      Nishanth Aravamudan authored
      
      
      Maynard informed me that neither the oprofile kernel module nor oprofile
      userspace has been updated to support that "legacy" oprofile module
      interface for power8, which is indicated by "ppc64/power8." This results
      in no samples. The solution is to default to the "timer" type, instead.
      The raw entry also should be updated, as "ppc64/ibm-compat-v1" indicates
      to oprofile userspace to use "compatibility events" which are obsolete
      in ISA 2.07.
      
      Signed-off-by: default avatarNishanth Aravamudan <nacc@us.ibm.com>
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      2ac6f427
    • chenhui zhao's avatar
      powerpc/mpic: Fix irq distribution problem when MPIC_SINGLE_DEST_CPU · e242114a
      chenhui zhao authored
      
      
      For the mpic with a flag MPIC_SINGLE_DEST_CPU, only one bit should be
      set in interrupt destination registers.
      
      The code is applicable to 64-bit platforms as well as 32-bit.
      
      Signed-off-by: default avatarZhao Chenhui <chenhui.zhao@freescale.com>
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      e242114a
    • Michael Neuling's avatar
      powerpc/tm: Fix userspace stack corruption on signal delivery for active transactions · 2b3f8e87
      Michael Neuling authored
      
      
      When in an active transaction that takes a signal, we need to be careful with
      the stack.  It's possible that the stack has moved back up after the tbegin.
      The obvious case here is when the tbegin is called inside a function that
      returns before a tend.  In this case, the stack is part of the checkpointed
      transactional memory state.  If we write over this non transactionally or in
      suspend, we are in trouble because if we get a tm abort, the program counter
      and stack pointer will be back at the tbegin but our in memory stack won't be
      valid anymore.
      
      To avoid this, when taking a signal in an active transaction, we need to use
      the stack pointer from the checkpointed state, rather than the speculated
      state.  This ensures that the signal context (written tm suspended) will be
      written below the stack required for the rollback.  The transaction is aborted
      becuase of the treclaim, so any memory written between the tbegin and the
      signal will be rolled back anyway.
      
      For signals taken in non-TM or suspended mode, we use the
      normal/non-checkpointed stack pointer.
      
      Tested with 64 and 32 bit signals
      
      Signed-off-by: default avatarMichael Neuling <mikey@neuling.org>
      Cc: <stable@vger.kernel.org> # v3.9
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      2b3f8e87
    • Michael Neuling's avatar
      powerpc/tm: Move TM abort cause codes to uapi · b75c100e
      Michael Neuling authored
      
      
      These cause codes are usable by userspace, so let's export to uapi.
      
      Signed-off-by: default avatarMichael Neuling <mikey@neuling.org>
      Cc: <stable@vger.kernel.org> # v3.9
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      b75c100e
    • Michael Neuling's avatar
      powerpc/tm: Abort on emulation and alignment faults · 6ce6c629
      Michael Neuling authored
      
      
      If we are emulating an instruction inside an active user transaction that
      touches memory, the kernel can't emulate it as it operates in transactional
      suspend context.  We need to abort these transactions and send them back to
      userspace for the hardware to rollback.
      
      We can service these if the user transaction is in suspend mode, since the
      kernel will operate in the same suspend context.
      
      This adds a check to all alignment faults and to specific instruction
      emulations (only string instructions for now).  If the user process is in an
      active (non-suspended) transaction, we abort the transaction go back to
      userspace allowing the HW to roll back the transaction and tell the user of the
      failure.  This also adds new tm abort cause codes to report the reason of the
      persistent error to the user.
      
      Crappy test case here http://neuling.org/devel/junkcode/aligntm.c
      
      Signed-off-by: default avatarMichael Neuling <mikey@neuling.org>
      Cc: <stable@vger.kernel.org> # v3.9
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      6ce6c629
    • Michael Neuling's avatar
      powerpc/tm: Update cause codes documentation · 24b92375
      Michael Neuling authored
      
      
      Signed-off-by: default avatarMichael Neuling <mikey@neuling.org>
      Cc: <stable@vger.kernel.org> # 3.9 only
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      24b92375
    • Michael Neuling's avatar
      powerpc/tm: Make room for hypervisor in abort cause codes · 35f7097f
      Michael Neuling authored
      
      
      PAPR carves out 0xff-0xe0 for hypervisor use of transactional memory software
      abort cause codes.  Unfortunately we don't respect this currently.
      
      Below fixes this to move our cause codes to below this region.
      
      Signed-off-by: default avatarMichael Neuling <mikey@neuling.org>
      Cc: <stable@vger.kernel.org> # 3.9 only
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      35f7097f
    • Linus Torvalds's avatar
      Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs · 1d822d60
      Linus Torvalds authored
      Pull reiserfs fixes from Jan Kara:
       "Three reiserfs fixes.  They fix real problems spotted by users so I
        hope they are ok even at this stage."
      
      * 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:
        reiserfs: fix deadlock with nfs racing on create/lookup
        reiserfs: fix problems with chowning setuid file w/ xattrs
        reiserfs: fix spurious multiple-fill in reiserfs_readdir_dentry
      1d822d60
    • Linus Torvalds's avatar
      Merge tag 'for-linus-v3.10-rc4-crc-xattr-fixes' of git://oss.sgi.com/xfs/xfs · 7cfb9532
      Linus Torvalds authored
      Pull xfs extended attribute fixes for CRCs from Ben Myers:
       "Here are several fixes that are relevant on CRC enabled XFS
        filesystems.  They are followed by a rework of the remote attribute
        code so that each block of the attribute contains a header with a CRC.
      
        Previously there was a CRC header per extent in the remote attribute
        code, but this was untenable because it was not possible to know how
        many extents would be allocated for the attribute until after the
        allocation has completed, due to the fragmentation of free space.
        This became complicated because the size of the headers needs to be
        added to the length of the payload to get the overall length required
        for the allocation.  With a header per block, things are less
        complicated at the cost of a little space.
      
        I would have preferred to defer this and the rest of the CRC queue to
        3.11 to mitigate risk for existing non-crc users in 3.10.  Doing so
        would require setting a feature bit for the on-disk changes, and so I
        have been pressured into sending this pull request by Eric Sandeen and
        David Chinner from Red Hat.  I'll send another pull request or two
        with the rest of the CRC queue next week.
      
         - Remove assert on count of remote attribute CRC headers
         - Fix the number of blocks read in for remote attributes
         - Zero remote attribute tails properly
         - Fix mapping of remote attribute buffers to have correct length
         - initialize temp leaf properly in xfs_attr3_leaf_unbalance, and
           xfs_attr3_leaf_compact
         - Rework remote atttributes to have a header per block"
      
      * tag 'for-linus-v3.10-rc4-crc-xattr-fixes' of git://oss.sgi.com/xfs/xfs:
        xfs: rework remote attr CRCs
        xfs: fully initialise temp leaf in xfs_attr3_leaf_compact
        xfs: fully initialise temp leaf in xfs_attr3_leaf_unbalance
        xfs: correctly map remote attr buffers during removal
        xfs: remote attribute tail zeroing does too much
        xfs: remote attribute read too short
        xfs: remote attribute allocation may be contiguous
      7cfb9532
    • Linus Torvalds's avatar
      Merge tag 'for-linus-v3.10-rc4' of git://oss.sgi.com/xfs/xfs · e8d256ac
      Linus Torvalds authored
      Pull xfs fixes from Ben Myers:
       - Fix nested transactions in xfs_qm_scall_setqlim
       - Clear suid/sgid bits when we truncate with size update
       - Fix recovery for split buffers
       - Fix block count on remote symlinks
       - Add fsgeom flag for v5 superblock support
       - Disable XFS_IOC_SWAPEXT for CRC enabled filesystems
       - Fix dirv3 freespace block corruption
      
      * tag 'for-linus-v3.10-rc4' of git://oss.sgi.com/xfs/xfs:
        xfs: fix dir3 freespace block corruption
        xfs: disable swap extents ioctl on CRC enabled filesystems
        xfs: add fsgeom flag for v5 superblock support.
        xfs: fix incorrect remote symlink block count
        xfs: fix split buffer vector log recovery support
        xfs: kill suid/sgid through the truncate path.
        xfs: avoid nesting transactions in xfs_qm_scall_setqlim()
      e8d256ac
    • Linus Torvalds's avatar
      Merge tag 'please-pull-aertracefix' of git://git.kernel.org/pub/scm/linux/kernel/git/ras/ras · 977b55cf
      Linus Torvalds authored
      Pull aer error logging fix from Tony Luck:
       "Can't call pci_get_domain_bus_and_slot() from interupt context"
      
      * tag 'please-pull-aertracefix' of git://git.kernel.org/pub/scm/linux/kernel/git/ras/ras:
        aerdrv: Move cper_print_aer() call out of interrupt context
      977b55cf
    • Linus Torvalds's avatar
      Merge tag 'arm64-stable' of git://git.kernel.org/pub/scm/linux/kernel/git/cmarinas/linux-aarch64 · fe696b47
      Linus Torvalds authored
      Pull arm64 fixes from Catalin Marinas:
       - Module compilation issues (symbol not exported).
       - Plug a hole where user space can bring the kernel down.
      
      * tag 'arm64-stable' of git://git.kernel.org/pub/scm/linux/kernel/git/cmarinas/linux-aarch64:
        arm64: don't kill the kernel on a bad esr from el0
        arm64: treat unhandled compat el0 traps as undef
        arm64: Do not report user faults for handled signals
        arm64: kernel: compiling issue, need 'EXPORT_SYMBOL(clear_page)'
      fe696b47