Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
authorLinus Torvalds <torvalds@linux-foundation.org>
Mon, 11 Jun 2018 02:25:23 +0000 (19:25 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Mon, 11 Jun 2018 02:25:23 +0000 (19:25 -0700)
Pull networking fixes from David Miller:

 1) Fix several bpfilter/UMH bugs, in particular make the UMH build not
    depend upon X86 specific Kconfig symbols. From Alexei Starovoitov.

 2) Fix handling of modified context pointer in bpf verifier, from
    Daniel Borkmann.

 3) Kill regression in ifdown/ifup sequences for hv_netvsc driver, from
    Dexuan Cui.

 4) When the bonding primary member name changes, we have to re-evaluate
    the bond->force_primary setting, from Xiangning Yu.

 5) Eliminate possible padding beyone end of SKB in cdc_ncm driver, from
    Bjørn Mork.

 6) RX queue length reported for UDP sockets in procfs and socket diag
    are inaccurate, from Paolo Abeni.

 7) Fix br_fdb_find_port() locking, from Petr Machata.

 8) Limit sk_rcvlowat values properly in TCP, from Soheil Hassas
    Yeganeh.

* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (23 commits)
  tcp: limit sk_rcvlowat by the maximum receive buffer
  net: phy: dp83822: use BMCR_ANENABLE instead of BMSR_ANEGCAPABLE for DP83620
  socket: close race condition between sock_close() and sockfs_setattr()
  net: bridge: Fix locking in br_fdb_find_port()
  udp: fix rx queue len reported by diag and proc interface
  cdc_ncm: avoid padding beyond end of skb
  net/sched: act_simple: fix parsing of TCA_DEF_DATA
  net: fddi: fix a possible null-ptr-deref
  net: aquantia: fix unsigned numvecs comparison with less than zero
  net: stmmac: fix build failure due to missing COMMON_CLK dependency
  bpfilter: fix race in pipe access
  bpf, xdp: fix crash in xdp_umem_unaccount_pages
  xsk: Fix umem fill/completion queue mmap on 32-bit
  tools/bpf: fix selftest get_cgroup_id_user
  bpfilter: fix OUTPUT_FORMAT
  umh: fix race condition
  net: mscc: ocelot: Fix uninitialized error in ocelot_netdevice_event()
  bonding: re-evaluate force_primary when the primary slave name changes
  ip_tunnel: Fix name string concatenate in __ip_tunnel_create()
  hv_netvsc: Fix a network regression after ifdown/ifup
  ...

1  2 
drivers/net/hyperv/netvsc_drv.c

index 1e9bde68698d6b661ad4443c63db4f49d4ac7e82,8eec156418ea98d2df822f222e8728db2b98da91..7b18a8c267c2b88d2c5e84bfa87da9691883c154
@@@ -35,6 -35,7 +35,6 @@@
  #include <linux/slab.h>
  #include <linux/rtnetlink.h>
  #include <linux/netpoll.h>
 -#include <linux/reciprocal_div.h>
  
  #include <net/arp.h>
  #include <net/route.h>
@@@ -58,6 -59,7 +58,6 @@@ static unsigned int ring_size __ro_afte
  module_param(ring_size, uint, 0444);
  MODULE_PARM_DESC(ring_size, "Ring buffer size (# of pages)");
  unsigned int netvsc_ring_bytes __ro_after_init;
 -struct reciprocal_value netvsc_ring_reciprocal __ro_after_init;
  
  static const u32 default_msg = NETIF_MSG_DRV | NETIF_MSG_PROBE |
                                NETIF_MSG_LINK | NETIF_MSG_IFUP |
@@@ -125,8 -127,10 +125,10 @@@ static int netvsc_open(struct net_devic
        }
  
        rdev = nvdev->extension;
-       if (!rdev->link_state)
+       if (!rdev->link_state) {
                netif_carrier_on(net);
+               netif_tx_wake_all_queues(net);
+       }
  
        if (vf_netdev) {
                /* Setting synthetic device up transparently sets
@@@ -2128,6 -2132,7 +2130,6 @@@ static int __init netvsc_drv_init(void
                        ring_size);
        }
        netvsc_ring_bytes = ring_size * PAGE_SIZE;
 -      netvsc_ring_reciprocal = reciprocal_value(netvsc_ring_bytes);
  
        ret = vmbus_driver_register(&netvsc_drv);
        if (ret)