1. 02 Nov, 2015 2 commits
    • Linus Torvalds's avatar
      Merge branch 'fs-file-descriptor-optimization' · 2e002662
      Linus Torvalds authored
      Merge file descriptor allocation speedup.
      
      Eric Dumazet has a test-case for a fairly common network deamon load
      pattern: openign and closing a lot of sockets that each have very little
      work done on them.  It turns out that in that case, the cost of just
      finding the correct file descriptor number can be a dominating factor.
      
      We've long had a trivial optimization for allocating file descriptors
      sequentially, but that optimization ends up being not very effective
      when other file descriptors are being closed concurrently, and the fd
      patterns are not some simple FIFO pattern.  In such cases we ended up
      spending a lot of time just scanning the bitmap of open file descriptors
      in order to find the next file descriptor number to open.
      
      This trivial patch-series mitigates that by simply introducing a
      second-level bitmap of which words in the first bitmap are already fully
      allocated.  That cuts down the cost of scanning by an order of magnitude
      in some pathological (but realistic) cases.
      
      The second patch is an even more trivial patch to avoid unnecessarily
      dirtying the cacheline for the close-on-exec bit array that normally
      ends up being all empty.
      
      * fs-file-descriptor-optimization:
        vfs: conditionally clear close-on-exec flag
        vfs: Fix pathological performance case for __alloc_fd()
      2e002662
    • Linus Torvalds's avatar
      Linux 4.3 · 6a13feb9
      Linus Torvalds authored
      6a13feb9
  2. 01 Nov, 2015 7 commits
    • Linus Torvalds's avatar
      Merge branch 'libnvdimm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm · 95fc00a4
      Linus Torvalds authored
      Pull memremap fix from Dan Williams:
       "The new memremap() api introduced in the 4.3 cycle to unify/replace
        ioremap_cache() and ioremap_wt() is mishandling the highmem case.
        This patch has received a build success notification from a
        0day-kbuild-robot run and has received an ack from Ard"
      
      From the commit message:
       "The impact of this bug is low for now since the pmem driver is the
        only user of memremap(), but this is important to fix before more
        conversions to memremap arrive in 4.4"
      
      * 'libnvdimm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm:
        memremap: fix highmem support
      95fc00a4
    • Linus Torvalds's avatar
      Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · ca04d396
      Linus Torvalds authored
      Pull x86 fixes from Thomas Gleixner:
       "This set of updates contains:
      
         - Another bugfix for the pathologic vm86 machinery.  Clear
           thread.vm86 on fork to prevent corrupting the parent state.  This
           comes along with an update to the vm86 selftest case
      
         - Fix another corner case in the ioapic setup code which causes a
           boot crash on some oddball systems
      
         - Fix the fallout from the dma allocation consolidation work, which
           leads to a NULL pointer dereference when the allocation code is
           called with a NULL device"
      
      * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/vm86: Set thread.vm86 to NULL on fork/clone
        selftests/x86: Add a fork() to entry_from_vm86 to catch fork bugs
        x86/ioapic: Prevent NULL pointer dereference in setup_ioapic_dest()
        x86/dma-mapping: Fix arch_dma_alloc_attrs() oops with NULL dev
      ca04d396
    • Linus Torvalds's avatar
      Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · f5eab267
      Linus Torvalds authored
      Pull timer fixes from Thomas Gleixner:
       "The last round of minimalistic fixes for clocksource drivers:
      
         - Prevent multiple shutdown of the sh_mtu2 clocksource
      
         - Annotate a bunch of clocksource/schedclock functions with notrace
           to prevent an annoying ftrace recursion issue"
      
      * 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        clocksource/drivers/sh_mtu2: Fix multiple shutdown call issue
        clocksource/drivers/digicolor: Prevent ftrace recursion
        clocksource/drivers/fsl_ftm_timer: Prevent ftrace recursion
        clocksource/drivers/vf_pit_timer: Prevent ftrace recursion
        clocksource/drivers/prima2: Prevent ftrace recursion
        clocksource/drivers/samsung_pwm_timer: Prevent ftrace recursion
        clocksource/drivers/pistachio: Prevent ftrace recursion
        clocksource/drivers/arm_global_timer: Prevent ftrace recursion
      f5eab267
    • Linus Torvalds's avatar
      Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 4bf690d7
      Linus Torvalds authored
      Pull irq fixes from Thomas Gleixner:
       "The last two one-liners for 4.3 from the irqchip space:
      
         - Regression fix for armada SoC which addresses the fallout from the
           set_irq_flags() cleanup
      
         - Add the missing propagation of the irq_set_type() callback to the
           parent interrupt controller of the tegra interrupt chip"
      
      * 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        irqchip/tegra: Propagate IRQ type setting to parent
        irqchip/armada-370-xp: Fix regression by clearing IRQ_NOAUTOEN
      4bf690d7
    • Linus Torvalds's avatar
      Merge tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 56ef9db2
      Linus Torvalds authored
      Pull ARM SoC fixes from Olof Johansson:
       "This should be our final batch of fixes for 4.3:
      
         - A patch from Sudeep Holla that fixes annotation of wakeup sources
           properly, old unused format seems to have spread through copying.
      
         - Two patches from Tony for OMAP.  One dealing with MUSB setup
           problems due to runtime PM being enabled too early on the parent
           device.  The other fixes IRQ numbering for OMAP1"
      
      * tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
        usb: musb: omap2430: Fix regression caused by driver core change
        ARM: OMAP1: fix incorrect INT_DMA_LCD
        ARM: dts: fix gpio-keys wakeup-source property
      56ef9db2
    • Linus Torvalds's avatar
      Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · 060b85b0
      Linus Torvalds authored
      Pull SCSI fixes from James Bottomley:
       "This is three essential bug fixes for various SCSI parts.
      
        The only affected users are SCSI multi-path via device handler
        (basically all the enterprise) and mvsas users.  The dh bugs are an
        async entanglement in boot resulting in a serious WARN_ON trip and a
        use after free on remove leading to a crash with strict memory
        accounting.  The mvsas bug manifests as a null deref oops but only on
        abort sequences; however, these can commonly occur with SATA attached
        devices, hence the fix"
      
      * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
        scsi_dh: don't try to load a device handler during async probing
        scsi_dh: fix use-after-free when removing scsi device
        mvsas: Fix NULL pointer dereference in mvs_slot_task_free
      060b85b0
    • Linus Torvalds's avatar
      Merge tag 'md/4.3-rc7-fixes' of git://neil.brown.name/md · af7eba01
      Linus Torvalds authored
      Pull md bug fixes from Neil Brown:
       "Two more bug fixes for md.
      
        One bugfix for a list corruption in raid5 because of incorrect
        locking.
      
        Other for possible data corruption when a recovering device is failed,
        removed, and re-added.
      
        Both tagged for -stable"
      
      * tag 'md/4.3-rc7-fixes' of git://neil.brown.name/md:
        Revert "md: allow a partially recovered device to be hot-added to an array."
        md/raid5: fix locking in handle_stripe_clean_event()
      af7eba01
  3. 31 Oct, 2015 14 commits
    • Linus Torvalds's avatar
      Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux · d59ebbf1
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "Two drm atomic core fixes.
      
        And two radeon patches needed to fix a backlight regression on some
        older hardware"
      
      * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux:
        drm: Correct arguments to list_tail_add in create blob ioctl
        drm: crtc: integer overflow in drm_property_create_blob()
        drm/radeon: fix dpms when driver backlight control is disabled
        drm/radeon: move bl encoder assignment into bl init
      d59ebbf1
    • Linus Torvalds's avatar
      vfs: conditionally clear close-on-exec flag · fc90888d
      Linus Torvalds authored
      We clear the close-on-exec flag when opening and closing files, and the
      bit was almost always already clear before.  Avoid dirtying the
      cacheline if the clearning isn't necessary.  That avoids unnecessary
      cacheline dirtying and bouncing in multi-socket environments.
      
      Eric Dumazet has a file descriptor benchmark that goes 4% faster from
      this on his two-socket machine.  It's probably partly superlinear
      improvement due to getting slightly less spinlock contention on the
      file_lock spinlock due to less work in the critical section.
      Tested-by: default avatarEric Dumazet <eric.dumazet@gmail.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      fc90888d
    • Linus Torvalds's avatar
      vfs: Fix pathological performance case for __alloc_fd() · f3f86e33
      Linus Torvalds authored
      Al Viro points out that:
      > >     * [Linux-specific aside] our __alloc_fd() can degrade quite badly
      > > with some use patterns.  The cacheline pingpong in the bitmap is probably
      > > inevitable, unless we accept considerably heavier memory footprint,
      > > but we also have a case when alloc_fd() takes O(n) and it's _not_ hard
      > > to trigger - close(3);open(...); will have the next open() after that
      > > scanning the entire in-use bitmap.
      
      And Eric Dumazet has a somewhat realistic multithreaded microbenchmark
      that opens and closes a lot of sockets with minimal work per socket.
      
      This patch largely fixes it.  We keep a 2nd-level bitmap of the open
      file bitmaps, showing which words are already full.  So then we can
      traverse that second-level bitmap to efficiently skip already allocated
      file descriptors.
      
      On his benchmark, this improves performance by up to an order of
      magnitude, by avoiding the excessive open file bitmap scanning.
      Tested-and-acked-by: default avatarEric Dumazet <edumazet@google.com>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      f3f86e33
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client · 523e1345
      Linus Torvalds authored
      Pull Ceph fix from Sage Weil:
       "This sets the stable pages flag on the RBD block device when we have
        CRCs enabled.  (This is necessary since the default assumption for
        block devices changed in 3.9)"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client:
        rbd: require stable pages if message data CRCs are enabled
      523e1345
    • Linus Torvalds's avatar
      Merge branch 'overlayfs-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs · 4bb0fb57
      Linus Torvalds authored
      Pull overlayfs bug fixes from Miklos Szeredi:
       "This contains fixes for bugs that appeared in earlier kernels (all are
        marked for -stable)"
      
      * 'overlayfs-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs:
        ovl: free lower_mnt array in ovl_put_super
        ovl: free stack of paths in ovl_fill_super
        ovl: fix open in stacked overlay
        ovl: fix dentry reference leak
        ovl: use O_LARGEFILE in ovl_copy_up()
      4bb0fb57
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · c94eee8a
      Linus Torvalds authored
      Pull networking fixes from David Miller:
      
       1) Fix two regressions in ipv6 route lookups, particularly wrt output
          interface specifications in the lookup key.  From David Ahern.
      
       2) Fix checks in ipv6 IPSEC tunnel pre-encap fragmentation, from
          Herbert Xu.
      
       3) Fix mis-advertisement of 1000BASE-T on bcm63xx_enet, from Simon
          Arlott.
      
       4) Some smsc phys misbehave with energy detect mode enabled, so add a
          DT property and disable it on such switches.  From Heiko Schocher.
      
       5) Fix TSO corruption on TX in mv643xx_eth, from Philipp Kirchhofer.
      
       6) Fix regression added by removal of openvswitch vport stats, from
          James Morse.
      
       7) Vendor Kconfig options should be bool, not tristate, from Andreas
          Schwab.
      
       8) Use non-_BH() net stats bump in tcp_xmit_probe_skb(), otherwise we
          barf during TCP REPAIR operations.
      
       9) Fix various bugs in openvswitch conntrack support, from Joe
          Stringer.
      
      10) Fix NETLINK_LIST_MEMBERSHIPS locking, from David Herrmann.
      
      11) Don't have VSOCK do sock_put() in interrupt context, from Jorgen
          Hansen.
      
      12) Fix skb_realloc_headroom() failures properly in ISDN, from Karsten
          Keil.
      
      13) Add some device IDs to qmi_wwan, from Bjorn Mork.
      
      14) Fix ovs egress tunnel information when using lwtunnel devices, from
          Pravin B Shelar.
      
      15) Add missing NETIF_F_FRAGLIST to macvtab feature list, from Jason
          Wang.
      
      16) Fix incorrect handling of throw routes when the result of the throw
          cannot find a match, from Xin Long.
      
      17) Protect ipv6 MTU calculations from wrap-around, from Hannes Frederic
          Sowa.
      
      18) Fix failed autonegotiation on KSZ9031 micrel PHYs, from Nathan
          Sullivan.
      
      19) Add missing memory barries in descriptor accesses or xgbe driver,
          from Thomas Lendacky.
      
      20) Fix release conditon test in pppoe_release(), from Guillaume Nault.
      
      21) Fix gianfar bugs wrt filter configuration, from Claudiu Manoil.
      
      22) Fix violations of RX buffer alignment in sh_eth driver, from Sergei
          Shtylyov.
      
      23) Fixing missing of_node_put() calls in various places around the
          networking, from Julia Lawall.
      
      24) Fix incorrect leaf now walking in ipv4 routing tree, from Alexander
          Duyck.
      
      25) RDS doesn't check pskb_pull()/pskb_trim() return values, from
          Sowmini Varadhan.
      
      26) Fix VLAN configuration in mlx4 driver, from Jack Morgenstein.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (79 commits)
        ipv6: protect mtu calculation of wrap-around and infinite loop by rounding issues
        Revert "Merge branch 'ipv6-overflow-arith'"
        net/mlx4: Copy/set only sizeof struct mlx4_eqe bytes
        net/mlx4_en: Explicitly set no vlan tags in WQE ctrl segment when no vlan is present
        vhost: fix performance on LE hosts
        bpf: sample: define aarch64 specific registers
        amd-xgbe: Fix race between access of desc and desc index
        RDS-TCP: Recover correctly from pskb_pull()/pksb_trim() failure in rds_tcp_data_recv
        forcedeth: fix unilateral interrupt disabling in netpoll path
        openvswitch: Fix skb leak using IPv6 defrag
        ipv6: Export nf_ct_frag6_consume_orig()
        openvswitch: Fix double-free on ip_defrag() errors
        fib_trie: leaf_walk_rcu should not compute key if key is less than pn->key
        net: mv643xx_eth: add missing of_node_put
        ath6kl: add missing of_node_put
        net: phy: mdio: add missing of_node_put
        netdev/phy: add missing of_node_put
        net: netcp: add missing of_node_put
        net: thunderx: add missing of_node_put
        ipv6: gre: support SIT encapsulation
        ...
      c94eee8a
    • Andy Lutomirski's avatar
      x86/vm86: Set thread.vm86 to NULL on fork/clone · 2459ee86
      Andy Lutomirski authored
      thread.vm86 points to per-task information -- the pointer should not
      be copied on clone.
      
      Fixes: d4ce0f26 ("x86/vm86: Move fields from 'struct kernel_vm86_struct' to 'struct vm86'")
      Signed-off-by: default avatarAndy Lutomirski <luto@kernel.org>
      Cc: Brian Gerst <brgerst@gmail.com>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Borislav Petkov <bp@alien8.de>
      Cc: Stas Sergeev <stsp@list.ru>
      Link: http://lkml.kernel.org/r/71c5d6985d70ec8197c8d72f003823c81b7dcf99.1446270067.git.luto@kernel.orgSigned-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      2459ee86
    • Andy Lutomirski's avatar
      selftests/x86: Add a fork() to entry_from_vm86 to catch fork bugs · 226f1f72
      Andy Lutomirski authored
      Mere possession of vm86 state is strange.  Make sure that nothing
      gets corrupted if we fork after calling vm86().
      Signed-off-by: default avatarAndy Lutomirski <luto@kernel.org>
      Cc: Brian Gerst <brgerst@gmail.com>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Borislav Petkov <bp@alien8.de>
      Cc: Stas Sergeev <stsp@list.ru>
      Link: http://lkml.kernel.org/r/08f83295460a80e41dc5e3e81ec40d6844d316f5.1446270067.git.luto@kernel.orgSigned-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      226f1f72
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input · 38dab9ac
      Linus Torvalds authored
      Pull input layer fixes from Dmitry Torokhov:
      
       - a change to the ALPS driver where we had limit the quirk for
         trackstick handling from being active on all Dells to just a few
         models
      
       - a fix for a build dependency issue in the sur40 driver
      
       - a small clock handling fixup in the LPC32xx touchscreen driver
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
        Input: alps - only the Dell Latitude D420/430/620/630 have separate stick button bits
        Input: sur40 - add dependency on VIDEO_V4L2
        Input: lpc32xx_ts - fix warnings caused by enabling unprepared clock
      38dab9ac
    • Linus Torvalds's avatar
      Merge tag 'pci-v4.3-fixes-2' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci · f9793e37
      Linus Torvalds authored
      Pull PCI fix from Bjorn Helgaas:
       "Sorry for this last-minute update; it's been in -next for quite a
        while, but I forgot about it until I started getting ready for the
        merge window.
      
        It's small and fixes a way a user could cause a panic via sysfs, so I
        think it's worth getting it in v4.3.
      
        NUMA:
          - Prevent out of bounds access in sysfs numa_node override (Sasha Levin)"
      
      * tag 'pci-v4.3-fixes-2' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci:
        PCI: Prevent out of bounds access in numa_node override
      f9793e37
    • Olof Johansson's avatar
      Merge tag 'omap-for-v4.3/fixes-rc7' of... · 53dd186b
      Olof Johansson authored
      Merge tag 'omap-for-v4.3/fixes-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into fixes
      
      Two omap regression fixes:
      
      - Fix omap3 MUSB with DMA caused by driver core changes
      
      - Fix LCD DMA interrupt number for omap1 that did not
        get changed for sparse IRQ changes
      
      * tag 'omap-for-v4.3/fixes-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap:
        usb: musb: omap2430: Fix regression caused by driver core change
        ARM: OMAP1: fix incorrect INT_DMA_LCD
      Signed-off-by: default avatarOlof Johansson <olof@lixom.net>
      53dd186b
    • Maneet Singh's avatar
      drm: Correct arguments to list_tail_add in create blob ioctl · 8731b269
      Maneet Singh authored
      Arguments passed to list_add_tail were reversed resulting in deletion
      of old blob property everytime the new one is added.
      
      Fixes
      
      commit e2f5d2ea
      Author: Daniel Stone <daniels@collabora.com>
      Date:   Fri May 22 13:34:51 2015 +0100
      
          drm/mode: Add user blob-creation ioctl
      Signed-off-by: default avatarManeet Singh <mmaneetsingh@nvidia.com>
      [seanpaul tweaked commit subject a little]
      Signed-off-by: default avatarSean Paul <seanpaul@chromium.org>
      Cc: stable@kernel.org # v4.2
      Reviewed-by: default avatarDaniel Stone <daniels@collabora.com>
      Reviewed-by: default avatarJani Nikula <jani.nikula@intel.com>
      Signed-off-by: default avatarDave Airlie <airlied@gmail.com>
      8731b269
    • NeilBrown's avatar
      Revert "md: allow a partially recovered device to be hot-added to an array." · d01552a7
      NeilBrown authored
      This reverts commit 7eb41885.
      
      This commit is poorly justified, I can find not discusison in email,
      and it clearly causes a problem.
      
      If a device which is being recovered fails and is subsequently
      re-added to an array, there could easily have been changes to the
      array *before* the point where the recovery was up to.  So the
      recovery must start again from the beginning.
      
      If a spare is being recovered and fails, then when it is re-added we
      really should do a bitmap-based recovery up to the recovery-offset,
      and then a full recovery from there.  Before this reversion, we only
      did the "full recovery from there" which is not corect.  After this
      reversion with will do a full recovery from the start, which is safer
      but not ideal.
      
      It will be left to a future patch to arrange the two different styles
      of recovery.
      Reported-and-tested-by: default avatarNate Dailey <nate.dailey@stratus.com>
      Signed-off-by: default avatarNeilBrown <neilb@suse.com>
      Cc: stable@vger.kernel.org (3.14+)
      Fixes: 7eb41885 ("md: allow a partially recovered device to be hot-added to an array.")
      d01552a7
    • Dan Carpenter's avatar
      drm: crtc: integer overflow in drm_property_create_blob() · 9ac0934b
      Dan Carpenter authored
      The size here comes from the user via the ioctl, it is a number between
      1-u32max so the addition here could overflow on 32 bit systems.
      
      Fixes: f453ba04 ('DRM: add mode setting support')
      Signed-off-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
      Reviewed-by: default avatarDaniel Stone <daniels@collabora.com>
      Cc: stable@kernel.org # v4.2
      Signed-off-by: default avatarDave Airlie <airlied@gmail.com>
      9ac0934b
  4. 30 Oct, 2015 4 commits
    • Linus Torvalds's avatar
      Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · 9b971e77
      Linus Torvalds authored
      Pull arm64 fixes from Will Deacon:
       "Apologies for this being so late, but we've uncovered a few nasty
        issues on arm64 which didn't settle down until yesterday and the fixes
        all look suitable for 4.3.  Of the four patches, three of them are
        Cc'd to stable, with the remaining patch fixing an issue that only
        took effect during the merge window.
      
        Summary:
      
         - Fix corruption in SWP emulation when STXR fails due to contention
         - Fix MMU re-initialisation when resuming from a low-power state
         - Fix stack unwinding code to match what ftrace expects
         - Fix relocation code in the EFI stub when DRAM base is not 2MB aligned"
      
      * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
        arm64/efi: do not assume DRAM base is aligned to 2 MB
        Revert "ARM64: unwind: Fix PC calculation"
        arm64: kernel: fix tcr_el1.t0sz restore on systems with extended idmap
        arm64: compat: fix stxr failure case in SWP emulation
      9b971e77
    • Linus Torvalds's avatar
      Merge tag 'please-pull-syscalls' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux · 7c0f488f
      Linus Torvalds authored
      Pull ia64 kcmp syscall from Tony Luck:
       "Missed adding the kcmp() syscall a long time ago.  Now it seems that
        it is essential to build systemd"
      
      * tag 'please-pull-syscalls' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux:
        [IA64] Wire up kcmp syscall
      7c0f488f
    • Roman Gushchin's avatar
      md/raid5: fix locking in handle_stripe_clean_event() · b8a9d66d
      Roman Gushchin authored
      After commit 566c09c5 ("raid5: relieve lock contention in get_active_stripe()")
      __find_stripe() is called under conf->hash_locks + hash.
      But handle_stripe_clean_event() calls remove_hash() under
      conf->device_lock.
      
      Under some cirscumstances the hash chain can be circuited,
      and we get an infinite loop with disabled interrupts and locked hash
      lock in __find_stripe(). This leads to hard lockup on multiple CPUs
      and following system crash.
      
      I was able to reproduce this behavior on raid6 over 6 ssd disks.
      The devices_handle_discard_safely option should be set to enable trim
      support. The following script was used:
      
      for i in `seq 1 32`; do
          dd if=/dev/zero of=large$i bs=10M count=100 &
      done
      
      neilb: original was against a 3.x kernel.  I forward-ported
        to 4.3-rc.  This verison is suitable for any kernel since
        Commit: 59fc630b ("RAID5: batch adjacent full stripe write")
        (v4.1+).  I'll post a version for earlier kernels to stable.
      Signed-off-by: default avatarRoman Gushchin <klamm@yandex-team.ru>
      Fixes: 566c09c5 ("raid5: relieve lock contention in get_active_stripe()")
      Signed-off-by: default avatarNeilBrown <neilb@suse.com>
      Cc: Shaohua Li <shli@kernel.org>
      Cc: <stable@vger.kernel.org> # 3.13 - 4.2
      b8a9d66d
    • Ronny Hegewald's avatar
      rbd: require stable pages if message data CRCs are enabled · bae818ee
      Ronny Hegewald authored
      rbd requires stable pages, as it performs a crc of the page data before
      they are send to the OSDs.
      
      But since kernel 3.9 (patch 1d1d1a76
      "mm: only enforce stable page writes if the backing device requires
      it") it is not assumed anymore that block devices require stable pages.
      
      This patch sets the necessary flag to get stable pages back for rbd.
      
      In a ceph installation that provides multiple ext4 formatted rbd
      devices "bad crc" messages appeared regularly (ca 1 message every 1-2
      minutes on every OSD that provided the data for the rbd) in the
      OSD-logs before this patch. After this patch this messages are pretty
      much gone (only ca 1-2 / month / OSD).
      
      Cc: stable@vger.kernel.org # 3.9+, needs backporting
      Signed-off-by: default avatarRonny Hegewald <Ronny.Hegewald@online.de>
      [idryomov@gmail.com: require stable pages only in crc case, changelog]
      Signed-off-by: default avatarIlya Dryomov <idryomov@gmail.com>
      bae818ee
  5. 29 Oct, 2015 6 commits
  6. 28 Oct, 2015 7 commits
    • Émeric MASCHINO's avatar
      [IA64] Wire up kcmp syscall · d305c477
      Émeric MASCHINO authored
      systemd > 218 fails to compile on ia64 with:
      
           error: ‘__NR_kcmp’ undeclared [1].
      
      I've been told that this is because the kcmp syscall hasn't been wired up
      for the ia64 arch [2].
      
      The proposed patch thus wire up the kcmp syscall for the ia64 arch.
      
      [1] https://bugs.gentoo.org/show_bug.cgi?id=560492
      [2] https://bugs.gentoo.org/show_bug.cgi?id=560492#c17Signed-off-by: default avatarÉmeric MASCHINO <emeric.maschino@gmail.com>
      Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
      d305c477
    • Tony Lindgren's avatar
      usb: musb: omap2430: Fix regression caused by driver core change · 8f2279d5
      Tony Lindgren authored
      Commit ddef08dd ("Driver core: wakeup the parent device before trying
      probe") started automatically ensuring the parent device is enabled when
      the child gets probed.
      
      This however caused a regression for MUSB omap2430 interface as the
      runtime PM for the parent device needs the child initialized to access
      the MUSB hardware registers.
      
      Let's delay the enabling of PM runtime for the parent until the child
      has been properly initialized as suggested in an earlier patch by
      Grygorii Strashko <grygorii.strashko@ti.com>.
      
      In addition to delaying pm_runtime_enable, we now also need to make sure
      the parent is enabled during omap2430_musb_init. We also want to propagate
      an error from omap2430_runtime_resume if struct musb is not initialized.
      
      Note that we use pm_runtime_put_noidle here for both the child and parent
      to prevent an extra runtime_suspend/resume cycle.
      
      Let's also add some comments to avoid confusion between the
      two different devices.
      
      Fixes: ddef08dd ("Driver core: wakeup the parent device before
      trying probe")
      Suggested-by: default avatarGrygorii Strashko <grygorii.strashko@ti.com>
      Reviewed-by: default avatarGrygorii Strashko <grygorii.strashko@ti.com>
      Acked-by: default avatarFelipe Balbi <balbi@ti.com>
      Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
      8f2279d5
    • Will Deacon's avatar
      Revert "ARM64: unwind: Fix PC calculation" · 9702970c
      Will Deacon authored
      This reverts commit e306dfd0.
      
      With this patch applied, we were the only architecture making this sort
      of adjustment to the PC calculation in the unwinder. This causes
      problems for ftrace, where the PC values are matched against the
      contents of the stack frames in the callchain and fail to match any
      records after the address adjustment.
      
      Whilst there has been some effort to change ftrace to workaround this,
      those patches are not yet ready for mainline and, since we're the odd
      architecture in this regard, let's just step in line with other
      architectures (like arch/arm/) for now.
      
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
      9702970c
    • Lorenzo Pieralisi's avatar
      arm64: kernel: fix tcr_el1.t0sz restore on systems with extended idmap · e13d918a
      Lorenzo Pieralisi authored
      Commit dd006da2 ("arm64: mm: increase VA range of identity map")
      introduced a mechanism to extend the virtual memory map range
      to support arm64 systems with system RAM located at very high offset,
      where the identity mapping used to enable/disable the MMU requires
      additional translation levels to map the physical memory at an equal
      virtual offset.
      
      The kernel detects at boot time the tcr_el1.t0sz value required by the
      identity mapping and sets-up the tcr_el1.t0sz register field accordingly,
      any time the identity map is required in the kernel (ie when enabling the
      MMU).
      
      After enabling the MMU, in the cold boot path the kernel resets the
      tcr_el1.t0sz to its default value (ie the actual configuration value for
      the system virtual address space) so that after enabling the MMU the
      memory space translated by ttbr0_el1 is restored as expected.
      
      Commit dd006da2 ("arm64: mm: increase VA range of identity map")
      also added code to set-up the tcr_el1.t0sz value when the kernel resumes
      from low-power states with the MMU off through cpu_resume() in order to
      effectively use the identity mapping to enable the MMU but failed to add
      the code required to restore the tcr_el1.t0sz to its default value, when
      the core returns to the kernel with the MMU enabled, so that the kernel
      might end up running with tcr_el1.t0sz value set-up for the identity
      mapping which can be lower than the value required by the actual virtual
      address space, resulting in an erroneous set-up.
      
      This patchs adds code in the resume path that restores the tcr_el1.t0sz
      default value upon core resume, mirroring this way the cold boot path
      behaviour therefore fixing the issue.
      
      Cc: <stable@vger.kernel.org>
      Cc: Catalin Marinas <catalin.marinas@arm.com>
      Fixes: dd006da2 ("arm64: mm: increase VA range of identity map")
      Acked-by: default avatarArd Biesheuvel <ard.biesheuvel@linaro.org>
      Signed-off-by: default avatarLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
      Signed-off-by: default avatarJames Morse <james.morse@arm.com>
      Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
      e13d918a
    • Will Deacon's avatar
      arm64: compat: fix stxr failure case in SWP emulation · 589cb22b
      Will Deacon authored
      If the STXR instruction fails in the SWP emulation code, we leave *data
      overwritten with the loaded value, therefore corrupting the data written
      by a subsequent, successful attempt.
      
      This patch re-jigs the code so that we only write back to *data once we
      know that the update has happened.
      
      Cc: <stable@vger.kernel.org>
      Fixes: bd35a4ad ("arm64: Port SWP/SWPB emulation support from arm")
      Reported-by: default avatarShengjiu Wang <shengjiu.wang@freescale.com>
      Reported-by: default avatarVladimir Murzin <vladimir.murzin@arm.com>
      Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
      589cb22b
    • Aaro Koskinen's avatar
      ARM: OMAP1: fix incorrect INT_DMA_LCD · 1bd5dfe4
      Aaro Koskinen authored
      Commit 685e2d08 ("ARM: OMAP1: Change interrupt numbering for
      sparse IRQ") turned on SPARSE_IRQ on OMAP1, but forgot to change
      the number of INT_DMA_LCD. This broke the boot at least on Nokia 770,
      where the device hangs during framebuffer initialization.
      
      Fix by defining INT_DMA_LCD like the other interrupts.
      
      Cc: stable@vger.kernel.org # v4.2+
      Fixes: 685e2d08 ("ARM: OMAP1: Change interrupt numbering for sparse IRQ")
      Signed-off-by: default avatarAaro Koskinen <aaro.koskinen@iki.fi>
      Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
      1bd5dfe4
    • Magnus Damm's avatar
      clocksource/drivers/sh_mtu2: Fix multiple shutdown call issue · fe326c5c
      Magnus Damm authored
      On the r7s72100 Genmai board the MTU2 driver currently triggers a common
      clock framework WARN_ON(enable_count) when disabling the clock due to
      the MTU2 driver after recent callback rework may call ->set_state_shutdown()
      multiple times. A similar issue was spotted for the TMU driver and fixed in:
      452b1324 clocksource/drivers/sh_tmu: Fix traceback spotted in -next
      
      On r7s72100 Genmai v4.3-rc7 built with shmobile_defconfig spits out the
      following during boot:
      
      sh_mtu2 fcff0000.timer: ch0: used for clock events
      ------------[ cut here ]------------
      WARNING: CPU: 0 PID: 1 at drivers/clk/clk.c:675 clk_core_disable+0x2c/0x6c()
      CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.3.0-rc7 #1
      Hardware name: Generic R7S72100 (Flattened Device Tree)
      Backtrace:
      [<c00133d4>] (dump_backtrace) from [<c0013570>] (show_stack+0x18/0x1c)
      [<c0013558>] (show_stack) from [<c01c7aac>] (dump_stack+0x74/0x90)
      [<c01c7a38>] (dump_stack) from [<c00272fc>] (warn_slowpath_common+0x88/0xb4)
      [<c0027274>] (warn_slowpath_common) from [<c0027400>] (warn_slowpath_null+0x24/0x2c)
      [<c00273dc>] (warn_slowpath_null) from [<c03a9320>] (clk_core_disable+0x2c/0x6c)
      [<c03a92f4>] (clk_core_disable) from [<c03aa0a0>] (clk_disable+0x40/0x4c)
      [<c03aa060>] (clk_disable) from [<c0395d2c>] (sh_mtu2_disable+0x24/0x50)
      [<c0395d08>] (sh_mtu2_disable) from [<c0395d6c>] (sh_mtu2_clock_event_shutdown+0x14/0x1c)
      [<c0395d58>] (sh_mtu2_clock_event_shutdown) from [<c007d7d0>] (clockevents_switch_state+0xc8/0x114)
      [<c007d708>] (clockevents_switch_state) from [<c007d834>] (clockevents_shutdown+0x18/0x28)
      [<c007d81c>] (clockevents_shutdown) from [<c007dd58>] (clockevents_exchange_device+0x70/0x78)
      [<c007dce8>] (clockevents_exchange_device) from [<c007e578>] (tick_check_new_device+0x88/0xe0)
      [<c007e4f0>] (tick_check_new_device) from [<c007daf0>] (clockevents_register_device+0xac/0x120)
      [<c007da44>] (clockevents_register_device) from [<c0395be8>] (sh_mtu2_probe+0x230/0x350)
      [<c03959b8>] (sh_mtu2_probe) from [<c028b6f0>] (platform_drv_probe+0x50/0x98)
      Reported-by: default avatarChris Brandt <chris.brandt@renesas.com>
      Fixes: 19a9ffb3 ("clockevents/drivers/sh_mtu2: Migrate to new 'set-state' interface")
      Cc: Viresh Kumar <viresh.kumar@linaro.org>
      Cc: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
      Signed-off-by: default avatarMagnus Damm <damm+renesas@opensource.se>
      Signed-off-by: default avatarDaniel Lezcano <daniel.lezcano@linaro.org>
      Reviewed-by: default avatarViresh Kumar <viresh.kumar@linaro.org>
      fe326c5c