Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
authorDavid S. Miller <davem@davemloft.net>
Sun, 17 Dec 2017 03:11:55 +0000 (22:11 -0500)
committerDavid S. Miller <davem@davemloft.net>
Sun, 17 Dec 2017 03:11:55 +0000 (22:11 -0500)
Three sets of overlapping changes, two in the packet scheduler
and one in the meson-gxl PHY driver.

Signed-off-by: David S. Miller <davem@davemloft.net>
25 files changed:
1  2 
MAINTAINERS
arch/arm/boot/dts/imx53.dtsi
drivers/net/ethernet/mellanox/mlxsw/spectrum.c
drivers/net/phy/at803x.c
drivers/net/phy/marvell.c
drivers/net/phy/mdio_bus.c
drivers/net/phy/meson-gxl.c
drivers/net/phy/phy.c
drivers/net/phy/phy_device.c
drivers/net/usb/qmi_wwan.c
drivers/of/of_mdio.c
include/linux/pci.h
include/linux/spinlock.h
include/net/ip.h
include/net/sch_generic.h
net/dsa/slave.c
net/ipv4/ip_gre.c
net/ipv4/tcp_input.c
net/ipv4/tcp_timer.c
net/netlink/af_netlink.c
net/sched/cls_api.c
net/sched/sch_api.c
net/sctp/socket.c
net/tipc/socket.c
tools/testing/selftests/bpf/Makefile

diff --cc MAINTAINERS
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index 401e3234be58b4d68d2d950cb7a3768848356b39,842eb871a6e38df0c22cc43b7ee02f0f137f3a05..4ee630afe43ac04d11fa76a4ec3a2966942b6bab
@@@ -58,7 -130,9 +130,8 @@@ static struct phy_driver meson_gxl_phy[
                .features       = PHY_BASIC_FEATURES,
                .flags          = PHY_IS_INTERNAL,
                .config_init    = meson_gxl_config_init,
 -              .config_aneg    = genphy_config_aneg,
                .aneg_done      = genphy_aneg_done,
+               .read_status    = meson_gxl_read_status,
                .suspend        = genphy_suspend,
                .resume         = genphy_resume,
        },
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index fc9bf1b1fe2c25c4d2cdac99e8396abb90cdf4c9,af8addbaa3c188a896b74ff9646b6fdd692d1c8e..746abff9ce517ecbe1d580e5f53edfc93383da1a
  #include <net/snmp.h>
  #include <net/flow.h>
  #include <net/flow_dissector.h>
 +#include <net/netns/hash.h>
  
  #define IPV4_MAX_PMTU         65535U          /* RFC 2675, Section 5.1 */
+ #define IPV4_MIN_MTU          68                      /* RFC 791 */
  
  struct sock;
  
index 8f8c0afe529b8731df6428cac30d562e7bd6721f,83a3e47d5845b99fa61799a15b29e7247d478c72..bc6b25faba9963b17dbe3123b6eac8ddea4ca72f
@@@ -71,7 -71,7 +71,8 @@@ struct Qdisc 
                                      * qdisc_tree_decrease_qlen() should stop.
                                      */
  #define TCQ_F_INVISIBLE               0x80 /* invisible by default in dump */
 +#define TCQ_F_NOLOCK          0x100 /* qdisc does not require locking */
+ #define TCQ_F_OFFLOADED               0x200 /* qdisc is offloaded to HW */
        u32                     limit;
        const struct Qdisc_ops  *ops;
        struct qdisc_size_table __rcu *stab;
diff --cc net/dsa/slave.c
Simple merge
index 004800b923c64c8efd52351f987dc82fca21abb1,9c1735632c8c43cc0607d54403571362895d91e2..9a80d84fc182c289484fb011cb4cf6859a6a893f
@@@ -267,13 -265,11 +267,13 @@@ static int erspan_rcv(struct sk_buff *s
        itn = net_generic(net, erspan_net_id);
        len = gre_hdr_len + sizeof(*ershdr);
  
 +      /* Check based hdr len */
        if (unlikely(!pskb_may_pull(skb, len)))
-               return -ENOMEM;
+               return PACKET_REJECT;
  
        iph = ip_hdr(skb);
 -      ershdr = (struct erspanhdr *)(skb->data + gre_hdr_len);
 +      ershdr = (struct erspan_base_hdr *)(skb->data + gre_hdr_len);
 +      ver = (ntohs(ershdr->ver_vlan) & VER_MASK) >> VER_OFFSET;
  
        /* The original GRE header does not have key field,
         * Use ERSPAN 10-bit session ID as key.
Simple merge
Simple merge
Simple merge
index 5b9b8a61e8c41e93d46af6aacc77e6befa1a9de0,b91ea03e3afa717225c00a3d2a03e9d722229fbc..32b1ea7cf863444586bba3eafcafc9a06b5993f7
@@@ -340,13 -349,16 +339,15 @@@ EXPORT_SYMBOL(tcf_block_get)
  void tcf_block_put_ext(struct tcf_block *block, struct Qdisc *q,
                       struct tcf_block_ext_info *ei)
  {
 -      struct tcf_chain *chain;
 +      struct tcf_chain *chain, *tmp;
  
 -      if (!block)
 -              return;
 -      /* Hold a refcnt for all chains, except 0, so that they don't disappear
 +      /* Hold a refcnt for all chains, so that they don't disappear
         * while we are iterating.
         */
++      if (!block)
++              return;
        list_for_each_entry(chain, &block->chain_list, list)
 -              if (chain->index)
 -                      tcf_chain_hold(chain);
 +              tcf_chain_hold(chain);
  
        list_for_each_entry(chain, &block->chain_list, list)
                tcf_chain_flush(chain);
index a904276b657dc40f42c6a8f412e81aee5c07c1e5,0f1eab99ff4edb6e7e27f4b4b34552b5ee996cbf..74c22b4e365e4b6b267854632418ad98c266d4cb
@@@ -795,10 -795,11 +795,12 @@@ static int tc_fill_qdisc(struct sk_buf
        tcm->tcm_info = refcount_read(&q->refcnt);
        if (nla_put_string(skb, TCA_KIND, q->ops->id))
                goto nla_put_failure;
+       if (nla_put_u8(skb, TCA_HW_OFFLOAD, !!(q->flags & TCQ_F_OFFLOADED)))
+               goto nla_put_failure;
        if (q->ops->dump && q->ops->dump(q, skb) < 0)
                goto nla_put_failure;
 -      qlen = q->q.qlen;
 +
 +      qlen = qdisc_qlen_sum(q);
  
        stab = rtnl_dereference(q->stab);
        if (stab && qdisc_dump_stab(skb, stab) < 0)
Simple merge
Simple merge
Simple merge