29 Jan, 2015

2 commits


28 Jan, 2015

2 commits

  • Pull networking fixes from David Miller:

    1) Don't OOPS on socket AIO, from Christoph Hellwig.

    2) Scheduled scans should be aborted upon RFKILL, from Emmanuel
    Grumbach.

    3) Fix sleep in atomic context in kvaser_usb, from Ahmed S Darwish.

    4) Fix RCU locking across copy_to_user() in bpf code, from Alexei
    Starovoitov.

    5) Lots of crash, memory leak, short TX packet et al bug fixes in
    sh_eth from Ben Hutchings.

    6) Fix memory corruption in SCTP wrt. INIT collitions, from Daniel
    Borkmann.

    7) Fix return value logic for poll handlers in netxen, enic, and bnx2x.
    From Eric Dumazet and Govindarajulu Varadarajan.

    8) Header length calculation fix in mac80211 from Fred Chou.

    9) mv643xx_eth doesn't handle highmem correctly in non-TSO code paths.
    From Ezequiel Garcia.

    10) udp_diag has bogus logic in it's hash chain skipping, copy same fix
    tcp diag used. From Herbert Xu.

    11) amd-xgbe programs wrong rx flow control register, from Thomas
    Lendacky.

    12) Fix race leading to use after free in ping receive path, from Subash
    Abhinov Kasiviswanathan.

    13) Cache redirect routes otherwise we can get a heavy backlog of rcu
    jobs liberating DST_NOCACHE entries. From Hannes Frederic Sowa.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (48 commits)
    net: don't OOPS on socket aio
    stmmac: prevent probe drivers to crash kernel
    bnx2x: fix napi poll return value for repoll
    ipv6: replacing a rt6_info needs to purge possible propagated rt6_infos too
    sh_eth: Fix DMA-API usage for RX buffers
    sh_eth: Check for DMA mapping errors on transmit
    sh_eth: Ensure DMA engines are stopped before freeing buffers
    sh_eth: Remove RX overflow log messages
    ping: Fix race in free in receive path
    udp_diag: Fix socket skipping within chain
    can: kvaser_usb: Fix state handling upon BUS_ERROR events
    can: kvaser_usb: Retry the first bulk transfer on -ETIMEDOUT
    can: kvaser_usb: Send correct context to URB completion
    can: kvaser_usb: Do not sleep in atomic context
    ipv4: try to cache dst_entries which would cause a redirect
    samples: bpf: relax test_maps check
    bpf: rcu lock must not be held when calling copy_to_user()
    net: sctp: fix slab corruption from use after free on INIT collisions
    net: mv643xx_eth: Fix highmem support in non-TSO egress path
    sh_eth: Fix serialisation of interrupt disable with interrupt & NAPI handlers
    ...

    Linus Torvalds
     
  • Pull powerpc fixes from Michael Ellerman:
    "Two powerpc fixes"

    * tag 'powerpc-3.19-5' of git://git.kernel.org/pub/scm/linux/kernel/git/mpe/linux:
    powerpc/powernv: Restore LPCR with LPCR_PECE1 cleared
    powerpc/xmon: Fix another endiannes issue in RTAS call from xmon

    Linus Torvalds
     

27 Jan, 2015

1 commit

  • Commit e6023367d779 ("x86, kaslr: Prevent .bss from overlaping initrd")
    added Perl to the required build environment. This reimplements in
    shell the Perl script used to find the size of the kernel with bss and
    brk added.

    Signed-off-by: Kees Cook
    Reported-by: Rob Landley
    Acked-by: Rob Landley
    Cc: Anca Emanuel
    Cc: Fengguang Wu
    Cc: Junjie Mao
    Cc: Kees Cook
    Cc: Thomas Gleixner
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Kees Cook
     

26 Jan, 2015

3 commits

  • Pull x86 fixes from Thomas Gleixner:
    "Hopefully the last round of fixes for 3.19

    - regression fix for the LDT changes
    - regression fix for XEN interrupt handling caused by the APIC
    changes
    - regression fixes for the PAT changes
    - last minute fixes for new the MPX support
    - regression fix for 32bit UP
    - fix for a long standing relocation issue on 64bit tagged for stable
    - functional fix for the Hyper-V clocksource tagged for stable
    - downgrade of a pr_err which tends to confuse users

    Looks a bit on the large side, but almost half of it are valuable
    comments"

    * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/tsc: Change Fast TSC calibration failed from error to info
    x86/apic: Re-enable PCI_MSI support for non-SMP X86_32
    x86, mm: Change cachemode exports to non-gpl
    x86, tls: Interpret an all-zero struct user_desc as "no segment"
    x86, tls, ldt: Stop checking lm in LDT_empty
    x86, mpx: Strictly enforce empty prctl() args
    x86, mpx: Fix potential performance issue on unmaps
    x86, mpx: Explicitly disable 32-bit MPX support on 64-bit kernels
    x86, hyperv: Mark the Hyper-V clocksource as being continuous
    x86: Don't rely on VMWare emulating PAT MSR correctly
    x86, irq: Properly tag virtualization entry in /proc/interrupts
    x86, boot: Skip relocs when load address unchanged
    x86/xen: Override ACPI IRQ management callback __acpi_unregister_gsi
    ACPI: pci: Do not clear pci_dev->irq in acpi_pci_irq_disable()
    x86/xen: Treat SCI interrupt as normal GSI interrupt

    Linus Torvalds
     
  • Pull ARM SoC fixes from Olof Johansson:
    "A week's worth of fixes for various ARM platforms. Diff wise, the
    largest fix is for OMAP to deal with how GIC now registers interrupts
    (irq_domain_add_legacy() -> irq_domain_add_linear() changes).

    Besides this, a few more renesas platforms needed the GIC instatiation
    done for legacy boards. There's also a fix that disables coherency of
    mvebu due to issues, and a few other smaller fixes"

    * tag 'armsoc-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
    arm64: dts: add baud rate to Juno stdout-path
    ARM: dts: imx25: Fix PWM "per" clocks
    bus: mvebu-mbus: fix support of MBus window 13
    Merge tag 'mvebu-fixes-3.19-3' of git://git.infradead.org/linux-mvebu into fixes
    ARM: mvebu: completely disable hardware I/O coherency
    ARM: OMAP: Work around hardcoded interrupts
    ARM: shmobile: r8a7779: Instantiate GIC from C board code in legacy builds
    ARM: shmobile: r8a7778: Instantiate GIC from C board code in legacy builds
    arm: boot: dts: dra7: enable dwc3 suspend PHY quirk

    Linus Torvalds
     
  • Pull vfs fixes from Al Viro:
    "A couple of fixes - deadlock in CIFS and build breakage in cris serial
    driver (resurfaced f_dentry in there)"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
    VFS: Convert file->f_dentry->d_inode to file_inode()
    fix deadlock in cifs_ioctl_clone()

    Linus Torvalds
     

25 Jan, 2015

1 commit

  • The commit (3d125f9c91c5) cause i.MX6SX sdb enet cannot work. The cause is
    the commit add mdio node with un-correct phy address.

    The patch just correct i.MX6sx sdb board enet phy address.

    V2:
    * As Shawn's suggestion that unit-address should match 'reg' property, so
    update ethernet-phy unit-address.

    Acked-by: Stefan Agner
    Signed-off-by: Fugang Duan
    Acked-by: Shawn Guo
    Signed-off-by: David S. Miller

    Nimrod Andy
     

24 Jan, 2015

7 commits

  • Pull PCI fixes from Bjorn Helgaas:
    "These are fixes for:

    - a resource management problem that causes a Radeon "Fatal error
    during GPU init" on machines where the BIOS programmed an invalid
    Root Port window. This was a regression in v3.16.

    - an Atheros AR93xx device that doesn't handle PCI bus resets
    correctly. This was a regression in v3.14.

    - an out-of-date email address"

    * tag 'pci-v3.19-fixes-1' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci:
    MAINTAINERS: Update Richard Zhu's email address
    sparc/PCI: Clip bridge windows to fit in upstream windows
    powerpc/PCI: Clip bridge windows to fit in upstream windows
    parisc/PCI: Clip bridge windows to fit in upstream windows
    mn10300/PCI: Clip bridge windows to fit in upstream windows
    microblaze/PCI: Clip bridge windows to fit in upstream windows
    ia64/PCI: Clip bridge windows to fit in upstream windows
    frv/PCI: Clip bridge windows to fit in upstream windows
    alpha/PCI: Clip bridge windows to fit in upstream windows
    x86/PCI: Clip bridge windows to fit in upstream windows
    PCI: Add pci_claim_bridge_resource() to clip window if necessary
    PCI: Add pci_bus_clip_resource() to clip to fit upstream window
    PCI: Pass bridge device, not bus, when updating bridge windows
    PCI: Mark Atheros AR93xx to avoid bus reset
    PCI: Add flag for devices where we can't use bus reset

    Linus Torvalds
     
  • Pull devicetree bug fixes and documentation updates from Grant Likely:
    "A few bugfixes for the new DT overlay feature, documentation updates,
    spelling corrections, and changes to MAINTAINERS. Nothing earth
    shattering here"

    * tag 'devicetree-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/glikely/linux:
    of/unittest: Overlays with sub-devices tests
    of/platform: Handle of_populate drivers in notifier
    of/overlay: Do not generate duplicate nodes
    devicetree: document the "qemu" and "virtio" vendor prefixes
    devicetree: document ARM bindings for QEMU's Firmware Config interface
    Documentation: of: fix typo in graph bindings
    dma-mapping: fix debug print to display correct dma_pfn_offset
    of: replace Asahi Kasei Corp vendor prefix
    ARM: dt: GIC: Spelling s/specific/specifier/, s/flaggs/flags/
    dt/bindings: arm-boards: Spelling s/pointong/pointing/
    MAINTAINERS: Update DT website and git repository
    MAINTAINERS: drop DT regex matching on of_get_property and of_match_table

    Linus Torvalds
     
  • …awnguo/linux into fixes

    Merge "ARM: imx: fixes for 3.19, 2nd round" from Shawn Guo:

    The i.MX fixes for 3.19, 2nd round:
    - Correct pwm clock assignment in i.MX25 device tree to fix the broken
    pwm support on i.MX25

    * tag 'imx-fixes-3.19-2' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux:
    ARM: dts: imx25: Fix PWM "per" clocks

    Signed-off-by: Olof Johansson <olof@lixom.net>

    Olof Johansson
     
  • Without explicit command-line parameters, the Juno UART ends up running
    at 57600 baud in the kernel, which is at odds with the 115200 baud used
    by the rest of the firmware. Since commit 7914a7c5651a5161 now lets us
    fix this by specifying default options in stdout-path, do so.

    Acked-by: Mark Rutland
    Signed-off-by: Robin Murphy
    Signed-off-by: Olof Johansson

    Robin Murphy
     
  • Pull kvm fixes from Paolo Bonzini:
    "Three small fixes.

    Two for x86 and one avoids that sparse bails out"

    * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
    KVM: x86: SYSENTER emulation is broken
    KVM: x86: Fix of previously incomplete fix for CVE-2014-8480
    KVM: fix sparse warning in include/trace/events/kvm.h

    Linus Torvalds
     
  • Pull ARM fixes from Russell King:
    "Another round of small ARM fixes.

    restore_user_regs early stack deallocation is buggy in the presence of
    FIQs which switch to SVC mode, and could lead to corrupted registers
    being returned to a user process given an inopportune FIQ event.

    Another bug was spotted in the ARM perf code where it could lose track
    of perf counter overflows, leading to incorrect perf results.

    Lastly, a bug in arm_add_memory() was spotted where the memory sizes
    aren't properly rounded. As most people pass properly rounded sizes,
    this hasn't been noticed"

    * 'fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm:
    ARM: 8292/1: mm: fix size rounding-down of arm_add_memory() function
    ARM: 8255/1: perf: Prevent wraparound during overflow
    ARM: 8266/1: Remove early stack deallocation from restore_user_regs

    Linus Torvalds
     
  • Pull two arm64 fixes from Will Deacon:
    "Arm64 fixes seem to come in pairs recently. We've got a fix for
    removing device-tree blobs when doing a make clean and another one
    addressing a missing include, which fixes build failures in -next for
    allmodconfig (spotted by Mark's buildbot).

    Summary from signed tag:

    - fix cleaning of .dtbs following directory restructuring
    - fix allmodconfig build breakage in -next due to missing include"

    * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
    arm64: dump: Fix implicit inclusion of definition for PCI_IOBASE
    arm64: Add dtb files to archclean rule

    Linus Torvalds
     

23 Jan, 2015

13 commits

  • SYSENTER emulation is broken in several ways:
    1. It misses the case of 16-bit code segments completely (CVE-2015-0239).
    2. MSR_IA32_SYSENTER_CS is checked in 64-bit mode incorrectly (bits 0 and 1 can
    still be set without causing #GP).
    3. MSR_IA32_SYSENTER_EIP and MSR_IA32_SYSENTER_ESP are not masked in
    legacy-mode.
    4. There is some unneeded code.

    Fix it.

    Cc: stable@vger.linux.org
    Signed-off-by: Nadav Amit
    Signed-off-by: Paolo Bonzini

    Nadav Amit
     
  • STR and SLDT with rip-relative operand can cause a host kernel oops.
    Mark them as DstMem as well.

    Cc: stable@vger.linux.org
    Signed-off-by: Nadav Amit
    Signed-off-by: Paolo Bonzini

    Nadav Amit
     
  • Since c9465b4ec37a68425 (arm64: add support to dump the kernel page tables)
    allmodconfig has failed to build on arm64 as a result of:

    ../arch/arm64/mm/dump.c:55:20: error: 'PCI_IOBASE' undeclared here (not in a function)

    Fix this by explicitly including io.h to ensure that a definition is
    present.

    Signed-off-by: Mark Brown
    Signed-off-by: Will Deacon

    Mark Brown
     
  • Many users see this message when booting without knowning that it is
    of no importance and that TSC calibration may have succeeded by
    another way.

    As explained by Paul Bolle in
    http://lkml.kernel.org/r/1348488259.1436.22.camel@x61.thuisdomein

    "Fast TSC calibration failed" should not be considered as an error
    since other calibration methods are being tried afterward. At most,
    those send a warning if they fail (not an error). So let's change
    the message from error to warning.

    [ tglx: Make if pr_info. It's really not important at all ]

    Fixes: c767a54ba065 x86/debug: Add KERN_ to bare printks, convert printks to pr_
    Signed-off-by: Alexandre Demers
    Cc: stable@vger.kernel.org
    Link: http://lkml.kernel.org/r/1418106470-6906-1-git-send-email-alexandre.f.demers@gmail.com
    Signed-off-by: Thomas Gleixner

    Alexandre Demers
     
  • Commit 0dbc6078c06bc0 ('x86, build, pci: Fix PCI_MSI build on !SMP')
    introduced the dependency that X86_UP_APIC is only available when
    PCI_MSI is false. This effectively prevents PCI_MSI support on 32bit
    UP systems because it disables both APIC and IO-APIC. But APIC support
    is architecturally required for PCI_MSI.

    The intention of the patch was to enforce APIC support when PCI_MSI is
    enabled, but failed to do so.

    Remove the !PCI_MSI dependency from X86_UP_APIC and enforce
    X86_UP_APIC when PCI_MSI support is enabled on 32bit UP systems.

    [ tglx: Massaged changelog ]

    Fixes 0dbc6078c06bc0 'x86, build, pci: Fix PCI_MSI build on !SMP'
    Signed-off-by: Bryan O'Donoghue
    Suggested-by: Thomas Gleixner
    Reviewed-by: Andy Shevchenko
    Cc: Thomas Petazzoni
    Cc: stable@vger.kernel.org
    Link: http://lkml.kernel.org/r/1421967529-9037-1-git-send-email-pure.logic@nexus-software.ie
    Signed-off-by: Thomas Gleixner

    Bryan O'Donoghue
     
  • Commit 281d4078bec3 ("x86: Make page cache mode a real type")
    introduced the symbols __cachemode2pte_tbl and __pte2cachemode_tbl and
    exported them via EXPORT_SYMBOL_GPL. The exports are part of a
    replacement of code which has been EXPORT_SYMBOL before these changes
    resulting in build breakage of out-of-tree non-gpl modules.

    Change EXPORT_SYMBOL_GPL to EXPORT-SYMBOL for these two symbols.

    Fixes: 281d4078bec3 "x86: Make page cache mode a real type"
    Reported-and-tested-by: Steven Noonan
    Signed-off-by: Juergen Gross
    Reviewed-by: Toshi Kani
    Link: http://lkml.kernel.org/r/1421926997-28615-1-git-send-email-jgross@suse.com
    Signed-off-by: Thomas Gleixner

    Juergen Gross
     
  • The Witcher 2 did something like this to allocate a TLS segment index:

    struct user_desc u_info;
    bzero(&u_info, sizeof(u_info));
    u_info.entry_number = (uint32_t)-1;

    syscall(SYS_set_thread_area, &u_info);

    Strictly speaking, this code was never correct. It should have set
    read_exec_only and seg_not_present to 1 to indicate that it wanted
    to find a free slot without putting anything there, or it should
    have put something sensible in the TLS slot if it wanted to allocate
    a TLS entry for real. The actual effect of this code was to
    allocate a bogus segment that could be used to exploit espfix.

    The set_thread_area hardening patches changed the behavior, causing
    set_thread_area to return -EINVAL and crashing the game.

    This changes set_thread_area to interpret this as a request to find
    a free slot and to leave it empty, which isn't *quite* what the game
    expects but should be close enough to keep it working. In
    particular, using the code above to allocate two segments will
    allocate the same segment both times.

    According to FrostbittenKing on Github, this fixes The Witcher 2.

    If this somehow still causes problems, we could instead allocate
    a limit==0 32-bit data segment, but that seems rather ugly to me.

    Fixes: 41bdc78544b8 x86/tls: Validate TLS entries to protect espfix
    Signed-off-by: Andy Lutomirski
    Cc: stable@vger.kernel.org
    Cc: torvalds@linux-foundation.org
    Link: http://lkml.kernel.org/r/0cb251abe1ff0958b8e468a9a9a905b80ae3a746.1421954363.git.luto@amacapital.net
    Signed-off-by: Thomas Gleixner

    Andy Lutomirski
     
  • 32-bit programs don't have an lm bit in their ABI, so they can't
    reliably cause LDT_empty to return true without resorting to memset.
    They shouldn't need to do this.

    This should fix a longstanding, if minor, issue in all 64-bit kernels
    as well as a potential regression in the TLS hardening code.

    Fixes: 41bdc78544b8 x86/tls: Validate TLS entries to protect espfix
    Cc: stable@vger.kernel.org
    Signed-off-by: Andy Lutomirski
    Cc: torvalds@linux-foundation.org
    Link: http://lkml.kernel.org/r/72a059de55e86ad5e2935c80aa91880ddf19d07c.1421954363.git.luto@amacapital.net
    Signed-off-by: Thomas Gleixner

    Andy Lutomirski
     
  • The 3.19 merge window saw some TLB modifications merged which caused a
    performance regression. They were fixed in commit 045bbb9fa.

    Once that fix was applied, I also noticed that there was a small
    but intermittent regression still present. It was not present
    consistently enough to bisect reliably, but I'm fairly confident
    that it came from (my own) MPX patches. The source was reading
    a relatively unused field in the mm_struct via arch_unmap.

    I also noted that this code was in the main instruction flow of
    do_munmap() and probably had more icache impact than we want.

    This patch does two things:
    1. Adds a static (via Kconfig) and dynamic (via cpuid) check
    for MPX with cpu_feature_enabled(). This keeps us from
    reading that cacheline in the mm and trades it for a check
    of the global CPUID variables at least on CPUs without MPX.
    2. Adds an unlikely() to ensure that the MPX call ends up out
    of the main instruction flow in do_munmap(). I've added
    a detailed comment about why this was done and why we want
    it even on systems where MPX is present.

    Signed-off-by: Dave Hansen
    Cc: luto@amacapital.net
    Cc: Dave Hansen
    Link: http://lkml.kernel.org/r/20150108223021.AEEAB987@viggo.jf.intel.com
    Signed-off-by: Thomas Gleixner

    Dave Hansen
     
  • We had originally planned on submitting MPX support in one patch
    set. We eventually broke it up in to two pieces for easier
    review. One of the features that didn't make the first round
    was supporting 32-bit binaries on 64-bit kernels.

    Once we split the set up, we never added code to restrict 32-bit
    binaries from _using_ MPX on 64-bit kernels.

    The 32-bit bounds tables are a different format than the 64-bit
    ones. Without this patch, the kernel will try to read a 32-bit
    binary's tables as if they were the 64-bit version. They will
    likely be noticed as being invalid rather quickly and the app
    will get killed, but that's kinda mean.

    This patch adds an explicit check, and will make a 64-bit kernel
    essentially behave as if it has no MPX support when called from
    a 32-bit binary.

    Signed-off-by: Dave Hansen
    Cc: Andy Lutomirski
    Cc: Dave Hansen
    Link: http://lkml.kernel.org/r/20150108223020.9E9AA511@viggo.jf.intel.com
    Signed-off-by: Thomas Gleixner

    Dave Hansen
     
  • Pull s390 fixes from Martin Schwidefsky:
    "Five more bug fixes from Michael for the s390 BPF jit"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
    s390/bpf: Zero extend parameters before calling C function
    s390/bpf: Fix sk_load_byte_msh()
    s390/bpf: Fix offset parameter for skb_copy_bits()
    s390/bpf: Fix skb_copy_bits() parameter passing
    s390/bpf: Fix JMP_JGE_K (A >= K) and JMP_JGT_K (A > K)

    Linus Torvalds
     
  • Pull one arch/nios2 fix from Ley Foon Tan:
    "Fix kuser trampoline address"

    * tag 'nios2-fixes-v3.19-rc6' of git://git.rocketboards.org/linux-socfpga-next:
    nios2: fix kuser trampoline address

    Linus Torvalds
     
  • Pull module and param fixes from Rusty Russell:
    "Surprising number of fixes this merge window :(

    The first two are minor fallout from the param rework which went in
    this merge window.

    The next three are a series which fixes a longstanding (but never
    previously reported and unlikely , so no CC stable) race between
    kallsyms and freeing the init section.

    Finally, a minor cleanup as our module refcount will now be -1 during
    unload"

    * tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux:
    module: make module_refcount() a signed integer.
    module: fix race in kallsyms resolution during module load success.
    module: remove mod arg from module_free, rename module_memfree().
    module_arch_freeing_init(): new hook for archs before module->module_init freed.
    param: fix uninitialized read with CONFIG_DEBUG_LOCK_ALLOC
    param: initialize store function to NULL if not available.

    Linus Torvalds
     

22 Jan, 2015

3 commits

  • __kuser_sigtramp address should be 0x1044 instead of 0x1040.

    Signed-off-by: Ley Foon Tan

    Ley Foon Tan
     
  • LPCR_PECE1 bit controls whether decrementer interrupts are allowed to
    cause exit from power-saving mode. While waking up from winkle, restoring
    LPCR with LPCR_PECE1 set (i.e Decrementer interrupts allowed) can cause
    issue in the following scenario:

    - All the threads in a core are offlined. The core enters deep winkle.
    - Spurious interrupt wakes up a thread in the core. Here LPCR is restored
    with LPCR_PECE1 bit set.
    - Since it was a spurious interrupt on a offline thread, the thread clears
    the interrupt and goes back to winkle.
    - Here before the thread executes winkle and puts the core into deep winkle,
    if a decrementer interrupt occurs on any of the sibling threads in the core
    that thread wakes up.
    - Since in offline loop we are flushing interrupt only in case of external
    interrupt, the decrementer interrupt does not get flushed. So at this stage
    the thread is stuck in this is loop of waking up at 0x100 due to decrementer
    interrupt, not flushing the interrupt as only external interrupts get flushed,
    entering winkle, waking up at 0x100 again.

    Fix this by programming PORE to restore LPCR with LPCR_PECE1 bit
    cleared when waking up from winkle.

    Signed-off-by: Shreyas B. Prabhu
    Cc: Paul Mackerras
    Cc: Benjamin Herrenschmidt
    Signed-off-by: Michael Ellerman

    Shreyas B. Prabhu
     
  • …ernel/git/horms/renesas into fixes

    Merge "Second Round of Renesas ARM Based SoC Fixes for v3.19" from Simon
    Horman:

    * Instantiate GIC from C board code in legacy builds on r8a7778 and r8a7779

    * tag 'renesas-soc-fixes2-for-v3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas:
    ARM: shmobile: r8a7779: Instantiate GIC from C board code in legacy builds
    ARM: shmobile: r8a7778: Instantiate GIC from C board code in legacy builds

    Signed-off-by: Olof Johansson <olof@lixom.net>

    Olof Johansson
     

21 Jan, 2015

1 commit


20 Jan, 2015

7 commits

  • The Hyper-V clocksource is continuous; mark it accordingly.

    Signed-off-by: K. Y. Srinivasan
    Acked-by: jasowang@redhat.com
    Cc: gregkh@linuxfoundation.org
    Cc: devel@linuxdriverproject.org
    Cc: olaf@aepfle.de
    Cc: apw@canonical.com
    Cc: stable@vger.kernel.org
    Link: http://lkml.kernel.org/r/1421108762-3331-1-git-send-email-kys@microsoft.com
    Signed-off-by: Thomas Gleixner

    K. Y. Srinivasan
     
  • VMWare seems not to emulate the PAT MSR correctly: reaeding
    MSR_IA32_CR_PAT returns 0 even after writing another value to it.

    Commit bd809af16e3ab triggers this VMWare bug when the kernel is
    booted as a VMWare guest.

    Detect this bug and don't use the read value if it is 0.

    Fixes: bd809af16e3ab "x86: Enable PAT to use cache mode translation tables"
    Reported-and-tested-by: Jongman Heo
    Acked-by: Alok N Kataria
    Signed-off-by: Juergen Gross
    Link: http://lkml.kernel.org/r/1421039745-14335-1-git-send-email-jgross@suse.com
    Signed-off-by: Thomas Gleixner

    Juergen Gross
     
  • The mis-naming likely was a copy-and-paste effect.

    Signed-off-by: Jan Beulich
    Cc: stable@vger.kernel.org
    Link: http://lkml.kernel.org/r/54B9408B0200007800055E8B@mail.emea.novell.com
    Signed-off-by: Thomas Gleixner

    Jan Beulich
     
  • On 64-bit, relocation is not required unless the load address gets
    changed. Without this, relocations do unexpected things when the kernel
    is above 4G.

    Reported-by: Baoquan He
    Signed-off-by: Kees Cook
    Tested-by: Thomas D.
    Cc: Vivek Goyal
    Cc: Jan Beulich
    Cc: Junjie Mao
    Cc: Andi Kleen
    Cc: stable@vger.kernel.org
    Link: http://lkml.kernel.org/r/20150116005146.GA4212@www.outflux.net
    Signed-off-by: Thomas Gleixner

    Kees Cook
     
  • As dts files have been reorganised under vendor subdirs, dtb files
    cannot be removed with "make distclean" now. Thus, this patch moves
    dtb files under archclean rule and removes unnecessary entries.

    Cc: Robert Richter
    Cc: Catalin Marinas
    Cc: Will Deacon
    Signed-off-by: Jungseok Lee
    Signed-off-by: Will Deacon

    Jungseok Lee
     
  • Xen overrides __acpi_register_gsi and leaves __acpi_unregister_gsi as is.
    That means, an IRQ allocated by acpi_register_gsi_xen_hvm() or
    acpi_register_gsi_xen() will be freed by acpi_unregister_gsi_ioapic(),
    which may cause undesired effects. So override __acpi_unregister_gsi to
    NULL for safety.

    Signed-off-by: Jiang Liu
    Tested-by: Sander Eikelenboom
    Cc: Tony Luck
    Cc: xen-devel@lists.xenproject.org
    Cc: Konrad Rzeszutek Wilk
    Cc: David Vrabel
    Cc: Bjorn Helgaas
    Cc: Graeme Gregory
    Cc: Lv Zheng
    Link: http://lkml.kernel.org/r/1421720467-7709-4-git-send-email-jiang.liu@linux.intel.com
    Signed-off-by: Thomas Gleixner

    Jiang Liu
     
  • Currently Xen Domain0 has special treatment for ACPI SCI interrupt,
    that is initialize irq for ACPI SCI at early stage in a special way as:
    xen_init_IRQ()
    ->pci_xen_initial_domain()
    ->xen_setup_acpi_sci()
    Allocate and initialize irq for ACPI SCI

    Function xen_setup_acpi_sci() calls acpi_gsi_to_irq() to get an irq
    number for ACPI SCI. But unfortunately acpi_gsi_to_irq() depends on
    IOAPIC irqdomains through following path
    acpi_gsi_to_irq()
    ->mp_map_gsi_to_irq()
    ->mp_map_pin_to_irq()
    ->check IOAPIC irqdomain

    For PV domains, it uses Xen event based interrupt manangement and
    doesn't make uses of native IOAPIC, so no irqdomains created for IOAPIC.
    This causes Xen domain0 fail to install interrupt handler for ACPI SCI
    and all ACPI events will be lost. Please refer to:
    https://lkml.org/lkml/2014/12/19/178

    So the fix is to get rid of special treatment for ACPI SCI, just treat
    ACPI SCI as normal GSI interrupt as:
    acpi_gsi_to_irq()
    ->acpi_register_gsi()
    ->acpi_register_gsi_xen()
    ->xen_register_gsi()

    With above change, there's no need for xen_setup_acpi_sci() anymore.
    The above change also works with bare metal kernel too.

    Signed-off-by: Jiang Liu
    Tested-by: Sander Eikelenboom
    Cc: Tony Luck
    Cc: xen-devel@lists.xenproject.org
    Cc: Konrad Rzeszutek Wilk
    Cc: David Vrabel
    Cc: Rafael J. Wysocki
    Cc: Len Brown
    Cc: Pavel Machek
    Cc: Bjorn Helgaas
    Link: http://lkml.kernel.org/r/1421720467-7709-2-git-send-email-jiang.liu@linux.intel.com
    Signed-off-by: Thomas Gleixner

    Jiang Liu