10 Apr, 2013

1 commit

  • The arch_local_irq_save(), etc., routines are required to function
    as compiler barriers. They do, but it's subtle and requires knowing
    that the gcc builtin __insn_mtspr() is marked as a memory clobber.
    Provide a comment explaining the assumption.

    Signed-off-by: Chris Metcalf
    [ This came about from me wondering about the synchronization rules of
    __insn_mtspr() - Linus ]
    Signed-off-by: Linus Torvalds

    Chris Metcalf
     

09 Apr, 2013

2 commits

  • Pull powerpc bugfix from Stephen Rothwell:
    "A single BUG_ON fix for a condition that could happen for machines
    with certain hardware installed."

    * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sfr/next-fixes:
    powerpc: pSeries_lpar_hpte_remove fails from Adjunct partition being performed before the ANDCOND test

    Linus Torvalds
     
  • ARC irqsave/restore macros were missing the compiler barrier, causing a
    stale load in irq-enabled region be used in irq-safe region, despite
    being changed, because the register holding the value was still live.

    The problem manifested as random crashes in timer code when stress
    testing ARCLinux (3.9-rc3) on a !SMP && !PREEMPT_COUNT

    Here's the exact sequence which caused this:
    (0). tv1[x] t1 t2
    (1). mod_timer(t1) interrupted after it calls timer_pending()
    (2). mod_timer(t2) completes
    (3). mod_timer(t1) resumes but messes up the list
    (4). __runt_timers( ) uses bogus timer_list entry / crashes in
    timer->function

    Essentially mod_timer() was racing against itself and while the spinlock
    serialized the tv1[] timer link list, timer_pending() called outside the
    spinlock, cached timer link list element in a register.
    With low register pressure (and a deep register file), lack of barrier
    in raw_local_irqsave() as well as preempt_disable (!PREEMPT_COUNT
    version), there was nothing to force gcc to reload across the spinlock,
    causing a stale value in reg be used for link list manipulation - ensuing
    a corruption.

    ARcompact disassembly which shows the culprit generated code:

    mod_timer:
    push_s blink
    mov_s r13,r0 # timer, timer
    ..
    ###### timer_pending( )
    ld_s r3,[r13] # .entry.next LOADED
    brne r3, 0, @.L163

    .L163:
    ..
    ###### spin_lock_irq( )
    lr r5, [status32] # flags
    bic r4, r5, 6 # temp, flags,
    and.f 0, r5, 6 # flags,
    flag.nz r4

    ###### detach_if_pending( ) begins

    tst_s r3,r3 entry.next
    # r3 is NOT reloaded by gcc, using stale value
    beq.d @.L169
    mov.eq r0,0

    ##### detach_timer( ): __list_del( )

    ld r4,[r13,4] # .entry.prev, D.31439
    st r4,[r3,4] # .prev, D.31439
    st r3,[r4] # .next, D.30246

    We initially tried to fix this by adding barrier() to preempt_* macros
    for !PREEMPT_COUNT but Linus clarified that it was anything but wrong.
    http://www.spinics.net/lists/kernel/msg1512709.html

    [vgupta: updated commitlog]

    Reported-by/Signed-off-by: Christian Ruppert
    Cc: Christian Ruppert
    Cc: Pierrick Hascoet
    Debugged-by/Signed-off-by: Vineet Gupta

    Signed-off-by: Linus Torvalds

    Christian Ruppert
     

08 Apr, 2013

7 commits

  • …efore the ANDCOND test

    Some versions of pHyp will perform the adjunct partition test before the
    ANDCOND test. The result of this is that H_RESOURCE can be returned and
    cause the BUG_ON condition to occur. The HPTE is not removed. So add a
    check for H_RESOURCE, it is ok if this HPTE is not removed as
    pSeries_lpar_hpte_remove is looking for an HPTE to remove and not a
    specific HPTE to remove. So it is ok to just move on to the next slot
    and try again.

    Cc: stable@vger.kernel.org
    Signed-off-by: Michael Wolf <mjw@linux.vnet.ibm.com>
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>

    Michael Wolf
     
  • Pull KVM fix from Gleb Natapov:
    "Bugfix for the regression introduced by commit c300aa64ddf5"

    * git://git.kernel.org/pub/scm/virt/kvm/kvm:
    KVM: Allow cross page reads and writes from cached translations.

    Linus Torvalds
     
  • Pull x86 fixes from Peter Anvin:
    "Two quite small fixes: one a build problem, and the other fixes
    seccomp filters on x32."

    * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86: Fix rebuild with EFI_STUB enabled
    x86: remove the x32 syscall bitmask from syscall_get_nr()

    Linus Torvalds
     
  • Interrupt handlers are always invoked with interrupts disabled, so
    remove all uses of the deprecated IRQF_DISABLED flag.

    Cc: Richard Henderson
    Cc: Ivan Kokshaysky
    Reviewed-by: Matt Turner
    Signed-off-by: Will Deacon
    Signed-off-by: Michael Cree
    Signed-off-by: Linus Torvalds

    Will Deacon
     
  • Linux has expected that interrupt handlers are executed with local
    interrupts disabled for a while now, so ensure that this is the case on
    Alpha even for non-device interrupts such as IPIs.

    Without this patch, secondary boot results in the following backtrace:

    warning: at kernel/softirq.c:139 __local_bh_enable+0xb8/0xd0()
    trace:
    __local_bh_enable+0xb8/0xd0
    irq_enter+0x74/0xa0
    scheduler_ipi+0x50/0x100
    handle_ipi+0x84/0x260
    do_entint+0x1ac/0x2e0
    irq_exit+0x60/0xa0
    handle_irq+0x98/0x100
    do_entint+0x2c8/0x2e0
    ret_from_sys_call+0x0/0x10
    load_balance+0x3e4/0x870
    cpu_idle+0x24/0x80
    rcu_eqs_enter_common.isra.38+0x0/0x120
    cpu_idle+0x40/0x80
    rest_init+0xc0/0xe0
    _stext+0x1c/0x20

    A similar dump occurs if you try to reboot using magic-sysrq.

    Cc: Richard Henderson
    Cc: Ivan Kokshaysky
    Cc: Matt Turner
    Reviewed-by: Matt Turner
    Signed-off-by: Will Deacon
    Signed-off-by: Michael Cree
    Signed-off-by: Linus Torvalds

    Will Deacon
     
  • Due to all of the goodness being packed into today's kernels, the
    resulting image isn't as slim as it once was.

    In light of this, don't pass -msmall-data to gcc, which otherwise results
    in link failures due to impossible relocations when compiling anything but
    the most trivial configurations.

    Cc: Richard Henderson
    Cc: Ivan Kokshaysky
    Reviewed-by: Matt Turner
    Tested-by: Thorsten Kranzkowski
    Signed-off-by: Will Deacon
    Signed-off-by: Michael Cree
    Signed-off-by: Linus Torvalds

    Will Deacon
     
  • Fixes a NULL pointer dereference at boot on UP1500.

    Cc: stable@vger.kernel.org
    Reviewed-and-Tested-by: Matt Turner
    Signed-off-by: Jay Estabrook
    Signed-off-by: Matt Turner
    Signed-off-by: Michael Cree
    Signed-off-by: Linus Torvalds

    Jay Estabrook
     

07 Apr, 2013

1 commit

  • This patch adds support for kvm_gfn_to_hva_cache_init functions for
    reads and writes that will cross a page. If the range falls within
    the same memslot, then this will be a fast operation. If the range
    is split between two memslots, then the slower kvm_read_guest and
    kvm_write_guest are used.

    Tested: Test against kvm_clock unit tests.

    Signed-off-by: Andrew Honig
    Signed-off-by: Gleb Natapov

    Andrew Honig
     

06 Apr, 2013

2 commits

  • eboot.o and efi_stub_$(BITS).o didn't get added to "targets", and hence
    their .cmd files don't get included by the build machinery, leading to
    the files always getting rebuilt.

    Rather than adding the two files individually, take the opportunity and
    add $(VMLINUX_OBJS) to "targets" instead, thus allowing the assignment
    at the top of the file to be shrunk quite a bit.

    At the same time, remove a pointless flags override line - the variable
    assigned to was misspelled anyway, and the options added are
    meaningless for assembly sources.

    [ hpa: the patch is not minimal, but I am taking it for -urgent anyway
    since the excess impact of the patch seems to be small enough. ]

    Signed-off-by: Jan Beulich
    Link: http://lkml.kernel.org/r/515C5D2502000078000CA6AD@nat28.tlf.novell.com
    Cc: Matthew Garrett
    Cc: Matt Fleming
    Signed-off-by: H. Peter Anvin

    Jan Beulich
     
  • Pull MIPS fixes from Ralf Baechle:
    "Fixes for a number of small glitches in various corners of the MIPS
    tree. No particular areas is standing out.

    With this applied all MIPS defconfigs are building fine. No merge
    conflicts are expected."

    * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus:
    MIPS: Delete definition of SA_RESTORER.
    MIPS: Fix ISA level which causes secondary cache init bypassing and more
    MIPS: Fix build error cavium-octeon without CONFIG_SMP
    MIPS: Kconfig: Rename SNIPROM too
    MIPS: Alchemy: Fix typo "CONFIG_DEBUG_PCI"
    MIPS: Unbreak function tracer for 64-bit kernel.

    Linus Torvalds
     

05 Apr, 2013

6 commits

  • SA_RESTORER used to be defined as 0x04000000 but only the O32 ABI ever
    supported its use and no libc was using it, so the entire sa-restorer
    functionality was removed with lmo commit 39bffc12c3580ab [Zap sa_restorer.]
    for 2.5.48 retaining only the SA_RESTORER definition as a reminder to avoid
    accidental reuse of the mask bit.

    Upstream cdef9602fbf1871a43f0f1b5cea10dd0f275167d [signal: always clear
    sa_restorer on execve] adds code that assumes sa_sigaction has an
    sa_restorer field, if SA_RESTORER is defined which would break MIPS.
    So remove the SA_RESTORER definition before the v3.8.4 merge.

    Signed-off-by: Ralf Baechle
    (cherry picked from commit 17da8d63add23830892ac4dc2cbb3b5d4ffb79a8)

    Ralf Baechle
     
  • The commit a96102be70 introduced set_isa() where compatible ISA info is
    also set aside from the one gets passed in. It means, for example, 1004K
    will have MIPS_CPU_ISA_M32R2/M32R1/II/I flags. This leads to things like
    the following inappropriate:

    if (c->isa_level == MIPS_CPU_ISA_M32R1 ||
    c->isa_level == MIPS_CPU_ISA_M32R2 ||
    c->isa_level == MIPS_CPU_ISA_M64R1 ||
    c->isa_level == MIPS_CPU_ISA_M64R2)

    This patch fixes it.

    Signed-off-by: Deng-Cheng Zhu
    Cc: Steven J. Hill
    Cc: linux-mips@linux-mips.org
    Signed-off-by: Ralf Baechle

    Deng-Cheng Zhu
     
  • Singed-off-by: EunBong Song
    Cc: linux-mips@linux-mips.org
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: Ralf Baechle

    EunBong Song
     
  • CONFIG_SNIPROM was renamed to CONFIG_FW_SNIPROM in v3.8. Let's rename
    SNIPROM itself too.

    Signed-off-by: Paul Bolle
    Cc: linux-mips@linux-mips.org;
    Cc: linux-kernel@vger.kernel.org
    Cc: Thomas Bogendoerfer
    Signed-off-by: Ralf Baechle

    Paul Bolle
     
  • Commit 7517de348663b08a808aff44b5300e817157a568 ("MIPS: Alchemy: Redo
    PCI as platform driver") added a reference to CONFIG_DEBUG_PCI. Change
    it to CONFIG_PCI_DEBUG, as that is a valid Kconfig macro.

    Also add a newline to a debugging printk that this fix enables.

    Signed-off-by: Paul Bolle
    Cc: Sergei Shtylyov
    Cc: linux-mips@linux-mips.org
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: Ralf Baechle

    Paul Bolle
     
  • Commit 58b69401c797 [MIPS: Function tracer: Fix broken function tracing]
    completely broke the function tracer for 64-bit kernels. The symptom is
    a system hang very early in the boot process.

    The fix: Remove/fix $sp adjustments for 64-bit case.

    Signed-off-by: David Daney
    Cc: linux-mips@linux-mips.org
    Cc: Al Cooper
    Cc: viric@viric.name
    Cc: stable@vger.kernel.org # 3.8.x
    Signed-off-by: Ralf Baechle

    David Daney
     

04 Apr, 2013

2 commits

  • Pull ARM fixes from Russell King:
    "Another round of ARM fixes, which include:
    - Fixing a problem with LPAE mapping sections
    - Reporting of some hwcaps on Krait CPUs
    - Avoiding repetitive warnings in the breakpoint code
    - Fixing a build error noticed on Dove platforms with PJ4 CPUs
    - Fix masking of level 2 cache revision.
    - Fixing timer-based udelay()
    - A larger fix for an erratum causing people major grief with Cortex
    A15 CPUs"

    * 'fixes' of git://git.linaro.org/people/rmk/linux-arm:
    ARM: 7690/1: mm: fix CONFIG_LPAE typos
    ARM: 7689/1: add unwind annotations to ftrace asm
    ARM: 7685/1: delay: use private ticks_per_jiffy field for timer-based delay ops
    ARM: 7684/1: errata: Workaround for Cortex-A15 erratum 798181 (TLBI/DSB operations)
    ARM: 7682/1: cache-l2x0: fix masking of RTL revision numbering and set_debug init
    ARM: iWMMXt: always enable iWMMXt support with PJ4 CPUs
    ARM: 7681/1: hw_breakpoint: use warn_once to avoid spam from reset_ctrl_regs()
    ARM: 7678/1: Work around faulty ISAR0 register in some Krait CPUs
    ARM: 7680/1: Detect support for SDIV/UDIV from ISAR0 register
    ARM: 7679/1: Clear IDIVT hwcap if CONFIG_ARM_THUMB=n
    ARM: 7677/1: LPAE: Fix mapping in alloc_init_section for unaligned addresses
    ARM: KVM: vgic: take distributor lock on sync_hwstate path
    ARM: KVM: vgic: force EOIed LRs to the empty state

    Linus Torvalds
     
  • Pull s390 fixes from Martin Schwidefsky:
    "Just a bunch of bugfixes"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
    s390/mm: provide emtpy check_pgt_cache() function
    s390/uaccess: fix page table walk
    s390/3270: fix minor_start issue
    s390/uaccess: fix clear_user_pt()
    s390/scm_blk: fix error return code in scm_blk_init()
    s390/scm_block: fix printk format string
    drivers/Kconfig: add several missing GENERIC_HARDIRQS dependencies

    Linus Torvalds
     

03 Apr, 2013

8 commits

  • CONFIG_LPAE doesn't exist: the correct option is CONFIG_ARM_LPAE, so fix
    up the two typos under arch/arm/.

    The fix to head.S is slightly scary, but this is just for setting up
    an early io-mapping for the serial port when running on a big-endian,
    LPAE system. Since these systems don't exist in the wild (at least, I
    have no access to one outside of kvmtool, which doesn't provide a serial
    port suitable for earlyprintk), then we can revisit the code later if it
    causes any problems.

    Signed-off-by: Paul Bolle
    Signed-off-by: Will Deacon
    Signed-off-by: Russell King

    Paul Bolle
     
  • Add unwind annotations to the ftrace assembly code so that the function
    tracer's stacktracing options (func_stack_trace, etc.) work when
    CONFIG_ARM_UNWIND is enabled.

    Signed-off-by: Rabin Vincent
    Signed-off-by: Russell King

    Rabin Vincent
     
  • Commit 70264367a243 ("ARM: 7653/2: do not scale loops_per_jiffy when
    using a constant delay clock") fixed a problem with our timer-based
    delay loop, where loops_per_jiffy is scaled by cpufreq yet used directly
    by the timer delay ops.

    This patch fixes the problem in a more elegant way by keeping a private
    ticks_per_jiffy field in the delay ops, independent of loops_per_jiffy
    and therefore not subject to scaling. The loop-based delay continues to
    use loops_per_jiffy directly, as it should.

    Acked-by: Nicolas Pitre
    Signed-off-by: Will Deacon
    Signed-off-by: Russell King

    Will Deacon
     
  • On Cortex-A15 (r0p0..r3p2) the TLBI/DSB are not adequately shooting down
    all use of the old entries. This patch implements the erratum workaround
    which consists of:

    1. Dummy TLBIMVAIS and DSB on the CPU doing the TLBI operation.
    2. Send IPI to the CPUs that are running the same mm (and ASID) as the
    one being invalidated (or all the online CPUs for global pages).
    3. CPU receiving the IPI executes a DMB and CLREX (part of the exception
    return code already).

    Signed-off-by: Catalin Marinas
    Signed-off-by: Russell King

    Catalin Marinas
     
  • Commit b8db6b8 (ARM: 7547/4: cache-l2x0: add support for Aurora L2 cache
    ctrl) moved the masking of the part ID which caused the RTL version to be
    lost. Commit 6248d06 (ARM: 7545/1: cache-l2x0: make outer_cache_fns a
    field of l2x0_of_data) changed how .set_debug is initialized. Both commits
    break commit 74ddcdb (ARM: 7608/1: l2x0: Only set .set_debug
    on PL310 r3p0 and earlier) which uses the RTL version to conditionally set
    .set_debug function pointer. Commit b8db6b8 also caused the printed cache
    ID to be missing the version information.

    Fix this by reverting how the part number is masked so the RTL version
    info is maintained. The cache-id-part DT property does not set the RTL
    bits so masking them should have no effect. Also, re-arrange the order
    of the function pointer init so the .set_debug function can be overridden.

    Reported-by: Paolo Pisati
    Signed-off-by: Rob Herring
    Cc: Gregory CLEMENT
    Cc: Yehuda Yitschak
    Signed-off-by: Russell King

    Rob Herring
     
  • Jason Cooper reports these build errors:
    arch/arm/kernel/built-in.o: In function `iwmmxt_do':
    /.../arch/arm/kernel/pj4-cp0.c:36: undefined reference to `iwmmxt_task_release'
    /.../arch/arm/kernel/pj4-cp0.c:40: undefined reference to `iwmmxt_task_switch'
    make: *** [vmlinux] Error 1

    This is caused because the PJ4 code explicitly references the iWMMXt
    code, but doesn't require it to be built. Fix this by ensuring that
    iWMMXt is always enabled with PJ4.

    Reported-by: Jason Cooper
    Signed-off-by: Russell King

    Russell King
     
  • Pull MIPS fixes from Ralf Baechle:
    "A collection of fixes pretty much across the MIPS code. Even the
    change to include/linux/signal.h by David Howells' 2a1486981c13 ("Fix
    breakage in MIPS siginfo handling") should be considered MIPS-specific
    as it touches an ifdefed segment that is only relevant to MIPS and
    which unfortunately can't be made to go away entirely."

    * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus:
    Fix breakage in MIPS siginfo handling
    Revert "MIPS: BCM63XX: Call board_register_device from device_initcall()"
    MIPS: BCM63XX: Make nvram checksum failure non fatal
    MIPS: Fix code generation for non-DSP capable CPUs
    MIPS: Fix inconsistent formatting inside /proc/cpuinfo
    MIPS: SEAD3: Enable LL/SC.
    MIPS: Get rid of CONFIG_CPU_HAS_LLSC again
    MIPS: Add dependencies for HAVE_ARCH_TRANSPARENT_HUGEPAGE
    MIPS: VR4133: Fix probe for LL/SC.
    MIPS: Fix logic errors in bitops.c
    MIPS: Use CONFIG_CPU_MIPSR2 in csum_partial.S
    MIPS: compat: Return same error ENOSYS as native for invalid operation.

    Linus Torvalds
     
  • Commit fca460f95e928bae373daa8295877b6905bc62b8 simplified the x32
    implementation by creating a syscall bitmask, equal to 0x40000000, that
    could be applied to x32 syscalls such that the masked syscall number
    would be the same as a x86_64 syscall. While that patch was a nice
    way to simplify the code, it went a bit too far by adding the mask to
    syscall_get_nr(); returning the masked syscall numbers can cause
    confusion with callers that expect syscall numbers matching the x32
    ABI, e.g. unmasked syscall numbers.

    This patch fixes this by simply removing the mask from syscall_get_nr()
    while preserving the other changes from the original commit. While
    there are several syscall_get_nr() callers in the kernel, most simply
    check that the syscall number is greater than zero, in this case this
    patch will have no effect. Of those remaining callers, they appear
    to be few, seccomp and ftrace, and from my testing of seccomp without
    this patch the original commit definitely breaks things; the seccomp
    filter does not correctly filter the syscalls due to the difference in
    syscall numbers in the BPF filter and the value from syscall_get_nr().
    Applying this patch restores the seccomp BPF filter functionality on
    x32.

    I've tested this patch with the seccomp BPF filters as well as ftrace
    and everything looks reasonable to me; needless to say general usage
    seemed fine as well.

    Signed-off-by: Paul Moore
    Link: http://lkml.kernel.org/r/20130215172143.12549.10292.stgit@localhost
    Cc:
    Cc: Will Drewry
    Cc: H. Peter Anvin
    Signed-off-by: H. Peter Anvin

    Paul Moore
     

02 Apr, 2013

4 commits

  • Pull ARM SoC bug fixes from Arnd Bergmann:
    "After a quiet set of fixes for 3.9-rc4, a lot of people woke up and
    sent urgent fixes for 3.9. I pushed back on a number of them that got
    deferred to 3.10, but these are the ones that seemed important.

    Regression in 3.9:

    - Multiple regressions in OMAP2+ clock cleanup
    - SH-Mobile frame buffer bug fix that merged here because of
    maintainer MIA
    - ux500 prcmu changes broke DT booting
    - MMCI duplicated regulator setup on ux500
    - New ux500 clock driver broke ethernet on snowball
    - Local interrupt driver for mvebu broke ethernet
    - MVEBU GPIO driver did not get set up right on Orion DT
    - incorrect interrupt number on Orion crypto for DT

    Long-standing bugs, including candidates for stable:

    - Kirkwood MMC needs to disable invalid card detect pins
    - MV SDIO pinmux was wrong on Mirabox
    - GoFlex Net board file needs to set NAND chip delay
    - MSM timer restart race
    - ep93xx early debug code broke in 3.7
    - i.MX CPU hotplug race
    - Incorrect clock setup for OMAP1 USB
    - Workaround for bad clock setup by some old OMAP4 boot loaders
    - Static I/O mappings on cns3xxx since 3.2"

    * tag 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
    ARM: cns3xxx: fix mapping of private memory region
    arm: mvebu: Fix pinctrl for Armada 370 Mirabox SDIO port.
    arm: orion5x: correct IRQ used in dtsi for mv_cesa
    arm: orion5x: fix orion5x.dtsi gpio parameters
    ARM: Kirkwood: fix unused mvsdio gpio pins
    arm: mvebu: Use local interrupt only for the timer 0
    ARM: kirkwood: Fix chip-delay for GoFlex Net
    ARM: ux500: Enable the clock controlling Ethernet on Snowball
    ARM: ux500: Stop passing ios_handler() as an MMCI power controlling call-back
    ARM: ux500: Apply the TCPM and TCDM locations and sizes to dbx5x0 DT
    fbdev: sh_mobile_lcdc: fixup B side hsync adjust settings
    ARM: OMAP: clocks: Delay clk inits atleast until slab is initialized
    ARM: imx: fix sync issue between imx_cpu_die and imx_cpu_kill
    ARM: msm: Stop counting before reprogramming clockevent
    ARM: ep93xx: Fix wait for UART FIFO to be empty
    ARM: OMAP4: PM: fix PM regression introduced by recent clock cleanup
    ARM: OMAP3: hwmod data: keep MIDLEMODE in force-standby for musb
    ARM: OMAP4: clock data: lock USB DPLL on boot
    ARM: OMAP1: fix USB host on 1710

    Linus Torvalds
     
  • From Anton Vorontsov :

    This tag includes Mac Lin's work to revive CNS3xxx booting:

    "Since commit 0536bdf33faf (ARM: move iotable mappings within the vmalloc
    region), [...] the pre-defined iotable mappings is not in the vmalloc
    region. [...] move the iotable mappings into the vmalloc region, and
    merge the MPCore private memory region (containing the SCU, the GIC and
    the TWD) as a single region."

    Plus there is a small cosmetic fix, also from Mac Lin.

    * tag 'v3.9-rc1_cns3xxx_fixes' of git://git.infradead.org/users/cbou/linux-cns3xxx:
    ARM: cns3xxx: fix mapping of private memory region

    [arnd: dropped the cosmetic fix from the merge as it is not needed for 3.9]

    Signed-off-by: Arnd Bergmann

    Arnd Bergmann
     
  • All architectures need to provide a check_pgt_cache() function. The s390 one
    got lost somewhere.
    So reintroduce it to prevent future compile errors e.g. if Thomas Gleixner's
    idle loop rework patches get merged.

    Signed-off-by: Heiko Carstens
    Signed-off-by: Martin Schwidefsky

    Heiko Carstens
     
  • When translating user space addresses to kernel addresses the follow_table()
    function had two bugs:

    - PROT_NONE mappings could be read accessed via the kernel mapping. That is
    e.g. putting a filename into a user page, then protecting the page with
    PROT_NONE and afterwards issuing the "open" syscall with a pointer to
    the filename would incorrectly succeed.

    - when walking the page tables it used the pgd/pud/pmd/pte primitives which
    with dynamic page tables give no indication which real level of page tables
    is being walked (region2, region3, segment or page table). So in case of an
    exception the translation exception code passed to __handle_fault() is not
    necessarily correct.
    This is not really an issue since __handle_fault() doesn't evaluate the code.
    Only in case of e.g. a SIGBUS this code gets passed to user space. If user
    space can do something sane with the value is a different question though.

    To fix these issues don't use any Linux primitives. Only walk the page tables
    like the hardware would do it, however we leave quite some checks away since
    we know that we only have full size page tables and each index is within bounds.

    In theory this should fix all issues...

    Signed-off-by: Heiko Carstens
    Reviewed-by: Gerald Schaefer
    Signed-off-by: Martin Schwidefsky

    Heiko Carstens
     

01 Apr, 2013

1 commit


31 Mar, 2013

1 commit

  • Since commit 0536bdf33faf (ARM: move iotable mappings within the vmalloc
    region), the Cavium CNS3xxx cannot boot anymore.

    This is caused by the pre-defined iotable mappings is not in the vmalloc
    region. This patch move the iotable mappings into the vmalloc region, and
    merge the MPCore private memory region (containing the SCU, the GIC and
    the TWD) as a single region.

    Signed-off-by: Mac Lin
    Signed-off-by: Anton Vorontsov
    Cc: stable@vger.kernel.org [v3.3+]

    Mac Lin
     

30 Mar, 2013

3 commits

  • The current Tilera boot infrastructure now provides the initramfs
    to Linux as a Tilera-hypervisor file named "initramfs", rather than
    "initramfs.cpio.gz", as before. (This makes it reasonable to use
    other compression techniques than gzip on the file without having to
    worry about the name causing confusion.) Adapt to use the new name,
    but also fall back to checking for the old name.

    Cc'ing to stable so that older kernels will remain compatible with
    newer Tilera boot infrastructure.

    Signed-off-by: Chris Metcalf
    Cc: stable@vger.kernel.org

    Chris Metcalf
     
  • Commit 3e7fc708eb41 ("ia64 idle: delete pm_idle") in 3.9-rc1 didn't
    finish the job, leaving an un-initialized reference to (*idle)().

    [ Haven't seen a crash from this - but seems like we are just being
    lucky that "idle" is zero so it does get initialized before we jump to
    randomland - Len ]

    Reported-by: Lars-Peter Clausen
    Signed-off-by: Len Brown
    Signed-off-by: Tony Luck
    Signed-off-by: Linus Torvalds

    Len Brown
     
  • Pull arc architecture fixes from Vineet Gupta:
    "This includes fix for a serious bug in DMA mapping API, make
    allyesconfig wreckage, removal of bogus email-list placeholder in
    MAINTAINERS, a typo in ptrace helper code and last remaining changes
    for syscall ABI v3 which we are finally starting to transition-to
    internally.

    The request is late than I intended to - but I was held up with
    debugging a timer link list corruption, for which a proposed fix to
    generic timer code was sent out to lkml/tglx earlier today."

    * 'for-curr' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc:
    ARC: Fix the typo in event identifier flags used by ptrace
    arc: fix dma_address assignment during dma_map_sg()
    ARC: Remove SET_PERSONALITY (tracks cross-arch change)
    ARC: ABIv3: fork/vfork wrappers not needed in "no-legacy-syscall" ABI
    ARC: ABIv3: Print the correct ABI ver
    ARC: make allyesconfig build breakages
    ARC: MAINTAINERS update for ARC

    Linus Torvalds
     

29 Mar, 2013

2 commits

  • From Jason Cooper :

    mvebu fixes for v3.9 (round 2)

    - mvebu
    - interrupt fix
    - DT pinctrl definition for sdio

    - kirkwood
    - chip-delay for GoFlex Net (fix reading nand)
    - set mvsdio unused pins to invalid value for legacy boards (0 is valid)

    - orion5x
    - fix typo in gpio parameters
    - use correct irq in dtsi

    * tag 'mvebu_fixes_for_v3.9_round2' of git://git.infradead.org/users/jcooper/linux:
    arm: mvebu: Fix pinctrl for Armada 370 Mirabox SDIO port.
    arm: orion5x: correct IRQ used in dtsi for mv_cesa
    arm: orion5x: fix orion5x.dtsi gpio parameters
    ARM: Kirkwood: fix unused mvsdio gpio pins
    arm: mvebu: Use local interrupt only for the timer 0
    ARM: kirkwood: Fix chip-delay for GoFlex Net

    Signed-off-by: Arnd Bergmann

    Arnd Bergmann
     
  • Pull ACPI and power management fixes from Rafael J Wysocki:

    - Fix for a recent cpufreq regression related to acpi-cpufreq and
    suspend/resume from Viresh Kumar.

    - cpufreq stats reference counting fix from Viresh Kumar.

    - intel_pstate driver fixes from Dirk Brandewie and Konrad Rzeszutek
    Wilk.

    - New ACPI suspend blacklist entry for Sony Vaio VGN-FW21M from Fabio
    Valentini.

    - ACPI Platform Error Interface (APEI) fix from Chen Gong.

    - PCI root bridge hotplug locking fix from Yinghai Lu.

    * tag 'pm+acpi-3.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
    PCI / ACPI: hold acpi_scan_lock during root bus hotplug
    ACPI / APEI: fix error status check condition for CPER
    ACPI / PM: fix suspend and resume on Sony Vaio VGN-FW21M
    cpufreq: acpi-cpufreq: Don't set policy->related_cpus from .init()
    cpufreq: stats: do cpufreq_cpu_put() corresponding to cpufreq_cpu_get()
    intel-pstate: Use #defines instead of hard-coded values.
    cpufreq / intel_pstate: Fix calculation of current frequency
    cpufreq / intel_pstate: Add function to check that all MSRs are valid

    Linus Torvalds