1. 30 Jan, 2015 1 commit
  2. 29 Jan, 2015 3 commits
    • Marc Zyngier's avatar
      arm/arm64: KVM: Use kernel mapping to perform invalidation on page fault · 0d3e4d4f
      Marc Zyngier authored
      When handling a fault in stage-2, we need to resync I$ and D$, just
      to be sure we don't leave any old cache line behind.
      
      That's very good, except that we do so using the *user* address.
      Under heavy load (swapping like crazy), we may end up in a situation
      where the page gets mapped in stage-2 while being unmapped from
      userspace by another CPU.
      
      At that point, the DC/IC instructions can generate a fault, which
      we handle with kvm->mmu_lock held. The box quickly deadlocks, user
      is unhappy.
      
      Instead, perform this invalidation through the kernel mapping,
      which is guaranteed to be present. The box is much happier, and so
      am I.
      Signed-off-by: default avatarMarc Zyngier <marc.zyngier@arm.com>
      Signed-off-by: default avatarChristoffer Dall <christoffer.dall@linaro.org>
      0d3e4d4f
    • Marc Zyngier's avatar
      arm/arm64: KVM: Invalidate data cache on unmap · 363ef89f
      Marc Zyngier authored
      Let's assume a guest has created an uncached mapping, and written
      to that page. Let's also assume that the host uses a cache-coherent
      IO subsystem. Let's finally assume that the host is under memory
      pressure and starts to swap things out.
      
      Before this "uncached" page is evicted, we need to make sure
      we invalidate potential speculated, clean cache lines that are
      sitting there, or the IO subsystem is going to swap out the
      cached view, loosing the data that has been written directly
      into memory.
      Signed-off-by: default avatarMarc Zyngier <marc.zyngier@arm.com>
      Signed-off-by: default avatarChristoffer Dall <christoffer.dall@linaro.org>
      363ef89f
    • Marc Zyngier's avatar
      arm/arm64: KVM: Use set/way op trapping to track the state of the caches · 3c1e7165
      Marc Zyngier authored
      Trying to emulate the behaviour of set/way cache ops is fairly
      pointless, as there are too many ways we can end-up missing stuff.
      Also, there is some system caches out there that simply ignore
      set/way operations.
      
      So instead of trying to implement them, let's convert it to VA ops,
      and use them as a way to re-enable the trapping of VM ops. That way,
      we can detect the point when the MMU/caches are turned off, and do
      a full VM flush (which is what the guest was trying to do anyway).
      
      This allows a 32bit zImage to boot on the APM thingy, and will
      probably help bootloaders in general.
      Signed-off-by: default avatarMarc Zyngier <marc.zyngier@arm.com>
      Signed-off-by: default avatarChristoffer Dall <christoffer.dall@linaro.org>
      3c1e7165
  3. 26 Jan, 2015 8 commits
    • Linus Torvalds's avatar
      Linux 3.19-rc6 · 26bc420b
      Linus Torvalds authored
      26bc420b
    • Linus Torvalds's avatar
      Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 14746306
      Linus Torvalds authored
      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
      14746306
    • Linus Torvalds's avatar
      Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 4d2f0ef1
      Linus Torvalds authored
      Pull irq fixes from Thomas Gleixner:
       "From the irqchip departement you get:
      
         - regression fix for omap-intc
      
         - regression fix for atmel-aic-common
      
         - functional correctness fix for hip04
      
         - type mismatch fix for gic-v3-its
      
         - proper error pointer check for mtd-sysirq
      
        Mostly one and two liners except for the omap regression fix which is
        slightly larger than desired"
      
      * 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        irqchip: atmel-aic-common: Prevent clobbering of priority when changing IRQ type
        irqchip: omap-intc: Fix legacy DMA regression
        irqchip: gic-v3-its: Fix use of max with decimal constant
        irqchip: hip04: Initialize hip04_cpu_map to 0xffff
        irqchip: mtk-sysirq: Use IS_ERR() instead of NULL pointer check
      4d2f0ef1
    • Linus Torvalds's avatar
      Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · b73f0c8f
      Linus Torvalds authored
      Pull timer fixes from Thomas Gleixner:
       "A set of small fixes:
      
         - regression fix for exynos_mct clocksource
      
         - trivial build fix for kona clocksource
      
         - functional one liner fix for the sh_tmu clocksource
      
         - two validation fixes to prevent (root only) data corruption in the
           kernel via settimeofday and adjtimex.  Tagged for stable"
      
      * 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        time: adjtimex: Validate the ADJ_FREQUENCY values
        time: settimeofday: Validate the values of tv from user
        clocksource: sh_tmu: Set cpu_possible_mask to fix SMP broadcast
        clocksource: kona: fix __iomem annotation
        clocksource: exynos_mct: Fix bitmask regression for exynos4_mct_write
      b73f0c8f
    • Linus Torvalds's avatar
      Merge tag 'armsoc-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 71a59b12
      Linus Torvalds authored
      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
      71a59b12
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 80a75554
      Linus Torvalds authored
      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()
      80a75554
    • Linus Torvalds's avatar
      Merge tag 'dm-3.19-fixes-2' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm · bfc835b5
      Linus Torvalds authored
      Pull device mapper fixes from Mike Snitzer:
       "Two stable fixes for dm-cache and one 3.19 DM core fix:
      
         - fix potential for dm-cache metadata corruption via stale metadata
           buffers being used when switching an inactive cache table to
           active; this could occur due to each table having it's own bufio
           client rather than sharing the client between tables.
      
         - fix dm-cache target to properly account for discard IO while
           suspending otherwise IO quiescing could complete prematurely.
      
         - fix DM core's handling of multiple internal suspends by maintaining
           an 'internal_suspend_count' and only resuming the device when this
           count drops to zero"
      
      * tag 'dm-3.19-fixes-2' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm:
        dm: fix handling of multiple internal suspends
        dm cache: fix problematic dual use of a single migration count variable
        dm cache: share cache-metadata object across inactive and active DM tables
      bfc835b5
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.dk/linux-block · 8e908e99
      Linus Torvalds authored
      Pull two block layer fixes from Jens Axboe:
       "Two small patches that should make it into 3.19:
      
         - a fixup from me for NVMe, making the cq_vector a signed variable.
           Otherwise our -1 comparison fails, and commit 2b25d981 doesn't
           do what it was supposed to.
      
         - a fixup for the hotplug handling for blk-mq from Ming Lei, using
           the proper kobject referencing to ensure we release resources at
           the right time"
      
      * 'for-linus' of git://git.kernel.dk/linux-block:
        blk-mq: fix hctx/ctx kobject use-after-free
        NVMe: cq_vector should be signed
      8e908e99
  4. 24 Jan, 2015 11 commits
  5. 23 Jan, 2015 17 commits