30 Nov, 2016

9 commits

  • Add helper to deregister fixed-link PHYs registered using
    of_phy_register_fixed_link().

    Convert the two drivers that care to deregister their fixed-link PHYs to
    use the new helper, but note that most drivers currently fail to do so.

    Signed-off-by: Johan Hovold
    Signed-off-by: David S. Miller

    Johan Hovold
     
  • Make sure to drop the reference taken by of_parse_phandle() before
    returning from dsa_slave_phy_setup().

    Note that this also modifies the PHY priority so that any fixed-link
    node is only parsed when no phy-handle is given, which is in accordance
    with the common scheme for this.

    Fixes: 0d8bcdd383b8 ("net: dsa: allow for more complex PHY setups")
    Signed-off-by: Johan Hovold
    Signed-off-by: David S. Miller

    Johan Hovold
     
  • As it may get stale and lead to use after free.

    Acked-by: Eric Dumazet
    Cc: Alexander Duyck
    Cc: Andrey Konovalov
    Fixes: cbc53e08a793 ("GSO: Add GSO type for fixed IPv4 ID")
    Signed-off-by: Arnaldo Carvalho de Melo
    Acked-by: Alexander Duyck
    Signed-off-by: David S. Miller

    Arnaldo Carvalho de Melo
     
  • Be symmetric to hashtable insert and remove filter from hashtable only
    in case skip sw flag is not set.

    Fixes: e69985c67c33 ("net/sched: cls_flower: Introduce support in SKIP SW flag")
    Signed-off-by: Jiri Pirko
    Reviewed-by: Amir Vadai
    Signed-off-by: David S. Miller

    Jiri Pirko
     
  • pskb_may_pull() can reallocate skb->head, we need to reload dh pointer
    in dccp_invalid_packet() or risk use after free.

    Bug found by Andrey Konovalov using syzkaller.

    Signed-off-by: Eric Dumazet
    Reported-by: Andrey Konovalov
    Signed-off-by: David S. Miller

    Eric Dumazet
     
  • When a hardware issue happened as described by inline comments, the register
    write pattern looks like the following:

    + wmb();

    There might be a memory barrier between these two write operations, so add wmb
    to ensure an flip from 0 to 1 for NCR.

    Signed-off-by: Zumeng Chen
    Acked-by: Nicolas Ferre
    Signed-off-by: David S. Miller

    Zumeng Chen
     
  • On macb only (not gem), when a RX queue corruption was detected from
    macb_rx(), the RX queue was reset: during this process the RX ring
    buffer descriptor was initialized by macb_init_rx_ring() but we forgot
    to also set bp->rx_tail to 0.

    Indeed, when processing the received frames, bp->rx_tail provides the
    macb driver with the index in the RX ring buffer of the next buffer to
    process. So when the whole ring buffer is reset we must also reset
    bp->rx_tail so the driver is synchronized again with the hardware.

    Since macb_init_rx_ring() is called from many locations, currently from
    macb_rx() and macb_init_rings(), we'd rather add the "bp->rx_tail = 0;"
    line inside macb_init_rx_ring() than add the very same line after each
    call of this function.

    Without this fix, the rx queue is not reset properly to recover from
    queue corruption and connection drop may occur.

    Signed-off-by: Cyrille Pitchen
    Fixes: 9ba723b081a2 ("net: macb: remove BUG_ON() and reset the queue to handle RX errors")
    Acked-by: Nicolas Ferre
    Signed-off-by: David S. Miller

    Cyrille Pitchen
     
  • The cb->done interface expects to be called in process context.
    This was broken by the netlink RCU conversion. This patch fixes
    it by adding a worker struct to make the cb->done call where
    necessary.

    Fixes: 21e4902aea80 ("netlink: Lockless lookup with RCU grace...")
    Reported-by: Subash Abhinov Kasiviswanathan
    Signed-off-by: Herbert Xu
    Acked-by: Cong Wang
    Signed-off-by: David S. Miller

    Herbert Xu
     
  • Add a validation function to make sure offset is valid:
    1. Not below skb head (could happen when offset is negative).
    2. Validate both 'offset' and 'at'.

    Signed-off-by: Amir Vadai
    Signed-off-by: David S. Miller

    Amir Vadai
     

29 Nov, 2016

12 commits

  • The files "sampleip_kern.c" and "trace_event_kern.c" directly access
    "ctx->regs.ip" which is not available on s390x. Fix this and use the
    PT_REGS_IP() macro instead.

    Also fix the macro for s390x and use "psw.addr" from "pt_regs".

    Reported-by: Zvonko Kosic
    Signed-off-by: Michael Holzheu
    Acked-by: Alexei Starovoitov
    Signed-off-by: David S. Miller

    Michael Holzheu
     
  • _dsa_register_switch() gets a dsa_switch_tree object either via
    dsa_get_dst() or via dsa_add_dst(). Former path does not increase kref
    in returned object (resulting into caller not owning a reference),
    while later path does create a new object (resulting into caller owning
    a reference).

    The rest of _dsa_register_switch() assumes that it owns a reference, and
    calls dsa_put_dst().

    This causes a memory breakage if first switch in the tree initialized
    successfully, but second failed to initialize. In particular, freed
    dsa_swith_tree object is left referenced by switch that was initialized,
    and later access to sysfs attributes of that switch cause OOPS.

    To fix, need to add kref_get() call to dsa_get_dst().

    Fixes: 83c0afaec7b7 ("net: dsa: Add new binding implementation")
    Signed-off-by: Nikita Yushchenko
    Reviewed-by: Andrew Lunn
    Signed-off-by: David S. Miller

    Nikita Yushchenko
     
  • Andrey reported the following while fuzzing the kernel with syzkaller:

    kasan: CONFIG_KASAN_INLINE enabled
    kasan: GPF could be caused by NULL-ptr deref or user memory access
    general protection fault: 0000 [#1] SMP KASAN
    Modules linked in:
    CPU: 0 PID: 3859 Comm: a.out Not tainted 4.9.0-rc6+ #429
    Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Bochs 01/01/2011
    task: ffff8800666d4200 task.stack: ffff880067348000
    RIP: 0010:[] []
    icmp6_send+0x5fc/0x1e30 net/ipv6/icmp.c:451
    RSP: 0018:ffff88006734f2c0 EFLAGS: 00010206
    RAX: ffff8800666d4200 RBX: 0000000000000000 RCX: 0000000000000000
    RDX: 0000000000000000 RSI: dffffc0000000000 RDI: 0000000000000018
    RBP: ffff88006734f630 R08: ffff880064138418 R09: 0000000000000003
    R10: dffffc0000000000 R11: 0000000000000005 R12: 0000000000000000
    R13: ffffffff84e7e200 R14: ffff880064138484 R15: ffff8800641383c0
    FS: 00007fb3887a07c0(0000) GS:ffff88006cc00000(0000) knlGS:0000000000000000
    CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: 0000000020000000 CR3: 000000006b040000 CR4: 00000000000006f0
    Stack:
    ffff8800666d4200 ffff8800666d49f8 ffff8800666d4200 ffffffff84c02460
    ffff8800666d4a1a 1ffff1000ccdaa2f ffff88006734f498 0000000000000046
    ffff88006734f440 ffffffff832f4269 ffff880064ba7456 0000000000000000
    Call Trace:
    [] icmpv6_param_prob+0x2c/0x40 net/ipv6/icmp.c:557
    [< inline >] ip6_tlvopt_unknown net/ipv6/exthdrs.c:88
    [] ip6_parse_tlv+0x555/0x670 net/ipv6/exthdrs.c:157
    [] ipv6_parse_hopopts+0x199/0x460 net/ipv6/exthdrs.c:663
    [] ipv6_rcv+0xfa3/0x1dc0 net/ipv6/ip6_input.c:191
    ...

    icmp6_send / icmpv6_send is invoked for both rx and tx paths. In both
    cases the dst->dev should be preferred for determining the L3 domain
    if the dst has been set on the skb. Fallback to the skb->dev if it has
    not. This covers the case reported here where icmp6_send is invoked on
    Rx before the route lookup.

    Fixes: 5d41ce29e ("net: icmp6_send should use dst dev to determine L3 domain")
    Reported-by: Andrey Konovalov
    Signed-off-by: David Ahern
    Signed-off-by: David S. Miller

    David Ahern
     
  • Tariq Toukan says:

    ====================
    mlx4 bug fixes for 4.9

    This patchset includes 2 bug fixes:
    * In patch 1 we revert the commit that avoids invoking unregister_netdev
    in shutdown flow, as it introduces netdev presence issues where
    it can be accessed unsafely by ndo operations during the flow.
    * Patch 2 is a simple fix for a variable uninitialization issue.

    Series generated against net commit:
    6998cc6ec237 tipc: resolve connection flow control compatibility problem
    ====================

    Signed-off-by: David S. Miller

    David S. Miller
     
  • …e managed flow steering

    In procedure mlx4_flow_steer_promisc_add(), several fields
    were left uninitialized in the rule structure.
    Correctly initialize these fields.

    Fixes: 592e49dda812 ("net/mlx4: Implement promiscuous mode with device managed flow-steering")
    Signed-off-by: Jack Morgenstein <jackm@dev.mellanox.co.il>
    Signed-off-by: Tariq Toukan <tariqt@mellanox.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

    Jack Morgenstein
     
  • This reverts commit 9d76931180557270796f9631e2c79b9c7bb3c9fb.

    Using unregister_netdev at shutdown flow prevents calling
    the netdev's ndos or trying to access its freed resources.

    This fixes crashes like the following:
    Call Trace:
    [] dev_get_phys_port_id+0x1e/0x30
    [] rtnl_fill_ifinfo+0x4be/0xff0
    [] rtmsg_ifinfo_build_skb+0x73/0xe0
    [] rtmsg_ifinfo.part.27+0x16/0x50
    [] rtmsg_ifinfo+0x18/0x20
    [] netdev_state_change+0x46/0x50
    [] linkwatch_do_dev+0x38/0x50
    [] __linkwatch_run_queue+0xf5/0x170
    [] linkwatch_event+0x25/0x30
    [] process_one_work+0x152/0x400
    [] worker_thread+0x125/0x4b0
    [] ? rescuer_thread+0x350/0x350
    [] kthread+0xca/0xe0
    [] ? kthread_park+0x60/0x60
    [] ret_from_fork+0x25/0x30

    Fixes: 9d7693118055 ("net/mlx4_en: Avoid unregister_netdev at shutdown flow")
    Signed-off-by: Tariq Toukan
    Reported-by: Sebastian Ott
    Reported-by: Steve Wise
    Cc: Jiri Pirko
    Signed-off-by: David S. Miller

    Tariq Toukan
     
  • Export tc_tunnel_key so it can be used from user space.

    Signed-off-by: Roi Dayan
    Reviewed-by: Amir Vadai
    Signed-off-by: David S. Miller

    Roi Dayan
     
  • Fix:

    drivers/net/ethernet/amd/xgbe/xgbe-main.c:835:12: warning: ‘xgbe_suspend’ defined
    but not used [-Wunused-function]
    drivers/net/ethernet/amd/xgbe/xgbe-main.c:855:12: warning: ‘xgbe_resume’ defined
    but not used [-Wunused-function]

    I see it during randconfig builds here.

    Signed-off-by: Borislav Petkov
    Cc: Tom Lendacky
    Cc: netdev@vger.kernel.org
    Signed-off-by: David S. Miller

    Borislav Petkov
     
  • Signed-off-by: Julian Wollrath
    Signed-off-by: David S. Miller

    Julian Wollrath
     
  • Martin Blumenstingl says:

    ====================
    net: phy: realtek: fix RTL8211F TX-delay handling

    The RTL8211F PHY driver currently enables the TX-delay only when the
    phy-mode is PHY_INTERFACE_MODE_RGMII. This is incorrect, because there
    are three RGMII variations of the phy-mode which explicitly request the
    PHY to enable the RX and/or TX delay, while PHY_INTERFACE_MODE_RGMII
    specifies that the PHY should disable the RX and/or TX delays.

    Additionally to the RTL8211F PHY driver change this contains a small
    update to the phy-mode documentation to clarify the purpose of the
    RGMII phy-modes.
    While this may not be perfect yet it's at least a start. Please feel
    free to drop this patch from this series and send an improved version
    yourself.

    These patches are the results of recent discussions, see [0]

    [0] http://lists.infradead.org/pipermail/linux-amlogic/2016-November/001688.html
    ====================

    Signed-off-by: David S. Miller

    David S. Miller
     
  • The old logic always enabled the TX-delay when the phy-mode was set to
    PHY_INTERFACE_MODE_RGMII. There are dedicated phy-modes which tell the
    PHY driver to enable the RX and/or TX delays:
    - PHY_INTERFACE_MODE_RGMII should disable the RX and TX delay in the
    PHY (if required, the MAC should add the delays in this case)
    - PHY_INTERFACE_MODE_RGMII_ID should enable RX and TX delay in the PHY
    - PHY_INTERFACE_MODE_RGMII_TXID should enable the TX delay in the PHY
    - PHY_INTERFACE_MODE_RGMII_RXID should enable the RX delay in the PHY
    (currently not supported by RTL8211F)

    With this patch we enable the TX delay for PHY_INTERFACE_MODE_RGMII_ID
    and PHY_INTERFACE_MODE_RGMII_TXID.
    Additionally we now explicity disable the TX-delay, which seems to be
    enabled automatically after a hard-reset of the PHY (by triggering it's
    reset pin) to get a consistent state (as defined by the phy-mode).

    This fixes a compatibility problem with some SoCs where the TX-delay was
    also added by the MAC. With the TX-delay being applied twice the TX
    clock was off and TX traffic was broken or very slow (
    Reviewed-by: Florian Fainelli
    Signed-off-by: David S. Miller

    Martin Blumenstingl
     
  • RGMII requires special RX and/or TX delays depending on the actual
    hardware circuit/wiring. These delays can be added by the MAC, the PHY
    or the designer of the circuit (the latter means that no delay has to
    be added by PHY or MAC).
    There are 4 RGMII phy-modes used describe where a delay should be
    applied:
    - rgmii: the RX and TX delays are either added by the MAC (where the
    exact delay is typically configurable, and can be turned off when no
    extra delay is needed) or not needed at all (because the hardware
    wiring adds the delay already). The PHY should neither add the RX nor
    TX delay in this case.
    - rgmii-rxid: configures the PHY to enable the RX delay. The MAC should
    not add the RX delay in this case.
    - rgmii-txid: configures the PHY to enable the TX delay. The MAC should
    not add the TX delay in this case.
    - rgmii-id: combines rgmii-rxid and rgmii-txid and thus configures the
    PHY to enable the RX and TX delays. The MAC should neither add the RX
    nor TX delay in this case.

    Document these cases in the ethernet.txt documentation to make it clear
    when to use each mode.
    If applied incorrectly one might end up with MAC and PHY both enabling
    for example the TX delay, which breaks ethernet TX traffic on 1000Mbit/s
    links.

    Signed-off-by: Martin Blumenstingl
    Reviewed-by: Florian Fainelli
    Signed-off-by: David S. Miller

    Martin Blumenstingl
     

28 Nov, 2016

12 commits

  • Roi reported a crash in flower where tp->root was NULL in ->classify()
    callbacks. Reason is that in ->destroy() tp->root is set to NULL via
    RCU_INIT_POINTER(). It's problematic for some of the classifiers, because
    this doesn't respect RCU grace period for them, and as a result, still
    outstanding readers from tc_classify() will try to blindly dereference
    a NULL tp->root.

    The tp->root object is strictly private to the classifier implementation
    and holds internal data the core such as tc_ctl_tfilter() doesn't know
    about. Within some classifiers, such as cls_bpf, cls_basic, etc, tp->root
    is only checked for NULL in ->get() callback, but nowhere else. This is
    misleading and seemed to be copied from old classifier code that was not
    cleaned up properly. For example, d3fa76ee6b4a ("[NET_SCHED]: cls_basic:
    fix NULL pointer dereference") moved tp->root initialization into ->init()
    routine, where before it was part of ->change(), so ->get() had to deal
    with tp->root being NULL back then, so that was indeed a valid case, after
    d3fa76ee6b4a, not really anymore. We used to set tp->root to NULL long
    ago in ->destroy(), see 47a1a1d4be29 ("pkt_sched: remove unnecessary xchg()
    in packet classifiers"); but the NULLifying was reintroduced with the
    RCUification, but it's not correct for every classifier implementation.

    In the cases that are fixed here with one exception of cls_cgroup, tp->root
    object is allocated and initialized inside ->init() callback, which is always
    performed at a point in time after we allocate a new tp, which means tp and
    thus tp->root was not globally visible in the tp chain yet (see tc_ctl_tfilter()).
    Also, on destruction tp->root is strictly kfree_rcu()'ed in ->destroy()
    handler, same for the tp which is kfree_rcu()'ed right when we return
    from ->destroy() in tcf_destroy(). This means, the head object's lifetime
    for such classifiers is always tied to the tp lifetime. The RCU callback
    invocation for the two kfree_rcu() could be out of order, but that's fine
    since both are independent.

    Dropping the RCU_INIT_POINTER(tp->root, NULL) for these classifiers here
    means that 1) we don't need a useless NULL check in fast-path and, 2) that
    outstanding readers of that tp in tc_classify() can still execute under
    respect with RCU grace period as it is actually expected.

    Things that haven't been touched here: cls_fw and cls_route. They each
    handle tp->root being NULL in ->classify() path for historic reasons, so
    their ->destroy() implementation can stay as is. If someone actually
    cares, they could get cleaned up at some point to avoid the test in fast
    path. cls_u32 doesn't set tp->root to NULL. For cls_rsvp, I just added a
    !head should anyone actually be using/testing it, so it at least aligns with
    cls_fw and cls_route. For cls_flower we additionally need to defer rhashtable
    destruction (to a sleepable context) after RCU grace period as concurrent
    readers might still access it. (Note that in this case we need to hold module
    reference to keep work callback address intact, since we only wait on module
    unload for all call_rcu()s to finish.)

    This fixes one race to bring RCU grace period guarantees back. Next step
    as worked on by Cong however is to fix 1e052be69d04 ("net_sched: destroy
    proto tp when all filters are gone") to get the order of unlinking the tp
    in tc_ctl_tfilter() for the RTM_DELTFILTER case right by moving
    RCU_INIT_POINTER() before tcf_destroy() and let the notification for
    removal be done through the prior ->delete() callback. Both are independant
    issues. Once we have that right, we can then clean tp->root up for a number
    of classifiers by not making them RCU pointers, which requires a new callback
    (->uninit) that is triggered from tp's RCU callback, where we just kfree()
    tp->root from there.

    Fixes: 1f947bf151e9 ("net: sched: rcu'ify cls_bpf")
    Fixes: 9888faefe132 ("net: sched: cls_basic use RCU")
    Fixes: 70da9f0bf999 ("net: sched: cls_flow use RCU")
    Fixes: 77b9900ef53a ("tc: introduce Flower classifier")
    Fixes: bf3994d2ed31 ("net/sched: introduce Match-all classifier")
    Fixes: 952313bd6258 ("net: sched: cls_cgroup use RCU")
    Reported-by: Roi Dayan
    Signed-off-by: Daniel Borkmann
    Cc: Cong Wang
    Cc: John Fastabend
    Cc: Roi Dayan
    Cc: Jiri Pirko
    Acked-by: John Fastabend
    Acked-by: Cong Wang
    Signed-off-by: David S. Miller

    Daniel Borkmann
     
  • In commit e4bf4f76962b ("tipc: simplify packet sequence number
    handling") we changed the internal representation of the packet
    sequence number counters from u32 to u16, reflecting what is really
    sent over the wire.

    Since then some link statistics counters have been displaying incorrect
    values, partially because the counters meant to be used as sequence
    number snapshots are now used as direct counters, stored as u32, and
    partially because some counter updates are just missing in the code.

    In this commit we correct this in two ways. First, we base the
    displayed packet sent/received values on direct counters instead
    of as previously a calculated difference between current sequence
    number and a snapshot. Second, we add the missing updates of the
    counters.

    This change is compatible with the current netlink API, and requires
    no changes to the user space tools.

    Signed-off-by: Jon Maloy
    Signed-off-by: David S. Miller

    Jon Paul Maloy
     
  • Steffen Klassert says:

    ====================
    pull request (net): ipsec 2016-11-25

    1) Fix a refcount leak in vti6.
    From Nicolas Dichtel.

    2) Fix a wrong if statement in xfrm_sk_policy_lookup.
    From Florian Westphal.

    3) The flowcache watermarks are per cpu. Take this into
    account when comparing to the threshold where we
    refusing new allocations. From Miroslav Urbanek.

    Please pull or let me know if there are problems.
    ====================

    Signed-off-by: David S. Miller

    David S. Miller
     
  • The macvtap_newlink registers the netdev rx_handler firstly, but it
    does not unregister the handler if macvlan_common_newlink failed.

    Signed-off-by: Gao Feng
    Acked-by: Jason Wang
    Signed-off-by: David S. Miller

    Gao Feng
     
  • Johan Hovold says:

    ====================
    net: fix phydev reference leaks

    This series fixes a number of phydev reference leaks (and one of_node
    leak) due to failure to put the reference taken by of_phy_find_device().

    Note that I did not try to fix drivers/net/phy/xilinx_gmii2rgmii.c which
    still leaks a reference.

    Against net but should apply just as fine to net-next.

    v2:
    - use put_device() instead of phy_dev_free() to put the references
    taken in net/dsa (patch 1/4).
    - add four new patches fixing similar leaks
    ====================

    Signed-off-by: David S. Miller

    David S. Miller
     
  • Make sure to drop the reference taken by of_phy_find_device() during
    probe on probe errors and on driver unbind.

    Also drop the of_node reference taken by of_parse_phandle() in the same
    path.

    Fixes: b9b17debc69d ("net: emac: emac gigabit ethernet controller driver")
    Signed-off-by: Johan Hovold
    Signed-off-by: David S. Miller

    Johan Hovold
     
  • Make sure to drop the reference taken by of_phy_find_device() when
    looking up a fixed-link phydev during probe.

    Fixes: 57ba4c9b56d8 ("fsl/fman: Add FMan MAC support")
    Signed-off-by: Johan Hovold
    Signed-off-by: David S. Miller

    Johan Hovold
     
  • Make sure to drop the reference taken by of_phy_find_device() during
    initialisation when later freeing the struct fman_mac.

    Fixes: 57ba4c9b56d8 ("fsl/fman: Add FMan MAC support")
    Signed-off-by: Johan Hovold
    Signed-off-by: David S. Miller

    Johan Hovold
     
  • Make sure to drop the reference taken by of_phy_find_device() when
    initialising MOCA PHYs.

    Fixes: 6ac9de5f6563 ("net: bcmgenet: Register link_update callback for
    all MoCA PHYs")
    Signed-off-by: Johan Hovold
    Signed-off-by: David S. Miller

    Johan Hovold
     
  • Make sure to drop the reference taken by of_phy_find_device() when
    registering and deregistering the fixed-link PHY-device.

    Fixes: 39b0c705195e ("net: dsa: Allow configuration of CPU & DSA port
    speeds/duplex")
    Signed-off-by: Johan Hovold
    Signed-off-by: David S. Miller

    Johan Hovold
     
  • irda_get_mtt() returns a hardcoded '10000' in some cases,
    and with gcc-7, we get a build error because this triggers a
    compile-time check in udelay():

    drivers/net/irda/w83977af_ir.o: In function `w83977af_hard_xmit':
    w83977af_ir.c:(.text.w83977af_hard_xmit+0x14c): undefined reference to `__bad_udelay'

    Older compilers did not run into this because they either did not
    completely inline the irda_get_mtt() or did not consider the
    10000 value a constant expression.

    The code has been wrong since the start of git history.

    Signed-off-by: Arnd Bergmann
    Signed-off-by: David S. Miller

    Arnd Bergmann
     
  • When ipvlan_link_new fails and creates one ipvlan port, it does not
    destroy the ipvlan port created. It causes mem leak and the physical
    device contains invalid ipvlan data.

    Signed-off-by: Gao Feng
    Signed-off-by: David S. Miller

    Gao Feng
     

27 Nov, 2016

7 commits

  • Pull vfs splice fix from Al Viro.

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
    fix default_file_splice_read()

    Linus Torvalds
     
  • Botched calculation of number of pages. As the result,
    we were dropping pieces when doing splice to pipe from
    e.g. 9p.

    Reported-by: Alexei Starovoitov
    Tested-by: Alexei Starovoitov
    Signed-off-by: Al Viro

    Al Viro
     
  • Pull i2c fixes from Wolfram Sang:
    "Here is a revert and two bugfixes for the I2C designware driver.

    Please note that we are still hunting down a regression for the
    i2c-octeon driver. While there is a fix pending, we have unclear
    feedback from the testers currently. An rc8 would be quite helpful
    for this case"

    * 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux:
    Revert "i2c: designware: do not disable adapter after transfer"
    i2c: designware: fix rx fifo depth tracking
    i2c: designware: report short transfers

    Linus Torvalds
     
  • Pull ARM fix from Russell King:
    "This resolves the ksyms issues by reverting the commit which
    introduced the breakage"

    There was what I consider to be a better fix, but it's late in the rc
    game, so I'll take the revert.

    * 'fixes' of git://git.armlinux.org.uk/~rmk/linux-arm:
    Revert "arm: move exports to definitions"

    Linus Torvalds
     
  • Pull networking fixes from David Miller:

    1) Fix leak in fsl/fman driver, from Dan Carpenter.

    2) Call flow dissector initcall earlier than any networking driver can
    register and start to use it, from Eric Dumazet.

    3) Some dup header fixes from Geliang Tang.

    4) TIPC link monitoring compat fix from Jon Paul Maloy.

    5) Link changes require EEE re-negotiation in bcm_sf2 driver, from
    Florian Fainelli.

    6) Fix bogus handle ID passed into tfilter_notify_chain(), from Roman
    Mashak.

    7) Fix dump size calculation in rtnl_calcit(), from Zhang Shengju.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (26 commits)
    tipc: resolve connection flow control compatibility problem
    mvpp2: use correct size for memset
    net/mlx5: drop duplicate header delay.h
    net: ieee802154: drop duplicate header delay.h
    ibmvnic: drop duplicate header seq_file.h
    fsl/fman: fix a leak in tgec_free()
    net: ethtool: don't require CAP_NET_ADMIN for ETHTOOL_GLINKSETTINGS
    tipc: improve sanity check for received domain records
    tipc: fix compatibility bug in link monitoring
    net: ethernet: mvneta: Remove IFF_UNICAST_FLT which is not implemented
    dwc_eth_qos: drop duplicate headers
    net sched filters: fix filter handle ID in tfilter_notify_chain()
    net: dsa: bcm_sf2: Ensure we re-negotiate EEE during after link change
    bnxt: do not busy-poll when link is down
    udplite: call proper backlog handlers
    ipv6: bump genid when the IFA_F_TENTATIVE flag is clear
    net/mlx4_en: Free netdev resources under state lock
    net: revert "net: l2tp: Treat NET_XMIT_CN as success in l2tp_eth_dev_xmit"
    rtnetlink: fix the wrong minimal dump size getting from rtnl_calcit()
    bnxt_en: Fix a VXLAN vs GENEVE issue
    ...

    Linus Torvalds
     
  • Pull libnvdimm fixes from Dan Williams:

    - Fix a crash that occurs at driver initialization if the memory region
    is already busy (request_mem_region() fails).

    - Fix a vma validation check that mistakenly allows a private device-
    dax mapping to be established. Device-dax explicitly forbids private
    mappings so it can guarantee a given fault granularity and backing
    memory type.

    Both of these fixes have soaked in -next and are tagged for -stable.

    * 'libnvdimm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm:
    device-dax: fail all private mapping attempts
    device-dax: check devm_nsio_enable() return value

    Linus Torvalds
     
  • Pull KVM fixes from Radim Krčmář:
    "Four fixes for bugs found by syzkaller on x86, all for stable"

    * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
    KVM: x86: check for pic and ioapic presence before use
    KVM: x86: fix out-of-bounds accesses of rtc_eoi map
    KVM: x86: drop error recovery in em_jmp_far and em_ret_far
    KVM: x86: fix out-of-bounds access in lapic

    Linus Torvalds