Skip to content
Commits on Jan 7, 2016
  1. Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net

    committed
    Pull networking fixes from David Miller:
     "As usual, there are a couple straggler bug fixes:
    
       1) qlcnic_alloc_mbx_args() error returns are not checked in qlcnic
          driver.  Fix from Insu Yun.
    
       2) SKB refcounting bug in connector, from Florian Westphal.
    
       3) vrf_get_saddr() has to propagate fib_lookup() errors to it's
          callers, from David Ahern.
    
       4) Fix AF_UNIX splice/bind deadlock, from Rainer Weikusat.
    
       5) qdisc_rcu_free() fails to free the per-cpu qstats.  Fix from John
          Fastabend.
    
       6) vmxnet3 driver passes wrong page to dma_map_page(), fix from
         Shrikrishna Khare.
    
       7) Don't allow zero cwnd in tcp_cwnd_reduction(), from Yuchung Cheng"
    
    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net:
      tcp: fix zero cwnd in tcp_cwnd_reduction
      Driver: Vmxnet3: Fix regression caused by 5738a09
      net: qmi_wwan: Add WeTelecom-WPD600N
      mkiss: fix scribble on freed memory
      net: possible use after free in dst_release
      net: sched: fix missing free per cpu on qstats
      ARM: net: bpf: fix zero right shift
      6pack: fix free memory scribbles
      net: filter: make JITs zero A for SKF_AD_ALU_XOR_X
      bridge: Only call /sbin/bridge-stp for the initial network namespace
      af_unix: Fix splice-bind deadlock
      net: Propagate lookup failure in l3mdev_get_saddr to caller
      r8152: add reset_resume function
      connector: bump skb->users before callback invocation
      cxgb4: correctly handling failed allocation
      qlcnic: correctly handle qlcnic_alloc_mbx_args
Commits on Jan 6, 2016
  1. @davem330

    tcp: fix zero cwnd in tcp_cwnd_reduction

    Yuchung Cheng committed with davem330
    Patch 3759824 ("tcp: PRR uses CRB mode by default and SS mode
    conditionally") introduced a bug that cwnd may become 0 when both
    inflight and sndcnt are 0 (cwnd = inflight + sndcnt). This may lead
    to a div-by-zero if the connection starts another cwnd reduction
    phase by setting tp->prior_cwnd to the current cwnd (0) in
    tcp_init_cwnd_reduction().
    
    To prevent this we skip PRR operation when nothing is acked or
    sacked. Then cwnd must be positive in all cases as long as ssthresh
    is positive:
    
    1) The proportional reduction mode
       inflight > ssthresh > 0
    
    2) The reduction bound mode
      a) inflight == ssthresh > 0
    
      b) inflight < ssthresh
         sndcnt > 0 since newly_acked_sacked > 0 and inflight < ssthresh
    
    Therefore in all cases inflight and sndcnt can not both be 0.
    We check invalid tp->prior_cwnd to avoid potential div0 bugs.
    
    In reality this bug is triggered only with a sequence of less common
    events.  For example, the connection is terminating an ECN-triggered
    cwnd reduction with an inflight 0, then it receives reordered/old
    ACKs or DSACKs from prior transmission (which acks nothing). Or the
    connection is in fast recovery stage that marks everything lost,
    but fails to retransmit due to local issues, then receives data
    packets from other end which acks nothing.
    
    Fixes: 3759824 ("tcp: PRR uses CRB mode by default and SS mode conditionally")
    Reported-by: Oleksandr Natalenko <oleksandr@natalenko.name>
    Signed-off-by: Yuchung Cheng <ycheng@google.com>
    Signed-off-by: Neal Cardwell <ncardwell@google.com>
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
  2. @davem330

    Driver: Vmxnet3: Fix regression caused by 5738a09

    Shrikrishna Khare committed with davem330
    Reported-by: Bingkuo Liu <bingkuol@vmware.com>
    Signed-off-by: Shrikrishna Khare <skhare@vmware.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
  3. @kristrev @davem330

    net: qmi_wwan: Add WeTelecom-WPD600N

    kristrev committed with davem330
    The WeTelecom-WPD600N is an LTE module that, in addition to supporting most
    "normal" bands, also supports LTE over 450MHz. Manual testing showed that
    only interface number three replies to QMI messages.
    
    Cc: Bjørn Mork <bjorn@mork.no>
    Signed-off-by: Kristian Evensen <kristian.evensen@gmail.com>
    Acked-by: Bjørn Mork <bjorn@mork.no>
    Signed-off-by: David S. Miller <davem@davemloft.net>
  4. @davem330

    mkiss: fix scribble on freed memory

    Alan committed with davem330
    commit d79f16c fixed a user triggerable
    scribble on free memory but added a new one which allows the user to
    scribble even more and user controlled data into freed space.
    
    As with 6pack we need to halt the queue before we free the buffers, because
    the transmit logic is not protected by the semaphore.
    
    Signed-off-by: Alan Cox <alan@linux.intel.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
  5. @davem330

    net: possible use after free in dst_release

    Francesco Ruggeri committed with davem330
    dst_release should not access dst->flags after decrementing
    __refcnt to 0. The dst_entry may be in dst_busy_list and
    dst_gc_task may dst_destroy it before dst_release gets a chance
    to access dst->flags.
    
    Fixes: d69bbf8 ("net: fix a race in dst_release()")
    Fixes: 27b75c9 ("net: avoid RCU for NOCACHE dst")
    Signed-off-by: Francesco Ruggeri <fruggeri@arista.com>
    Acked-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
  6. @jrfastab @davem330

    net: sched: fix missing free per cpu on qstats

    jrfastab committed with davem330
    When a qdisc is using per cpu stats (currently just the ingress
    qdisc) only the bstats are being freed. This also free's the qstats.
    
    Fixes: b0ab6f9 ("net: sched: enable per cpu qstats")
    Signed-off-by: John Fastabend <john.r.fastabend@intel.com>
    Acked-by: Eric Dumazet <edumazet@google.com>
    Acked-by: Daniel Borkmann <daniel@iogearbox.net>
    Signed-off-by: David S. Miller <davem@davemloft.net>
  7. @rabinv @davem330

    ARM: net: bpf: fix zero right shift

    rabinv committed with davem330
    The LSR instruction cannot be used to perform a zero right shift since a
    0 as the immediate value (imm5) in the LSR instruction encoding means
    that a shift of 32 is perfomed.  See DecodeIMMShift() in the ARM ARM.
    
    Make the JIT skip generation of the LSR if a zero-shift is requested.
    
    This was found using american fuzzy lop.
    
    Signed-off-by: Rabin Vincent <rabin@rab.in>
    Acked-by: Alexei Starovoitov <ast@kernel.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
  8. @davem330

    6pack: fix free memory scribbles

    One Thousand Gnomes committed with davem330
    commit acf673a fixed a user triggerable free
    memory scribble but in doing so replaced it with a different one that allows
    the user to control the data and scribble even more.
    
    sixpack_close is called by the tty layer in tty context. The tty context is
    protected by sp_get() and sp_put(). However network layer activity via
    sp_xmit() is not protected this way. We must therefore stop the queue
    otherwise the user gets to dump a buffer mostly of their choice into freed
    kernel pages.
    
    Signed-off-by: Alan Cox <alan@linux.intel.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
  9. @rabinv @davem330

    net: filter: make JITs zero A for SKF_AD_ALU_XOR_X

    rabinv committed with davem330
    The SKF_AD_ALU_XOR_X ancillary is not like the other ancillary data
    instructions since it XORs A with X while all the others replace A with
    some loaded value.  All the BPF JITs fail to clear A if this is used as
    the first instruction in a filter.  This was found using american fuzzy
    lop.
    
    Add a helper to determine if A needs to be cleared given the first
    instruction in a filter, and use this in the JITs.  Except for ARM, the
    rest have only been compile-tested.
    
    Fixes: 3480593 ("net: filter: get rid of BPF_S_* enum")
    Signed-off-by: Rabin Vincent <rabin@rab.in>
    Acked-by: Daniel Borkmann <daniel@iogearbox.net>
    Acked-by: Alexei Starovoitov <ast@kernel.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
Commits on Jan 5, 2016
  1. @hannes @davem330

    bridge: Only call /sbin/bridge-stp for the initial network namespace

    hannes committed with davem330
    [I stole this patch from Eric Biederman. He wrote:]
    
    > There is no defined mechanism to pass network namespace information
    > into /sbin/bridge-stp therefore don't even try to invoke it except
    > for bridge devices in the initial network namespace.
    >
    > It is possible for unprivileged users to cause /sbin/bridge-stp to be
    > invoked for any network device name which if /sbin/bridge-stp does not
    > guard against unreasonable arguments or being invoked twice on the
    > same network device could cause problems.
    
    [Hannes: changed patch using netns_eq]
    
    Cc: Eric W. Biederman <ebiederm@xmission.com>
    Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
    Signed-off-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
  2. Merge tag 'trace-v4.4-rc4-3' of git://git.kernel.org/pub/scm/linux/ke…

    committed
    …rnel/git/rostedt/linux-trace
    
    Pull tracing fixes from Steven Rostedt:
     "Two more fixes:
    
      1. The recordmcount change had an output that used sprintf()
         (incorrectly) when it should have been a fprintf() to stderr.
    
      2. The printk_formats file could crash if someone added a
         trace_printk() in the core kernel, and also added one in a module.
         This does not affect production kernels.  Only kernels where
         developers add trace_printk() for debugging can crash"
    
    * tag 'trace-v4.4-rc4-3' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
      tracing: Fix setting of start_index in find_next()
      ftrace/scripts: Fix incorrect use of sprintf in recordmcount
  3. Merge branch 'stable' of git://git.kernel.org/pub/scm/linux/kernel/gi…

    committed
    …t/cmetcalf/linux-tile
    
    Pull tile bugfix from Chris Metcalf:
     "This fixes a bug that Sudip's buildbot found for tilepro allmodconfig.
    
      I've tagged it for stable only back to 3.19, which was when most of
      the other affected architectures added their support for working
      around this issue"
    
    * 'stable' of git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile:
      tile: provide CONFIG_PAGE_SIZE_64KB etc for tilepro
  4. tile: provide CONFIG_PAGE_SIZE_64KB etc for tilepro

    Chris Metcalf committed
    This allows the build system to know that it can't attempt to
    configure the Lustre virtual block device, for example, when tilepro
    is using 64KB pages (as it does by default).  The tilegx build
    already provided those symbols.
    
    Previously we required that the tilepro hypervisor be rebuilt with
    a different hardcoded page size in its headers, and then Linux be
    rebuilt using the updated hypervisor header.  Now we allow each of
    the hypervisor and Linux to be built independently.  We still check
    at boot time to ensure that the page size provided by the hypervisor
    matches what Linux expects.
    
    Signed-off-by: Chris Metcalf <cmetcalf@ezchip.com>
    Cc: stable@vger.kernel.org [3.19+]
  5. @davem330

    af_unix: Fix splice-bind deadlock

    Rainer Weikusat committed with davem330
    On 2015/11/06, Dmitry Vyukov reported a deadlock involving the splice
    system call and AF_UNIX sockets,
    
    http://lists.openwall.net/netdev/2015/11/06/24
    
    The situation was analyzed as
    
    (a while ago) A: socketpair()
    B: splice() from a pipe to /mnt/regular_file
    	does sb_start_write() on /mnt
    C: try to freeze /mnt
    	wait for B to finish with /mnt
    A: bind() try to bind our socket to /mnt/new_socket_name
    	lock our socket, see it not bound yet
    	decide that it needs to create something in /mnt
    	try to do sb_start_write() on /mnt, block (it's
    	waiting for C).
    D: splice() from the same pipe to our socket
    	lock the pipe, see that socket is connected
    	try to lock the socket, block waiting for A
    B:	get around to actually feeding a chunk from
    	pipe to file, try to lock the pipe.  Deadlock.
    
    on 2015/11/10 by Al Viro,
    
    http://lists.openwall.net/netdev/2015/11/10/4
    
    The patch fixes this by removing the kern_path_create related code from
    unix_mknod and executing it as part of unix_bind prior acquiring the
    readlock of the socket in question. This means that A (as used above)
    will sb_start_write on /mnt before it acquires the readlock, hence, it
    won't indirectly block B which first did a sb_start_write and then
    waited for a thread trying to acquire the readlock. Consequently, A
    being blocked by C waiting for B won't cause a deadlock anymore
    (effectively, both A and B acquire two locks in opposite order in the
    situation described above).
    
    Dmitry Vyukov(<dvyukov@google.com>) tested the original patch.
    
    Signed-off-by: Rainer Weikusat <rweikusat@mobileactivedefense.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
  6. @davem330

    net: Propagate lookup failure in l3mdev_get_saddr to caller

    David Ahern committed with davem330
    Commands run in a vrf context are not failing as expected on a route lookup:
        root@kenny:~# ip ro ls table vrf-red
        unreachable default
    
        root@kenny:~# ping -I vrf-red -c1 -w1 10.100.1.254
        ping: Warning: source address might be selected on device other than vrf-red.
        PING 10.100.1.254 (10.100.1.254) from 0.0.0.0 vrf-red: 56(84) bytes of data.
    
        --- 10.100.1.254 ping statistics ---
        2 packets transmitted, 0 received, 100% packet loss, time 999ms
    
    Since the vrf table does not have a route for 10.100.1.254 the ping
    should have failed. The saddr lookup causes a full VRF table lookup.
    Propogating a lookup failure to the user allows the command to fail as
    expected:
    
        root@kenny:~# ping -I vrf-red -c1 -w1 10.100.1.254
        connect: No route to host
    
    Signed-off-by: David Ahern <dsa@cumulusnetworks.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
  7. @davem330

    r8152: add reset_resume function

    hayeswang committed with davem330
    When the reset_resume() is called, the flag of SELECTIVE_SUSPEND should be
    cleared and reinitialize the device, whether the SELECTIVE_SUSPEND is set
    or not. If reset_resume() is called, it means the power supply is cut or the
    device is reset. That is, the device wouldn't be in runtime suspend state and
    the reinitialization is necessary.
    
    Signed-off-by: Hayes Wang <hayeswang@realtek.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
  8. @davem330

    connector: bump skb->users before callback invocation

    Florian Westphal committed with davem330
    Dmitry reports memleak with syskaller program.
    Problem is that connector bumps skb usecount but might not invoke callback.
    
    So move skb_get to where we invoke the callback.
    
    Reported-by: Dmitry Vyukov <dvyukov@google.com>
    Signed-off-by: Florian Westphal <fw@strlen.de>
    Signed-off-by: David S. Miller <davem@davemloft.net>
Commits on Jan 4, 2016
  1. @jakkdu @davem330

    cxgb4: correctly handling failed allocation

    jakkdu committed with davem330
    Since t4_alloc_mem can be failed in memory pressure,
    if not properly handled, NULL dereference could be happened.
    
    Signed-off-by: Insu Yun <wuninsu@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
  2. @jakkdu @davem330

    qlcnic: correctly handle qlcnic_alloc_mbx_args

    jakkdu committed with davem330
    Since qlcnic_alloc_mbx_args can be failed,
    return value should be checked.
    
    Signed-off-by: Insu Yun <wuninsu@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
  3. @rostedt

    tracing: Fix setting of start_index in find_next()

    Qiu Peiyang committed with rostedt
    When we do cat /sys/kernel/debug/tracing/printk_formats, we hit kernel
    panic at t_show.
    
    general protection fault: 0000 [#1] PREEMPT SMP
    CPU: 0 PID: 2957 Comm: sh Tainted: G W  O 3.14.55-x86_64-01062-gd4acdc7 #2
    RIP: 0010:[<ffffffff811375b2>]
     [<ffffffff811375b2>] t_show+0x22/0xe0
    RSP: 0000:ffff88002b4ebe80  EFLAGS: 00010246
    RAX: 0000000000000000 RBX: 0000000000000000 RCX: 0000000000000004
    RDX: 0000000000000004 RSI: ffffffff81fd26a6 RDI: ffff880032f9f7b1
    RBP: ffff88002b4ebe98 R08: 0000000000001000 R09: 000000000000ffec
    R10: 0000000000000000 R11: 000000000000000f R12: ffff880004d9b6c0
    R13: 7365725f6d706400 R14: ffff880004d9b6c0 R15: ffffffff82020570
    FS:  0000000000000000(0000) GS:ffff88003aa00000(0063) knlGS:00000000f776bc40
    CS:  0010 DS: 002b ES: 002b CR0: 0000000080050033
    CR2: 00000000f6c02ff0 CR3: 000000002c2b3000 CR4: 00000000001007f0
    Call Trace:
     [<ffffffff811dc076>] seq_read+0x2f6/0x3e0
     [<ffffffff811b749b>] vfs_read+0x9b/0x160
     [<ffffffff811b7f69>] SyS_read+0x49/0xb0
     [<ffffffff81a3a4b9>] ia32_do_call+0x13/0x13
     ---[ end trace 5bd9eb630614861e ]---
    Kernel panic - not syncing: Fatal exception
    
    When the first time find_next calls find_next_mod_format, it should
    iterate the trace_bprintk_fmt_list to find the first print format of
    the module. However in current code, start_index is smaller than *pos
    at first, and code will not iterate the list. Latter container_of will
    get the wrong address with former v, which will cause mod_fmt be a
    meaningless object and so is the returned mod_fmt->fmt.
    
    This patch will fix it by correcting the start_index. After fixed,
    when the first time calls find_next_mod_format, start_index will be
    equal to *pos, and code will iterate the trace_bprintk_fmt_list to
    get the right module printk format, so is the returned mod_fmt->fmt.
    
    Link: http://lkml.kernel.org/r/5684B900.9000309@intel.com
    
    Cc: stable@vger.kernel.org # 3.12+
    Fixes: 102c932 "tracing: Add __tracepoint_string() to export string pointers"
    Signed-off-by: Qiu Peiyang <peiyangx.qiu@intel.com>
    Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
  4. @ColinIanKing @rostedt

    ftrace/scripts: Fix incorrect use of sprintf in recordmcount

    ColinIanKing committed with rostedt
    Fix build warning:
    
    scripts/recordmcount.c:589:4: warning: format not a string
    literal and no format arguments [-Wformat-security]
        sprintf("%s: failed\n", file);
    
    Fixes: a50bd43 ("ftrace/scripts: Have recordmcount copy the object file")
    Link: http://lkml.kernel.org/r/1451516801-16951-1-git-send-email-colin.king@canonical.com
    
    Cc: Li Bin <huawei.libin@huawei.com>
    Cc: Russell King <rmk+kernel@arm.linux.org.uk>
    Cc: Will Deacon <will.deacon@arm.com>
    Cc: stable@vger.kernel.org # 2.6.37+
    Signed-off-by: Colin Ian King <colin.king@canonical.com>
    Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
Commits on Jan 3, 2016
  1. Linux 4.4-rc8

    committed
  2. Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upst…

    committed
    …ream-linus
    
    Pull MIPS build fix from Ralf Baechle:
     "Fix a makefile issue resulting in build breakage with older binutils.
    
      This has sat in -next for a few days, testers and buildbot are happy
      with it, too though if you are going for another -rc that'd certainly
      help ironing out a few more issues"
    
    * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus:
      MIPS: VDSO: Fix build error with binutils 2.24 and earlier
  3. Merge tag 'drm-intel-fixes-2016-01-02' of git://anongit.freedesktop.o…

    committed
    …rg/drm-intel
    
    Pull i915 drm fixes from Jani Nikula:
     "Two display fixes still for v4.4.
    
      The new year's resolution is to start using signed tags per Linus'
      request.  This one is still unsigned; I want to fix this up in our
      maintainer scripts instead of doing it one-off"
    
    * tag 'drm-intel-fixes-2016-01-02' of git://anongit.freedesktop.org/drm-intel:
      drm/i915: increase the tries for HDMI hotplug live status checking
      drm/i915: Unbreak check_digital_port_conflicts()
Commits on Dec 31, 2015
  1. Merge tag 'pci-v4.4-fixes-3' of git://git.kernel.org/pub/scm/linux/ke…

    committed
    …rnel/git/helgaas/pci
    
    Pull PCI bugfix from Bjorn Helgaas:
     "Here's another fix for v4.4.
    
      This fixes 32-bit config reads for the HiSilicon driver.  Obviously
      the driver is completely broken without this fix (apparently it
      actually was tested internally, but got broken somehow in the process
      of upstreaming it).
    
      Summary:
    
      HiSilicon host bridge driver
        Fix 32-bit config reads (Dongdong Liu)"
    
    * tag 'pci-v4.4-fixes-3' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci:
      PCI: hisi: Fix hisi_pcie_cfg_read() 32-bit reads
  2. Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc

    committed
    Pull sparc fixes from David Miller:
     "Just some missing syscall wire ups"
    
    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc:
      sparc: Wire up mlock2 system call.
      sparc: Add all necessary direct socket system calls.
  3. Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net

    committed
    Pull networking fixes from David Miller:
    
     1) Prevent XFRM per-cpu counter updates for one namespace from being
        applied to another namespace.  Fix from DanS treetman.
    
     2) Fix RCU de-reference in iwl_mvm_get_key_sta_id(), from Johannes
        Berg.
    
     3) Remove ethernet header assumption in nft_do_chain_netdev(), from
        Pablo Neira Ayuso.
    
     4) Fix cpsw PHY ident with multiple slaves and fixed-phy, from Pascal
        Speck.
    
     5) Fix use after free in sixpack_close and mkiss_close.
    
     6) Fix VXLAN fw assertion on bnx2x, from Yuval Mintz.
    
     7) natsemi doesn't check for DMA mapping errors, from Alexey
        Khoroshilov.
    
     8) Fix inverted test in ip6addrlbl_get(), from ANdrey Ryabinin.
    
     9) Missing initialization of needed_headroom in geneve tunnel driver,
        from Paolo Abeni.
    
    10) Fix conntrack template leak in openvswitch, from Joe Stringer.
    
    11) Mission initialization of wq->flags in sock_alloc_inode(), from
        Nicolai Stange.
    
    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (35 commits)
      sctp: sctp should release assoc when sctp_make_abort_user return NULL in sctp_close
      net, socket, socket_wq: fix missing initialization of flags
      drivers: net: cpsw: fix error return code
      openvswitch: Fix template leak in error cases.
      sctp: label accepted/peeled off sockets
      sctp: use GFP_USER for user-controlled kmalloc
      qlcnic: fix a loop exit condition better
      net: cdc_ncm: avoid changing RX/TX buffers on MTU changes
      geneve: initialize needed_headroom
      ipv6: honor ifindex in case we receive ll addresses in router advertisements
      addrconf: always initialize sysctl table data
      ipv6/addrlabel: fix ip6addrlbl_get()
      switchdev: bridge: Pass ageing time as clock_t instead of jiffies
      sh_eth: fix 16-bit descriptor field access endianness too
      veth: don’t modify ip_summed; doing so treats packets with bad checksums as good.
      net: usb: cdc_ncm: Adding Dell DW5813 LTE AT&T Mobile Broadband Card
      net: usb: cdc_ncm: Adding Dell DW5812 LTE Verizon Mobile Broadband Card
      natsemi: add checks for dma mapping errors
      rhashtable: Kill harmless RCU warning in rhashtable_walk_init
      openvswitch: correct encoding of set tunnel action attributes
      ...
  4. @davem330

    sparc: Wire up mlock2 system call.

    davem330 committed
    Signed-off-by: David S. Miller <davem@davemloft.net>
  5. @davem330

    sparc: Add all necessary direct socket system calls.

    davem330 committed
    The GLIBC folks would like to eliminate socketcall support
    eventually, and this makes sense regardless so wire them
    all up.
    
    Signed-off-by: David S. Miller <davem@davemloft.net>
Commits on Dec 30, 2015
  1. @lxin @davem330

    sctp: sctp should release assoc when sctp_make_abort_user return NULL…

    lxin committed with davem330
    … in sctp_close
    
    In sctp_close, sctp_make_abort_user may return NULL because of memory
    allocation failure. If this happens, it will bypass any state change
    and never free the assoc. The assoc has no chance to be freed and it
    will be kept in memory with the state it had even after the socket is
    closed by sctp_close().
    
    So if sctp_make_abort_user fails to allocate memory, we should abort
    the asoc via sctp_primitive_ABORT as well. Just like the annotation in
    sctp_sf_cookie_wait_prm_abort and sctp_sf_do_9_1_prm_abort said,
    "Even if we can't send the ABORT due to low memory delete the TCB.
    This is a departure from our typical NOMEM handling".
    
    But then the chunk is NULL (low memory) and the SCTP_CMD_REPLY cmd would
    dereference the chunk pointer, and system crash. So we should add
    SCTP_CMD_REPLY cmd only when the chunk is not NULL, just like other
    places where it adds SCTP_CMD_REPLY cmd.
    
    Signed-off-by: Xin Long <lucien.xin@gmail.com>
    Acked-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
  2. @davem330

    Merge tag 'wireless-drivers-for-davem-2015-12-28' of git://git.kernel…

    davem330 committed
    ….org/pub/scm/linux/kernel/git/kvalo/wireless-drivers
    
    Kalle Valo says:
    
    ====================
    iwlwifi
    
    * don't load firmware that won't exist for 7260
    * fix RCU splat
    ====================
    
    Signed-off-by: David S. Miller <davem@davemloft.net>
  3. @nicstange @davem330

    net, socket, socket_wq: fix missing initialization of flags

    nicstange committed with davem330
    Commit ceb5d58 ("net: fix sock_wake_async() rcu protection") from
    the current 4.4 release cycle introduced a new flags member in
    struct socket_wq and moved SOCKWQ_ASYNC_NOSPACE and SOCKWQ_ASYNC_WAITDATA
    from struct socket's flags member into that new place.
    
    Unfortunately, the new flags field is never initialized properly, at least
    not for the struct socket_wq instance created in sock_alloc_inode().
    
    One particular issue I encountered because of this is that my GNU Emacs
    failed to draw anything on my desktop -- i.e. what I got is a transparent
    window, including the title bar. Bisection lead to the commit mentioned
    above and further investigation by means of strace told me that Emacs
    is indeed speaking to my Xorg through an O_ASYNC AF_UNIX socket. This is
    reproducible 100% of times and the fact that properly initializing the
    struct socket_wq ->flags fixes the issue leads me to the conclusion that
    somehow SOCKWQ_ASYNC_WAITDATA got set in the uninitialized ->flags,
    preventing my Emacs from receiving any SIGIO's due to data becoming
    available and it got stuck.
    
    Make sock_alloc_inode() set the newly created struct socket_wq's ->flags
    member to zero.
    
    Fixes: ceb5d58 ("net: fix sock_wake_async() rcu protection")
    Signed-off-by: Nicolai Stange <nicstange@gmail.com>
    Acked-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
  4. Merge branch 'for-linus' of git://git.kernel.dk/linux-block

    committed
    Pull block fixes from Jens Axboe:
     "Make the block layer great again.
    
      Basically three amazing fixes in this pull request, split into 4
      patches.  Believe me, they should go into 4.4.  Two of them fix a
      regression, the third and last fixes an easy-to-trigger bug.
    
       - Fix a bad irq enable through null_blk, for queue_mode=1 and using
         timer completions.  Add a block helper to restart a queue
         asynchronously, and use that from null_blk.  From me.
    
       - Fix a performance issue in NVMe.  Some devices (Intel Pxxxx) expose
         a stripe boundary, and performance suffers if we cross it.  We took
         that into account for merging, but not for the newer splitting
         code.  Fix from Keith.
    
       - Fix a kernel oops in lightnvm with multiple channels.  From Matias"
    
    * 'for-linus' of git://git.kernel.dk/linux-block:
      lightnvm: wrong offset in bad blk lun calculation
      null_blk: use async queue restart helper
      block: add blk_start_queue_async()
      block: Split bios on chunk boundaries
  5. @jnikula

    drm/i915: increase the tries for HDMI hotplug live status checking

    Gary Wang committed with jnikula
    The total delay of HDMI hotplug detecting with 30ms is sometimes not
    enoughtfor HDMI live status up with specific HDMI monitors in BSW platform.
    
    After doing experiments for following monitors, it needs 80ms at least
    for those worst cases.
    
    Lenovo L246 1xwA (4 failed, necessary hot-plug delay: 58/40/60/40ms)
    Philips HH2AP (9 failed, necessary hot-plug delay: 80/50/50/60/46/40/58/58/39ms)
    BENQ ET-0035-N (6 failed, necessary hot-plug delay: 60/50/50/80/80/40ms)
    DELL U2713HM (2 failed, necessary hot-plug delay: 58/59ms)
    HP HP-LP2475w (5 failed, necessary hot-plug delay: 70/50/40/60/40ms)
    
    It looks like 70-80 ms is BSW platform needs in some bad cases of the
    monitors at this end (8 times delay at most). Keep less than 100ms for
    HDCP pulse HPD low (with at least 100ms) to respond a plug out.
    
    Reviewed-by: Cooper Chiou <cooper.chiou@intel.com>
    Tested-by: Gary Wang <gary.c.wang@intel.com>
    Cc: Gavin Hindman <gavin.hindman@intel.com>
    Cc: Sonika Jindal <sonika.jindal@intel.com>
    Cc: Shashank Sharma <shashank.sharma@intel.com>
    Cc: Shobhit Kumar <shobhit.kumar@intel.com>
    Signed-off-by: Gary Wang <gary.c.wang@intel.com>
    Link: http://patchwork.freedesktop.org/patch/msgid/1450858295-12804-1-git-send-email-gary.c.wang@intel.com
    Tested-by: Shobhit Kumar <shobhit.kumar@intel.com>
    Cc: drm-intel-fixes@lists.freedesktop.org
    Fixes: 237ed86 ("drm/i915: Check live status before reading edid")
    Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
    (cherry picked from commit f8d03ea0053b23de42c828d559016eabe0b91523)
    [Jani: undo the file mode change of the original commit]
    Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Something went wrong with that request. Please try again.