1. 20 Sep, 2015 2 commits
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.dk/linux-block · 133bb595
      Linus Torvalds authored
      Pull block updates from Jens Axboe:
       "This is a bit bigger than it should be, but I could (did) not want to
        send it off last week due to both wanting extra testing, and expecting
        a fix for the bounce regression as well.  In any case, this contains:
      
         - Fix for the blk-merge.c compilation warning on gcc 5.x from me.
      
         - A set of back/front SG gap merge fixes, from me and from Sagi.
           This ensures that we honor SG gapping for integrity payloads as
           well.
      
         - Two small fixes for null_blk from Matias, fixing a leak and a
           capacity propagation issue.
      
         - A blkcg fix from Tejun, fixing a NULL dereference.
      
         - A fast clone optimization from Ming, fixing a performance
           regression since the arbitrarily sized bio's were introduced.
      
         - Also from Ming, a regression fix for bouncing IOs"
      
      * 'for-linus' of git://git.kernel.dk/linux-block:
        block: fix bounce_end_io
        block: blk-merge: fast-clone bio when splitting rw bios
        block: blkg_destroy_all() should clear q->root_blkg and ->root_rl.blkg
        block: Copy a user iovec if it includes gaps
        block: Refuse adding appending a gapped integrity page to a bio
        block: Refuse request/bio merges with gaps in the integrity payload
        block: Check for gaps on front and back merges
        null_blk: fix wrong capacity when bs is not 512 bytes
        null_blk: fix memory leak on cleanup
        block: fix bogus compiler warnings in blk-merge.c
      133bb595
    • Chris Mason's avatar
      fs-writeback: unplug before cond_resched in writeback_sb_inodes · 590dca3a
      Chris Mason authored
      Commit 505a666e ("writeback: plug writeback in wb_writeback() and
      writeback_inodes_wb()") has us holding a plug during writeback_sb_inodes,
      which increases the merge rate when relatively contiguous small files
      are written by the filesystem.  It helps both on flash and spindles.
      
      For an fs_mark workload creating 4K files in parallel across 8 drives,
      this commit improves performance ~9% more by unplugging before calling
      cond_resched().  cond_resched() doesn't trigger an implicit unplug, so
      explicitly getting the IO down to the device before scheduling reduces
      latencies for anyone waiting on clean pages.
      
      It also cuts down on how often we use kblockd to unplug, which means
      less work bouncing from one workqueue to another.
      
      Many more details about how we got here:
      
        https://lkml.org/lkml/2015/9/11/570Signed-off-by: default avatarChris Mason <clm@fb.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      590dca3a
  2. 18 Sep, 2015 17 commits
    • Linus Torvalds's avatar
      Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost · 00ade1f5
      Linus Torvalds authored
      Pull virtio fixes and cleanups from Michael Tsirkin:
       "This fixes the virtio-test tool, and improves the error handling for
        virtio-ccw"
      
      * tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost:
        virtio/s390: handle failures of READ_VQ_CONF ccw
        tools/virtio: propagate V=X to kernel build
        vhost: move features to core
        tools/virtio: fix build after 4.2 changes
      00ade1f5
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm · 3ae83945
      Linus Torvalds authored
      Pull KVM fixes from Paolo Bonzini:
       "Mostly stable material, a lot of ARM fixes"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (22 commits)
        sched: access local runqueue directly in single_task_running
        arm/arm64: KVM: Remove 'config KVM_ARM_MAX_VCPUS'
        arm64: KVM: Remove all traces of the ThumbEE registers
        arm: KVM: Disable virtual timer even if the guest is not using it
        arm64: KVM: Disable virtual timer even if the guest is not using it
        arm/arm64: KVM: vgic: Check for !irqchip_in_kernel() when mapping resources
        KVM: s390: Replace incorrect atomic_or with atomic_andnot
        arm: KVM: Fix incorrect device to IPA mapping
        arm64: KVM: Fix user access for debug registers
        KVM: vmx: fix VPID is 0000H in non-root operation
        KVM: add halt_attempted_poll to VCPU stats
        kvm: fix zero length mmio searching
        kvm: fix double free for fast mmio eventfd
        kvm: factor out core eventfd assign/deassign logic
        kvm: don't try to register to KVM_FAST_MMIO_BUS for non mmio eventfd
        KVM: make the declaration of functions within 80 characters
        KVM: arm64: add workaround for Cortex-A57 erratum #852523
        KVM: fix polling for guest halt continued even if disable it
        arm/arm64: KVM: Fix PSCI affinity info return value for non valid cores
        arm64: KVM: set {v,}TCR_EL2 RES1 bits
        ...
      3ae83945
    • Linus Torvalds's avatar
      Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · fadb97b0
      Linus Torvalds authored
      Pull irq updates from Thomas Gleixner:
       "This is a rather large update post rc1 due to the final steps of
        cleanups and API changes which had to wait for the preparatory patches
        to hit your tree.
      
         - Regression fixes for ARM GIC irqchips
      
         - Regression fixes and lockdep anotations for renesas irq chips
      
         - The leftovers of the cleanup and preparatory patches which have
           been ignored by maintainers
      
         - Final conversions of the newly merged users of obsolete APIs
      
         - Final removal of obsolete APIs
      
         - Final removal of ARM artifacts which had been introduced during the
           conversion of ARM to the generic interrupt code.
      
         - Final split of the irq_data into chip specific and common data to
           reflect the needs of hierarchical irq domains.
      
         - Treewide removal of the first argument of interrupt flow handlers,
           i.e. the irq number, which is not used by the majority of handlers
           and simple to retrieve from the other argument the irq descriptor.
      
         - A few comment updates and build warning fixes"
      
      * 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (40 commits)
        arm64: Remove ununsed set_irq_flags
        ARM: Remove ununsed set_irq_flags
        sh: Kill off set_irq_flags usage
        irqchip: Kill off set_irq_flags usage
        gpu/drm: Kill off set_irq_flags usage
        genirq: Remove irq argument from irq flow handlers
        genirq: Move field 'msi_desc' from irq_data into irq_common_data
        genirq: Move field 'affinity' from irq_data into irq_common_data
        genirq: Move field 'handler_data' from irq_data into irq_common_data
        genirq: Move field 'node' from irq_data into irq_common_data
        irqchip/gic-v3: Use IRQD_FORWARDED_TO_VCPU flag
        irqchip/gic: Use IRQD_FORWARDED_TO_VCPU flag
        genirq: Provide IRQD_FORWARDED_TO_VCPU status flag
        genirq: Simplify irq_data_to_desc()
        genirq: Remove __irq_set_handler_locked()
        pinctrl/pistachio: Use irq_set_handler_locked
        gpio: vf610: Use irq_set_handler_locked
        powerpc/mpc8xx: Use irq_set_handler_locked()
        powerpc/ipic: Use irq_set_handler_locked()
        powerpc/cpm2: Use irq_set_handler_locked()
        ...
      fadb97b0
    • Linus Torvalds's avatar
      Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 09784fb8
      Linus Torvalds authored
      Pull x86 fix from Thomas Gleixner:
       "A single regression fix for the x86 dma allocator which got wreckaged
        in the merge window"
      
      * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/pci/dma: Fix gfp flags for coherent DMA memory allocation
      09784fb8
    • Linus Torvalds's avatar
      Merge tag 'powerpc-4.3-2' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux · f240bdd2
      Linus Torvalds authored
      Pull powerpc fixes from Michael Ellerman:
      
       - Fix 32-bit TCE table init in kdump kernel from Nish
      
       - Fix kdump with non-power-of-2 crashkernel= from Nish
      
       - Abort cxl_pci_enable_device_hook() if PCI channel is offline from
         Andrew
      
       - Fix to release DRC when configure_connector() fails from Bharata
      
       - Wire up sys_userfaultfd()
      
       - Fix race condition in tearing down MSI interrupts from Paul
      
       - Fix unbalanced pci_dev_get() in cxl_probe() from Daniel
      
       - Fix cxl build failure due to -Wunused-variable gcc behaviour change
         from Ian
      
       - Tell the toolchain to use ABI v2 when building an LE boot wrapper
         from Benh
      
       - Fix THP to recompute hash value after a failed update from Aneesh
      
       - 32-bit memcpy/memset: only use dcbz once cache is enabled from
         Christophe
      
      * tag 'powerpc-4.3-2' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
        powerpc32: memset: only use dcbz once cache is enabled
        powerpc32: memcpy: only use dcbz once cache is enabled
        powerpc/mm: Recompute hash value after a failed update
        powerpc/boot: Specify ABI v2 when building an LE boot wrapper
        cxl: Fix build failure due to -Wunused-variable behaviour change
        cxl: Fix unbalanced pci_dev_get in cxl_probe
        powerpc/MSI: Fix race condition in tearing down MSI interrupts
        powerpc: Wire up sys_userfaultfd()
        powerpc/pseries: Release DRC when configure_connector fails
        cxl: abort cxl_pci_enable_device_hook() if PCI channel is offline
        powerpc/powernv/pci-ioda: fix kdump with non-power-of-2 crashkernel=
        powerpc/powernv/pci-ioda: fix 32-bit TCE table init in kdump kernel
      f240bdd2
    • Dominik Dingel's avatar
      sched: access local runqueue directly in single_task_running · 00cc1633
      Dominik Dingel authored
      Commit 2ee507c4 ("sched: Add function single_task_running to let a task
      check if it is the only task running on a cpu") referenced the current
      runqueue with the smp_processor_id.  When CONFIG_DEBUG_PREEMPT is enabled,
      that is only allowed if preemption is disabled or the currrent task is
      bound to the local cpu (e.g. kernel worker).
      
      With commit f7819512 ("kvm: add halt_poll_ns module parameter") KVM
      calls single_task_running. If CONFIG_DEBUG_PREEMPT is enabled that
      generates a lot of kernel messages.
      
      To avoid adding preemption in that cases, as it would limit the usefulness,
      we change single_task_running to access directly the cpu local runqueue.
      
      Cc: Tim Chen <tim.c.chen@linux.intel.com>
      Suggested-by: default avatarPeter Zijlstra <peterz@infradead.org>
      Acked-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
      Cc: <stable@vger.kernel.org>
      Fixes: 2ee507c4Signed-off-by: default avatarDominik Dingel <dingel@linux.vnet.ibm.com>
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      00cc1633
    • Linus Torvalds's avatar
      Merge tag 'platform-drivers-x86-v4.3-2' of... · a7d5c189
      Linus Torvalds authored
      Merge tag 'platform-drivers-x86-v4.3-2' of git://git.infradead.org/users/dvhart/linux-platform-drivers-x86
      
      Pull x86 platform driver fixes from Darren Hart:
       "Fix an issue introduced by the previous major toshiba rework.  Add a
        quirk.  Workaround a few platform specific firmware items.  One
        cleanup to wmi I inadvertently dropped from a previous pull request.
      
        Details:
      
        hp-wmi:
         - limit hotkey enable
      
        toshiba_acpi:
         - Fix hotkeys registration on some toshiba models
         - Fix USB Sleep and Music always disabled
      
        wmi:
         - Remove private %pUL implementation
      
        asus-nb-wmi:
         - Add wapf=4 quirk for X456UA/X456UF"
      
      * tag 'platform-drivers-x86-v4.3-2' of git://git.infradead.org/users/dvhart/linux-platform-drivers-x86:
        hp-wmi: limit hotkey enable
        toshiba_acpi: Fix hotkeys registration on some toshiba models
        toshiba_acpi: Fix USB Sleep and Music always disabled
        wmi: Remove private %pUL implementation
        asus-nb-wmi: Add wapf=4 quirk for X456UA/X456UF
      a7d5c189
    • Linus Torvalds's avatar
      Merge branch 'akpm' (patches from Andrew) · a8f15585
      Linus Torvalds authored
      Merge misc fixes from ANdrew Morton:
       "8 fixes"
      
      * emailed patches from Andrew Morton <akpm@linux-foundation.org>:
        revert "mm: make sure all file VMAs have ->vm_ops set"
        MAINTAINERS: update LTP mailing list
        userfaultfd: add missing mmput() in error path
        lib/string_helpers.c: fix infinite loop in string_get_size()
        alpha: lib: export __delay
        alpha: io: define ioremap_uc
        kasan: fix last shadow judgement in memory_is_poisoned_16()
        zram: fix possible use after free in zcomp_create()
      a8f15585
    • Andrew Morton's avatar
      revert "mm: make sure all file VMAs have ->vm_ops set" · 28c553d0
      Andrew Morton authored
      Revert commit 6dc296e7 "mm: make sure all file VMAs have ->vm_ops
      set".
      
      Will Deacon reports that it "causes some mmap regressions in LTP, which
      appears to use a MAP_PRIVATE mmap of /dev/zero as a way to get anonymous
      pages in some of its tests (specifically mmap10 [1])".
      
      William Shuman reports Oracle crashes.
      
      So revert the patch while we work out what to do.
      Reported-by: default avatarWilliam Shuman <wshuman3@gmail.com>
      Reported-by: default avatarWill Deacon <will.deacon@arm.com>
      Cc: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
      Cc: Oleg Nesterov <oleg@redhat.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      28c553d0
    • Cyril Hrubis's avatar
      MAINTAINERS: update LTP mailing list · 0526109a
      Cyril Hrubis authored
      [akpm@linux-foundation.org: Wanlong Gao has moved]
      Signed-off-by: default avatarCyril Hrubis <chrubis@suse.cz>
      Cc: Jan Stancek <jstancek@redhat.com>
      Cc: Stanislav Kholmanskikh <stanislav.kholmanskikh@oracle.com>
      Cc: Alexey Kodanev <alexey.kodanev@oracle.com>
      Cc: Wanlong Gao <wanlong.gao@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      0526109a
    • Eric Biggers's avatar
      userfaultfd: add missing mmput() in error path · c03e946f
      Eric Biggers authored
      This fixes a memleak if anon_inode_getfile() fails in userfaultfd().
      Signed-off-by: default avatarEric Biggers <ebiggers3@gmail.com>
      Signed-off-by: default avatarAndrea Arcangeli <aarcange@redhat.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      c03e946f
    • Vitaly Kuznetsov's avatar
      lib/string_helpers.c: fix infinite loop in string_get_size() · 62bef58a
      Vitaly Kuznetsov authored
      Some string_get_size() calls (e.g.:
       string_get_size(1, 512, STRING_UNITS_10, ..., ...)
       string_get_size(15, 64, STRING_UNITS_10, ..., ...)
      ) result in an infinite loop. The problem is that if size is equal to
      divisor[units]/blk_size and is smaller than divisor[units] we'll end
      up with size == 0 when we start doing sf_cap calculations:
      
      For string_get_size(1, 512, STRING_UNITS_10, ..., ...) case:
         ...
         remainder = do_div(size, divisor[units]); -> size is 0, remainder is 1
         remainder *= blk_size; -> remainder is 512
         ...
         size *= blk_size; -> size is still 0
         size += remainder / divisor[units]; -> size is still 0
      
      The caller causing the issue is sd_read_capacity(), the problem was
      noticed on Hyper-V, such weird size was reported by host when scanning
      collides with device removal.  This is probably a separate issue worth
      fixing, this patch is intended to prevent the library routine from
      infinite looping.
      Signed-off-by: default avatarVitaly Kuznetsov <vkuznets@redhat.com>
      Acked-by: default avatarJames Bottomley <JBottomley@Odin.com>
      Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
      Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk>
      Cc: "K. Y. Srinivasan" <kys@microsoft.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      62bef58a
    • Sudip Mukherjee's avatar
      alpha: lib: export __delay · 14b97ded
      Sudip Mukherjee authored
      __delay was not exported as a result while building with allmodconfig we
      were getting build error of undefined symbol.  __delay is being used by:
      drivers/net/phy/mdio-octeon.c
      Signed-off-by: default avatarSudip Mukherjee <sudip@vectorindia.org>
      Cc: Richard Henderson <rth@twiddle.net>
      Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
      Cc: Matt Turner <mattst88@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      14b97ded
    • Sudip Mukherjee's avatar
      alpha: io: define ioremap_uc · 969560d2
      Sudip Mukherjee authored
      ioremap_uc was not defined and as a result while building with
      allmodconfig were getting build error of: implicit declaration of
      function 'ioremap_uc'.
      Signed-off-by: default avatarSudip Mukherjee <sudip@vectorindia.org>
      Cc: Richard Henderson <rth@twiddle.net>
      Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
      Cc: Matt Turner <mattst88@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      969560d2
    • Xishi Qiu's avatar
      kasan: fix last shadow judgement in memory_is_poisoned_16() · 8d77a6d1
      Xishi Qiu authored
      The shadow which correspond 16 bytes memory may span 2 or 3 bytes.  If
      the memory is aligned on 8, then the shadow takes only 2 bytes.  So we
      check "shadow_first_bytes" is enough, and need not to call
      "memory_is_poisoned_1(addr + 15);".  But the code "if
      (likely(!last_byte))" is wrong judgement.
      
      e.g.  addr=0, so last_byte = 15 & KASAN_SHADOW_MASK = 7, then the code
      will continue to call "memory_is_poisoned_1(addr + 15);"
      Signed-off-by: default avatarXishi Qiu <qiuxishi@huawei.com>
      Acked-by: default avatarAndrey Ryabinin <aryabinin@virtuozzo.com>
      Cc: Andrey Konovalov <adech.fo@gmail.com>
      Cc: Rusty Russell <rusty@rustcorp.com.au>
      Cc: Michal Marek <mmarek@suse.cz>
      Cc: <zhongjiang@huawei.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      8d77a6d1
    • Luis Henriques's avatar
      zram: fix possible use after free in zcomp_create() · 3aaf14da
      Luis Henriques authored
      zcomp_create() verifies the success of zcomp_strm_{multi,single}_create()
      through comp->stream, which can potentially be pointing to memory that
      was freed if these functions returned an error.
      
      While at it, replace a 'ERR_PTR(-ENOMEM)' by a more generic
      'ERR_PTR(error)' as in the future zcomp_strm_{multi,siggle}_create()
      could return other error codes.  Function documentation updated
      accordingly.
      
      Fixes: beca3ec7 ("zram: add multi stream functionality")
      Signed-off-by: default avatarLuis Henriques <luis.henriques@canonical.com>
      Acked-by: default avatarSergey Senozhatsky <sergey.senozhatsky@gmail.com>
      Acked-by: default avatarMinchan Kim <minchan@kernel.org>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      3aaf14da
    • Kyle Evans's avatar
      hp-wmi: limit hotkey enable · 8a1513b4
      Kyle Evans authored
      Do not write initialize magic on systems that do not have
      feature query 0xb. Fixes Bug #82451.
      
      Redefine FEATURE_QUERY to align with 0xb and FEATURE2 with 0xd
      for code clearity.
      
      Add a new test function, hp_wmi_bios_2008_later() & simplify
      hp_wmi_bios_2009_later(), which fixes a bug in cases where
      an improper value is returned. Probably also fixes Bug #69131.
      
      Add missing __init tag.
      Signed-off-by: default avatarKyle Evans <kvans32@gmail.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarDarren Hart <dvhart@linux.intel.com>
      8a1513b4
  3. 17 Sep, 2015 21 commits
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client · 8e64a733
      Linus Torvalds authored
      Pull Ceph fixes from Sage Weil:
       "These are both fixes to the new and improved keepalive2 behavior"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client:
        libceph: advertise support for keepalive2
        libceph: don't access invalid memory in keepalive2 path
      8e64a733
    • Linus Torvalds's avatar
      Merge tag 'for-v4.3-rc' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply · 2e5735f4
      Linus Torvalds authored
      Pull power supply fixes from Sebastian Reichel:
       "twl4030-charger fixes"
      
      * tag 'for-v4.3-rc' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply:
        twl4030_charger: fix another compile error
        Revert "twl4030_charger: correctly handle -EPROBE_DEFER from devm_usb_get_phy_by_node"
      2e5735f4
    • Linus Torvalds's avatar
      Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · d109c4bb
      Linus Torvalds authored
      Pull arm64 fixes from Will Deacon:
       "This addresses some problems with filesystem writeback due to the
        recently merged hardware DBM patches, which caused us to treat some
        read-only pages as dirty.
      
        There are also some other, less significant fixes that are described
        in the summary below:
      
        A mixture of fixes for regressions introduced during the merge window,
        some longer standing problems that we spotted and a couple of hardware
        errata.  The main changes are:
      
         - Fix fallout from the h/w DBM patches, causing filesystem writeback
           issues on both v8 and v8.1 CPUs
      
         - Workaround for Cortex-A53 erratum #843419 in the module loader
      
         - Fix for long-standing issue with compat big-endian signal handlers
           using the saved floating point state"
      
      * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
        arm64: errata: add module build workaround for erratum #843419
        arm64: compat: fix vfp save/restore across signal handlers in big-endian
        arm64: cpu hotplug: ensure we mask out CPU_TASKS_FROZEN in notifiers
        arm64: head.S: initialise mdcr_el2 in el2_setup
        arm64: enable generic idle loop
        arm64: pgtable: use a single bit for PTE_WRITE regardless of DBM
        arm64: Fix pte_modify() to preserve the hardware dirty information
        arm64: Fix the pte_hw_dirty() check when AF/DBM is enabled
        arm64: dma-mapping: check whether cma area is initialized or not
      d109c4bb
    • Linus Torvalds's avatar
      Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 42dc2a30
      Linus Torvalds authored
      Pull x86 fixes from Ingo Molnar:
       - misc fixes all around the map
       - block non-root vm86(old) if mmap_min_addr != 0
       - two small debuggability improvements
       - removal of obsolete paravirt op
      
      * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/platform: Fix Geode LX timekeeping in the generic x86 build
        x86/apic: Serialize LVTT and TSC_DEADLINE writes
        x86/ioapic: Force affinity setting in setup_ioapic_dest()
        x86/paravirt: Remove the unused pv_time_ops::get_tsc_khz method
        x86/ldt: Fix small LDT allocation for Xen
        x86/vm86: Fix the misleading CONFIG_VM86 Kconfig help text
        x86/cpu: Print family/model/stepping in hex
        x86/vm86: Block non-root vm86(old) if mmap_min_addr != 0
        x86/alternatives: Make optimize_nops() interrupt safe and synced
        x86/mm/srat: Print non-volatile flag in SRAT
        x86/cpufeatures: Enable cpuid for Intel SHA extensions
      42dc2a30
    • Linus Torvalds's avatar
      Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 1345df21
      Linus Torvalds authored
      Pull timer fixes from Ingo Molnar:
       "A fix for an abs()/abs64() bug that caused too slow NTP convergence on
        32-bit kernels, plus a removal of an obsolete clockevents driver
        facility after all users got converted during the merge window"
      
      * 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        clockevents: Remove unused set_mode() callback
        time: Fix timekeeping_freqadjust()'s incorrect use of abs() instead of abs64()
      1345df21
    • Linus Torvalds's avatar
      Merge branch 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · c2ea72fd
      Linus Torvalds authored
      Pull scheduler fixes from Ingo Molnar:
       "A migrate_tasks() locking fix, and a late-coming nohz change plus a
        nohz debug check"
      
      * 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        sched: 'Annotate' migrate_tasks()
        nohz: Assert existing housekeepers when nohz full enabled
        nohz: Affine unpinned timers to housekeepers
      c2ea72fd
    • Linus Torvalds's avatar
      Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · a706797f
      Linus Torvalds authored
      Pull perf fixes from Ingo MOlnar:
       "Mostly tooling fixes, but also two x86 PMU driver fixes"
      
      * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        perf tests: Fix software clock events test setting maps
        perf tests: Fix task exit test setting maps
        perf evlist: Fix create_syswide_maps() not propagating maps
        perf evlist: Fix add() not propagating maps
        perf evlist: Factor out a function to propagate maps for a single evsel
        perf evlist: Make create_maps() use set_maps()
        perf evlist: Make set_maps() more resilient
        perf evsel: Add own_cpus member
        perf evlist: Fix missing thread_map__put in propagate_maps()
        perf evlist: Fix splice_list_tail() not setting evlist
        perf evlist: Add has_user_cpus member
        perf evlist: Remove redundant validation from propagate_maps()
        perf evlist: Simplify set_maps() logic
        perf evlist: Simplify propagate_maps() logic
        perf top: Fix segfault pressing -> with no hist entries
        perf header: Fixup reading of HEADER_NRCPUS feature
        perf/x86/intel: Fix constraint access
        perf/x86/intel/bts: Set event->hw.itrace_started in pmu::start to match the new logic
        perf tools: Fix use of wrong event when processing exit events
        perf tools: Fix parse_events_add_pmu caller
      a706797f
    • Ilya Dryomov's avatar
      libceph: advertise support for keepalive2 · 335c2585
      Ilya Dryomov authored
      We are the client, but advertise keepalive2 anyway - for consistency,
      if nothing else.  In the future the server might want to know whether
      its clients support keepalive2.
      Signed-off-by: default avatarIlya Dryomov <idryomov@gmail.com>
      Reviewed-by: default avatarYan, Zheng <zyan@redhat.com>
      335c2585
    • Ilya Dryomov's avatar
      libceph: don't access invalid memory in keepalive2 path · 7f61f545
      Ilya Dryomov authored
      This
      
          struct ceph_timespec ceph_ts;
          ...
          con_out_kvec_add(con, sizeof(ceph_ts), &ceph_ts);
      
      wraps ceph_ts into a kvec and adds it to con->out_kvec array, yet
      ceph_ts becomes invalid on return from prepare_write_keepalive().  As
      a result, we send out bogus keepalive2 stamps.  Fix this by encoding
      into a ceph_timespec member, similar to how acks are read and written.
      Signed-off-by: default avatarIlya Dryomov <idryomov@gmail.com>
      Reviewed-by: default avatarYan, Zheng <zyan@redhat.com>
      7f61f545
    • Ming Lei's avatar
      block: fix bounce_end_io · 99451879
      Ming Lei authored
      When bio bounce is involved, one new bio and its biovecs are
      cloned from the comming bio, which can be one fast-cloned bio
      from upper layer(such as dm).
      
      So it is obviously wrong to assume the start index of the coming(
      original) bio's io vector is zero, which can be any value between
      0 and (bi_max_vecs - 1), especially in case of bio split.
      
      This patch fixes Fedora's booting oops on i386, often with the
      following kernel log together:
      
      > [    9.026738] systemd[1]: Switching root.
      > [    9.036467] systemd-journald[149]: Received SIGTERM from PID 1
      > (systemd).
      > [    9.082262] BUG: Bad page state in process kworker/u5:1  pfn:372ac
      > [    9.083989] page:f3d32ae0 count:0 mapcount:0 mapping:f2252178
      > index:0x16a
      > [    9.085755] flags: 0x40020021(locked|lru|mappedtodisk)
      > [    9.087284] page dumped because: page still charged to cgroup
      > [    9.088772] bad because of flags:
      > [    9.089731] flags: 0x21(locked|lru)
      > [    9.090818] page->mem_cgroup:f2c3e400
      Reported-by: default avatarJosh Boyer <jwboyer@fedoraproject.org>
      Tested-by: default avatarAdam Williamson <awilliam@redhat.com>
      Cc: Ming Lin <mlin@kernel.org>
      Cc: Mike Snitzer <snitzer@redhat.com>
      Signed-off-by: default avatarMing Lei <ming.lei@canonical.com>
      Signed-off-by: default avatarJens Axboe <axboe@fb.com>
      99451879
    • Ming Lei's avatar
      block: blk-merge: fast-clone bio when splitting rw bios · 52cc6eea
      Ming Lei authored
      biovecs has become immutable since v3.13, so it isn't necessary
      to allocate biovecs for the new cloned bios, then we can save
      one extra biovecs allocation/copy, and the allocation is often
      not fixed-length and a bit more expensive.
      
      For example, if the 'max_sectors_kb' of null blk's queue is set
      as 16(32 sectors) via sysfs just for making more splits, this patch
      can increase throught about ~70% in the sequential read test over
      null_blk(direct io, bs: 1M).
      
      Cc: Christoph Hellwig <hch@infradead.org>
      Cc: Kent Overstreet <kent.overstreet@gmail.com>
      Cc: Ming Lin <ming.l@ssi.samsung.com>
      Cc: Dongsu Park <dpark@posteo.net>
      Signed-off-by: default avatarMing Lei <ming.lei@canonical.com>
      
      This fixes a performance regression introduced by commit 54efd50b,
      and allows us to take full advantage of the fact that we have immutable
      bio_vecs. Hand applied, as it rejected violently with commit
      5014c311.
      Signed-off-by: default avatarJens Axboe <axboe@fb.com>
      52cc6eea
    • Linus Torvalds's avatar
      Merge branch 'locking-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 9786cff3
      Linus Torvalds authored
      Pull locking fixes from Ingo Molnar:
       "Spinlock performance regression fix, plus documentation fixes"
      
      * 'locking-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        locking/static_keys: Fix up the static keys documentation
        locking/qspinlock/x86: Only emit the test-and-set fallback when building guest support
        locking/qspinlock/x86: Fix performance regression under unaccelerated VMs
        locking/static_keys: Fix a silly typo
      9786cff3
    • Linus Torvalds's avatar
      Merge branch 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 1b3dfde3
      Linus Torvalds authored
      Pull RCU fix from Ingo Molnar:
       "Fix a false positive warning"
      
      * 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        security/device_cgroup: Fix RCU_LOCKDEP_WARN() condition
      1b3dfde3
    • Paolo Bonzini's avatar
      Merge tag 'kvm-arm-for-4.3-rc2-2' of... · efe4d36a
      Paolo Bonzini authored
      Merge tag 'kvm-arm-for-4.3-rc2-2' of git://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm into kvm-master
      
      Second set of KVM/ARM changes for 4.3-rc2
      
      - Workaround for a Cortex-A57 erratum
      - Bug fix for the debugging infrastructure
      - Fix for 32bit guests with more than 4GB of address space
        on a 32bit host
      - A number of fixes for the (unusual) case when we don't use
        the in-kernel GIC emulation
      - Removal of ThumbEE handling on arm64, since these have been
        dropped from the architecture before anyone actually ever
        built a CPU
      - Remove the KVM_ARM_MAX_VCPUS limitation which has become
        fairly pointless
      efe4d36a
    • Junichi Nomura's avatar
      x86/pci/dma: Fix gfp flags for coherent DMA memory allocation · 590f0787
      Junichi Nomura authored
      Commit 6894258e reversed the order of gfp_flags adjustment in
      dma_alloc_attrs() for x86 [arch/x86/kernel/pci-dma.c] As a result,
      relevant flags set by dma_alloc_coherent_gfp_flags() are just
      discarded and cause coherent DMA memory allocation failure on some
      devices.
      
      Fixes: 6894258e ("dma-mapping: consolidate dma_{alloc,free}_{attrs,coherent}")
      Signed-off-by: default avatarJun'ichi Nomura <j-nomura@ce.jp.nec.com>
      Tested-by: default avatarTony Luck <tony.luck@intel.com>
      Acked-by: default avatarChristoph Hellwig <hch@lst.de>
      Link: http://lkml.kernel.org/r/20150914073834.GA13077@xzibit.linux.bs1.fc.nec.co.jpSigned-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      590f0787
    • Ming Lei's avatar
      arm/arm64: KVM: Remove 'config KVM_ARM_MAX_VCPUS' · ef748917
      Ming Lei authored
      This patch removes config option of KVM_ARM_MAX_VCPUS,
      and like other ARCHs, just choose the maximum allowed
      value from hardware, and follows the reasons:
      
      1) from distribution view, the option has to be
      defined as the max allowed value because it need to
      meet all kinds of virtulization applications and
      need to support most of SoCs;
      
      2) using a bigger value doesn't introduce extra memory
      consumption, and the help text in Kconfig isn't accurate
      because kvm_vpu structure isn't allocated until request
      of creating VCPU is sent from QEMU;
      
      3) the main effect is that the field of vcpus[] in 'struct kvm'
      becomes a bit bigger(sizeof(void *) per vcpu) and need more cache
      lines to hold the structure, but 'struct kvm' is one generic struct,
      and it has worked well on other ARCHs already in this way. Also,
      the world switch frequecy is often low, for example, it is ~2000
      when running kernel building load in VM from APM xgene KVM host,
      so the effect is very small, and the difference can't be observed
      in my test at all.
      
      Cc: Dann Frazier <dann.frazier@canonical.com>
      Signed-off-by: default avatarMing Lei <ming.lei@canonical.com>
      Reviewed-by: default avatarChristoffer Dall <christoffer.dall@linaro.org>
      Signed-off-by: default avatarMarc Zyngier <marc.zyngier@arm.com>
      ef748917
    • Will Deacon's avatar
      arm64: KVM: Remove all traces of the ThumbEE registers · 34c3faa3
      Will Deacon authored
      Although the ThumbEE registers and traps were present in earlier
      versions of the v8 architecture, it was retrospectively removed and so
      we can do the same.
      
      Whilst this breaks migrating a guest started on a previous version of
      the kernel, it is much better to kill these (non existent) registers
      as soon as possible.
      Reviewed-by: default avatarMarc Zyngier <marc.zyngier@arm.com>
      Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
      [maz: added commend about migration]
      Signed-off-by: default avatarMarc Zyngier <marc.zyngier@arm.com>
      34c3faa3
    • Marc Zyngier's avatar
      arm: KVM: Disable virtual timer even if the guest is not using it · 688bc577
      Marc Zyngier authored
      When running a guest with the architected timer disabled (with QEMU and
      the kernel_irqchip=off option, for example), it is important to make
      sure the timer gets turned off. Otherwise, the guest may try to
      enable it anyway, leading to a screaming HW interrupt.
      
      The fix is to unconditionally turn off the virtual timer on guest
      exit.
      
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarMarc Zyngier <marc.zyngier@arm.com>
      688bc577
    • Marc Zyngier's avatar
      arm64: KVM: Disable virtual timer even if the guest is not using it · c4cbba9f
      Marc Zyngier authored
      When running a guest with the architected timer disabled (with QEMU and
      the kernel_irqchip=off option, for example), it is important to make
      sure the timer gets turned off. Otherwise, the guest may try to
      enable it anyway, leading to a screaming HW interrupt.
      
      The fix is to unconditionally turn off the virtual timer on guest
      exit.
      
      Cc: stable@vger.kernel.org
      Reviewed-by: default avatarChristoffer Dall <christoffer.dall@linaro.org>
      Signed-off-by: default avatarMarc Zyngier <marc.zyngier@arm.com>
      c4cbba9f
    • Will Deacon's avatar
      arm64: errata: add module build workaround for erratum #843419 · df057cc7
      Will Deacon authored
      Cortex-A53 processors <= r0p4 are affected by erratum #843419 which can
      lead to a memory access using an incorrect address in certain sequences
      headed by an ADRP instruction.
      
      There is a linker fix to generate veneers for ADRP instructions, but
      this doesn't work for kernel modules which are built as unlinked ELF
      objects.
      
      This patch adds a new config option for the erratum which, when enabled,
      builds kernel modules with the mcmodel=large flag. This uses absolute
      addressing for all kernel symbols, thereby removing the use of ADRP as
      a PC-relative form of addressing. The ADRP relocs are removed from the
      module loader so that we fail to load any potentially affected modules.
      
      Cc: <stable@vger.kernel.org>
      Acked-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
      Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
      df057cc7
    • Will Deacon's avatar
      arm64: compat: fix vfp save/restore across signal handlers in big-endian · bdec97a8
      Will Deacon authored
      When saving/restoring the VFP registers from a compat (AArch32)
      signal frame, we rely on the compat registers forming a prefix of the
      native register file and therefore make use of copy_{to,from}_user to
      transfer between the native fpsimd_state and the compat_vfp_sigframe.
      
      Unfortunately, this doesn't work so well in a big-endian environment.
      Our fpsimd save/restore code operates directly on 128-bit quantities
      (Q registers) whereas the compat_vfp_sigframe represents the registers
      as an array of 64-bit (D) registers. The architecture packs the compat D
      registers into the Q registers, with the least significant bytes holding
      the lower register. Consequently, we need to swap the 64-bit halves when
      converting between these two representations on a big-endian machine.
      
      This patch replaces the __copy_{to,from}_user invocations in our
      compat VFP signal handling code with explicit __put_user loops that
      operate on 64-bit values and swap them accordingly.
      
      Cc: <stable@vger.kernel.org>
      Reviewed-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
      Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
      bdec97a8