Skip to content
  1. May 06, 2016
  2. May 05, 2016
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace · c5e0666c
      Linus Torvalds authored
      Pull userns fix from Eric Biederman:
       "This contains just a single fix for a nasty oops"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace:
        propogate_mnt: Handle the first propogated copy being a slave
      c5e0666c
    • Linus Torvalds's avatar
      Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost · 3cedbec3
      Linus Torvalds authored
      Pull virtio/qemu fixes from Michael Tsirkin:
       "A couple of fixes for virtio and for the new QEMU fw cfg driver"
      
      * tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost:
        virtio: Silence uninitialized variable warning
        firmware: qemu_fw_cfg.c: potential unintialized variable
      3cedbec3
    • Eric W. Biederman's avatar
      propogate_mnt: Handle the first propogated copy being a slave · 5ec0811d
      Eric W. Biederman authored
      When the first propgated copy was a slave the following oops would result:
      > BUG: unable to handle kernel NULL pointer dereference at 0000000000000010
      > IP: [<ffffffff811fba4e>] propagate_one+0xbe/0x1c0
      > PGD bacd4067 PUD bac66067 PMD 0
      > Oops: 0000 [#1] SMP
      > Modules linked in:
      > CPU: 1 PID: 824 Comm: mount Not tainted 4.6.0-rc5userns+ #1523
      > Hardware name: Bochs Bochs, BIOS Bochs 01/01/2007
      > task: ffff8800bb0a8000 ti: ffff8800bac3c000 task.ti: ffff8800bac3c000
      > RIP: 0010:[<ffffffff811fba4e>]  [<ffffffff811fba4e>] propagate_one+0xbe/0x1c0
      > RSP: 0018:ffff8800bac3fd38  EFLAGS: 00010283
      > RAX: 0000000000000000 RBX: ffff8800bb77ec00 RCX: 0000000000000010
      > RDX: 0000000000000000 RSI: ffff8800bb58c000 RDI: ffff8800bb58c480
      > RBP: ffff8800bac3fd48 R08: 0000000000000001 R09: 0000000000000000
      > R10: 0000000000001ca1 R11: 0000000000001c9d R12: 0000000000000000
      > R13: ffff8800ba713800 R14: ffff8800bac3fda0 R15: ffff8800bb77ec00
      > FS:  00007f3c0cd9b7e0(0000) GS:ffff8800bfb00000(0000) knlGS:0000000000000000
      > CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      > CR2: 0000000000000010 CR3: 00000000bb79d000 CR4: 00000000000006e0
      > Stack:
      >  ffff8800bb77ec00 0000000000000000 ffff8800bac3fd88 ffffffff811fbf85
      >  ffff8800bac3fd98 ffff8800bb77f080 ffff8800ba713800 ffff8800bb262b40
      >  0000000000000000 0000000000000000 ffff8800bac3fdd8 ffffffff811f1da0
      > Call Trace:
      >  [<ffffffff811fbf85>] propagate_mnt+0x105/0x140
      >  [<ffffffff811f1da0>] attach_recursive_mnt+0x120/0x1e0
      >  [<ffffffff811f1ec3>] graft_tree+0x63/0x70
      >  [<ffffffff811f1f6b>] do_add_mount+0x9b/0x100
      >  [<ffffffff811f2c1a>] do_mount+0x2aa/0xdf0
      >  [<ffffffff8117efbe>] ? strndup_user+0x4e/0x70
      >  [<ffffffff811f3a45>] SyS_mount+0x75/0xc0
      >  [<ffffffff8100242b>] do_syscall_64+0x4b/0xa0
      >  [<ffffffff81988f3c>] entry_SYSCALL64_slow_path+0x25/0x25
      > Code: 00 00 75 ec 48 89 0d 02 22 22 01 8b 89 10 01 00 00 48 89 05 fd 21 22 01 39 8e 10 01 00 00 0f 84 e0 00 00 00 48 8b 80 d8 00 00 00 <48> 8b 50 10 48 89 05 df 21 22 01 48 89 15 d0 21 22 01 8b 53 30
      > RIP  [<ffffffff811fba4e>] propagate_one+0xbe/0x1c0
      >  RSP <ffff8800bac3fd38>
      > CR2: 0000000000000010
      > ---[ end trace 2725ecd95164f217 ]---
      
      This oops happens with the namespace_sem held and can be triggered by
      non-root users.  An all around not pleasant experience.
      
      To avoid this scenario when finding the appropriate source mount to
      copy stop the walk up the mnt_master chain when the first source mount
      is encountered.
      
      Further rewrite the walk up the last_source mnt_master chain so that
      it is clear what is going on.
      
      The reason why the first source mount is special is that it it's
      mnt_parent is not a mount in the dest_mnt propagation tree, and as
      such termination conditions based up on the dest_mnt mount propgation
      tree do not make sense.
      
      To avoid other kinds of confusion last_dest is not changed when
      computing last_source.  last_dest is only used once in propagate_one
      and that is above the point of the code being modified, so changing
      the global variable is meaningless and confusing.
      
      Cc: stable@vger.kernel.org
      fixes: f2ebb3a9
      
       ("smarter propagate_mnt()")
      Reported-by: default avatarTycho Andersen <tycho.andersen@canonical.com>
      Reviewed-by: default avatarSeth Forshee <seth.forshee@canonical.com>
      Tested-by: default avatarSeth Forshee <seth.forshee@canonical.com>
      Signed-off-by: default avatar"Eric W. Biederman" <ebiederm@xmission.com>
      5ec0811d
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input · 21a9703d
      Linus Torvalds authored
      Pull input fixes from Dmitry Torokhov.
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
        Input: atmel_mxt_ts - use mxt_acquire_irq in mxt_soft_reset
        Input: zforce_ts - fix dual touch recognition
        Input: twl6040-vibra - fix atomic schedule panic
      21a9703d
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security · 4810d968
      Linus Torvalds authored
      Pull IMA fix from James Morris.
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security:
        ima: fix the string representation of the LSM/IMA hook enumeration ordering
      4810d968
    • Linus Torvalds's avatar
      Merge tag 'for-linus-4.6-rc6-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip · 41143b77
      Linus Torvalds authored
      Pull xen regression fixes from David Vrabel:
      
       - Fix two regressions causing crashes in 32-bit PV guests
      
       - Fix a regression in the evtchn driver
      
      * tag 'for-linus-4.6-rc6-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
        xen/evtchn: fix ring resize when binding new events
        xen/balloon: Fix crash when ballooning on x86 32 bit PAE
        xen: Fix page <-> pfn conversion on 32 bit systems
      41143b77
  3. May 04, 2016
  4. May 03, 2016
    • Ping Cheng's avatar
      HID: wacom: add missed stylus_in_proximity line back · eff6ca97
      Ping Cheng authored
      Commit 7e129783 ("HID: wacom: break out wacom_intuos_get_tool_type") by accident
      removed stylus_in_proximity flag for Intuos series while shuffling the code
      around.
      
      Fix that by reintroducing that flag setting in wacom_intuos_inout(), where
      it originally was.
      
      Fixes: 7e129783
      
       ("HID: wacom: break out wacom_intuos_get_tool_type")
      Signed-off-by: default avatarPing Cheng <pingc@wacom.com>
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
      eff6ca97
    • Miklos Szeredi's avatar
      fuse: update mailing list in MAINTAINERS · 4441f63a
      Miklos Szeredi authored
      
      
      The fuse mailing list seems not to be open anymore.  The discussion on
      fuse-devel@... is mostly userspace related anyway.
      
      Reported-by: default avatarAndreas Gruenbacher <agruenba@redhat.com>
      Signed-off-by: default avatarMiklos Szeredi <mszeredi@redhat.com>
      4441f63a
    • Neil Horman's avatar
      netem: Segment GSO packets on enqueue · 6071bd1a
      Neil Horman authored
      
      
      This was recently reported to me, and reproduced on the latest net kernel,
      when attempting to run netperf from a host that had a netem qdisc attached
      to the egress interface:
      
      [  788.073771] ---------------------[ cut here ]---------------------------
      [  788.096716] WARNING: at net/core/dev.c:2253 skb_warn_bad_offload+0xcd/0xda()
      [  788.129521] bnx2: caps=(0x00000001801949b3, 0x0000000000000000) len=2962
      data_len=0 gso_size=1448 gso_type=1 ip_summed=3
      [  788.182150] Modules linked in: sch_netem kvm_amd kvm crc32_pclmul ipmi_ssif
      ghash_clmulni_intel sp5100_tco amd64_edac_mod aesni_intel lrw gf128mul
      glue_helper ablk_helper edac_mce_amd cryptd pcspkr sg edac_core hpilo ipmi_si
      i2c_piix4 k10temp fam15h_power hpwdt ipmi_msghandler shpchp acpi_power_meter
      pcc_cpufreq nfsd auth_rpcgss nfs_acl lockd grace sunrpc ip_tables xfs libcrc32c
      sd_mod crc_t10dif crct10dif_generic mgag200 syscopyarea sysfillrect sysimgblt
      i2c_algo_bit drm_kms_helper ahci ata_generic pata_acpi ttm libahci
      crct10dif_pclmul pata_atiixp tg3 libata crct10dif_common drm crc32c_intel ptp
      serio_raw bnx2 r8169 hpsa pps_core i2c_core mii dm_mirror dm_region_hash dm_log
      dm_mod
      [  788.465294] CPU: 16 PID: 0 Comm: swapper/16 Tainted: G        W
      ------------   3.10.0-327.el7.x86_64 #1
      [  788.511521] Hardware name: HP ProLiant DL385p Gen8, BIOS A28 12/17/2012
      [  788.542260]  ffff880437c036b8 f7afc56532a53db9 ffff880437c03670
      ffffffff816351f1
      [  788.576332]  ffff880437c036a8 ffffffff8107b200 ffff880633e74200
      ffff880231674000
      [  788.611943]  0000000000000001 0000000000000003 0000000000000000
      ffff880437c03710
      [  788.647241] Call Trace:
      [  788.658817]  <IRQ>  [<ffffffff816351f1>] dump_stack+0x19/0x1b
      [  788.686193]  [<ffffffff8107b200>] warn_slowpath_common+0x70/0xb0
      [  788.713803]  [<ffffffff8107b29c>] warn_slowpath_fmt+0x5c/0x80
      [  788.741314]  [<ffffffff812f92f3>] ? ___ratelimit+0x93/0x100
      [  788.767018]  [<ffffffff81637f49>] skb_warn_bad_offload+0xcd/0xda
      [  788.796117]  [<ffffffff8152950c>] skb_checksum_help+0x17c/0x190
      [  788.823392]  [<ffffffffa01463a1>] netem_enqueue+0x741/0x7c0 [sch_netem]
      [  788.854487]  [<ffffffff8152cb58>] dev_queue_xmit+0x2a8/0x570
      [  788.880870]  [<ffffffff8156ae1d>] ip_finish_output+0x53d/0x7d0
      ...
      
      The problem occurs because netem is not prepared to handle GSO packets (as it
      uses skb_checksum_help in its enqueue path, which cannot manipulate these
      frames).
      
      The solution I think is to simply segment the skb in a simmilar fashion to the
      way we do in __dev_queue_xmit (via validate_xmit_skb), with some minor changes.
      When we decide to corrupt an skb, if the frame is GSO, we segment it, corrupt
      the first segment, and enqueue the remaining ones.
      
      tested successfully by myself on the latest net kernel, to which this applies
      
      Signed-off-by: default avatarNeil Horman <nhorman@tuxdriver.com>
      CC: Jamal Hadi Salim <jhs@mojatatu.com>
      CC: "David S. Miller" <davem@davemloft.net>
      CC: netem@lists.linux-foundation.org
      CC: eric.dumazet@gmail.com
      CC: stephen@networkplumber.org
      Acked-by: default avatarEric Dumazet <edumazet@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      6071bd1a
    • David S. Miller's avatar
      Merge tag 'batman-adv-fix-for-davem' of git://git.open-mesh.org/linux-merge · 9b40d5aa
      David S. Miller authored
      
      
      Antonio Quartulli says:
      
      ====================
      In this small batch of patches you have:
      - a fix for our Distributed ARP Table that makes sure that the input
        provided to the hash function during a query is the same as the one
        provided during an insert (so to prevent false negatives), by Antonio
        Quartulli
      - a fix for our new protocol implementation B.A.T.M.A.N. V that ensures
        that a hard interface is properly re-activated when it is brought down
        and then up again, by Antonio Quartulli
      - two fixes respectively to the reference counting of the tt_local_entry
        and neigh_node objects, by Sven Eckelmann. Such bug is rather severe
        as it would prevent the netdev objects references by batman-adv from
        being released after shutdown.
      ====================
      
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      9b40d5aa
    • Linus Torvalds's avatar
      Minimal fix-up of bad hashing behavior of hash_64() · 689de1d6
      Linus Torvalds authored
      
      
      This is a fairly minimal fixup to the horribly bad behavior of hash_64()
      with certain input patterns.
      
      In particular, because the multiplicative value used for the 64-bit hash
      was intentionally bit-sparse (so that the multiply could be done with
      shifts and adds on architectures without hardware multipliers), some
      bits did not get spread out very much.  In particular, certain fairly
      common bit ranges in the input (roughly bits 12-20: commonly with the
      most information in them when you hash things like byte offsets in files
      or memory that have block factors that mean that the low bits are often
      zero) would not necessarily show up much in the result.
      
      There's a bigger patch-series brewing to fix up things more completely,
      but this is the fairly minimal fix for the 64-bit hashing problem.  It
      simply picks a much better constant multiplier, spreading the bits out a
      lot better.
      
      NOTE! For 32-bit architectures, the bad old hash_64() remains the same
      for now, since 64-bit multiplies are expensive.  The bigger hashing
      cleanup will replace the 32-bit case with something better.
      
      The new constants were picked by George Spelvin who wrote that bigger
      cleanup series.  I just picked out the constants and part of the comment
      from that series.
      
      Cc: stable@vger.kernel.org
      Cc: George Spelvin <linux@horizon.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      689de1d6
    • Linus Torvalds's avatar
      Merge tag 'md/4.6-rc6-fix' of git://git.kernel.org/pub/scm/linux/kernel/git/shli/md · 98bcf286
      Linus Torvalds authored
      Pull MD fixes from Shaohua Li:
       "This update includes several trival fixes.  The only important one is
        to fix MD bio merge, which has big performance impact"
      
      * tag 'md/4.6-rc6-fix' of git://git.kernel.org/pub/scm/linux/kernel/git/shli/md:
        raid5: delete unnecessary warnning
        MD: make bio mergeable
        md/raid0: remove empty line printk from dump_zones
        md/raid0: fix uninitialized variable bug
      98bcf286
    • Linus Torvalds's avatar
      Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs · 33656a1f
      Linus Torvalds authored
      Pull UDF fix from Jan Kara:
       "A fix of a regression in UDF that got introduced in 4.6-rc1 by one of
        the charset encoding fixes"
      
      * 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:
        udf: Fix conversion of 'dstring' fields to UTF8
      33656a1f
    • Linus Torvalds's avatar
      Merge tag 'gpio-v4.6-4' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio · 5f40adbc
      Linus Torvalds authored
      Pull GPIO fixes from Linus Walleij:
       "Here are some late but important fixes for the v4.6 kernel series.
        ACPI and RCAR, so two driver fixes (PM related) and a self-evident
        string lookup fix for ACPI GPIOs:
      
         - A serious ACPI fix targeted for stable: lookup strings were being
           free'd.
      
         - Revert two patches from the RCAR driver"
      
      * tag 'gpio-v4.6-4' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio:
        gpiolib-acpi: Duplicate con_id string when adding it to the crs lookup list
        Revert "gpio: rcar: Fine-grained Runtime PM support"
        Revert "gpio: rcar: Add Runtime PM handling for interrupts"
      5f40adbc
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · 9c5d1bc2
      Linus Torvalds authored
      Pull networking fixes from David Miller:
      
       1) MODULE_FIRMWARE firmware string not correct for iwlwifi 8000 chips,
          from Sara Sharon.
      
       2) Fix SKB size checks in batman-adv stack on receive, from Sven
          Eckelmann.
      
       3) Leak fix on mac80211 interface add error paths, from Johannes Berg.
      
       4) Cannot invoke napi_disable() with BH disabled in myri10ge driver,
          fix from Stanislaw Gruszka.
      
       5) Fix sign extension problem when computing feature masks in
          net_gso_ok(), from Marcelo Ricardo Leitner.
      
       6) lan78xx driver doesn't count packets and packet lengths in its
          statistics properly, fix from Woojung Huh.
      
       7) Fix the buffer allocation sizes in pegasus USB driver, from Petko
          Manolov.
      
       8) Fix refcount overflows in bpf, from Alexei Starovoitov.
      
       9) Unified dst cache handling introduced a preempt warning in
          ip_tunnel, fix by resetting rather then setting the cached route.
          From Paolo Abeni.
      
      10) Listener hash collision test fix in soreuseport, from Craig Gallak
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (47 commits)
        gre: do not pull header in ICMP error processing
        net: Implement net_dbg_ratelimited() for CONFIG_DYNAMIC_DEBUG case
        tipc: only process unicast on intended node
        cxgb3: fix out of bounds read
        net/smscx5xx: use the device tree for mac address
        soreuseport: Fix TCP listener hash collision
        net: l2tp: fix reversed udp6 checksum flags
        ip_tunnel: fix preempt warning in ip tunnel creation/updating
        samples/bpf: fix trace_output example
        bpf: fix check_map_func_compatibility logic
        bpf: fix refcnt overflow
        drivers: net: cpsw: use of_phy_connect() in fixed-link case
        dt: cpsw: phy-handle, phy_id, and fixed-link are mutually exclusive
        drivers: net: cpsw: don't ignore phy-mode if phy-handle is used
        drivers: net: cpsw: fix segfault in case of bad phy-handle
        drivers: net: cpsw: fix parsing of phy-handle DT property in dual_emac config
        MAINTAINERS: net: Change maintainer for GRETH 10/100/1G Ethernet MAC device driver
        gre: reject GUE and FOU in collect metadata mode
        pegasus: fixes reported packet length
        pegasus: fixes URB buffer allocation size;
        ...
      9c5d1bc2