Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
authorDavid S. Miller <davem@davemloft.net>
Tue, 22 Sep 2020 23:45:34 +0000 (16:45 -0700)
committerDavid S. Miller <davem@davemloft.net>
Tue, 22 Sep 2020 23:45:34 +0000 (16:45 -0700)
Two minor conflicts:

1) net/ipv4/route.c, adding a new local variable while
   moving another local variable and removing it's
   initial assignment.

2) drivers/net/dsa/microchip/ksz9477.c, overlapping changes.
   One pretty prints the port mode differently, whilst another
   changes the driver to try and obtain the port mode from
   the port node rather than the switch node.

Signed-off-by: David S. Miller <davem@davemloft.net>
72 files changed:
1  2 
Documentation/networking/ethtool-netlink.rst
MAINTAINERS
drivers/net/dsa/microchip/ksz9477.c
drivers/net/dsa/microchip/ksz_common.c
drivers/net/dsa/ocelot/felix.c
drivers/net/dsa/ocelot/felix_vsc9959.c
drivers/net/dsa/ocelot/seville_vsc9953.c
drivers/net/dsa/rtl8366.c
drivers/net/ethernet/broadcom/bnxt/bnxt.c
drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c
drivers/net/ethernet/cadence/macb_main.c
drivers/net/ethernet/chelsio/cxgb4/cxgb4_filter.c
drivers/net/ethernet/dec/tulip/de2104x.c
drivers/net/ethernet/huawei/hinic/hinic_main.c
drivers/net/ethernet/huawei/hinic/hinic_rx.c
drivers/net/ethernet/huawei/hinic/hinic_tx.c
drivers/net/ethernet/ibm/ibmvnic.c
drivers/net/ethernet/marvell/mvneta.c
drivers/net/ethernet/mellanox/mlx5/core/en.h
drivers/net/ethernet/mellanox/mlx5/core/en/xdp.c
drivers/net/ethernet/mellanox/mlx5/core/en/xsk/rx.c
drivers/net/ethernet/mellanox/mlx5/core/en/xsk/setup.c
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
drivers/net/ethernet/mellanox/mlx5/core/en_rep.c
drivers/net/ethernet/mellanox/mlx5/core/en_rx.c
drivers/net/ethernet/mellanox/mlx5/core/en_stats.c
drivers/net/ethernet/mellanox/mlx5/core/en_stats.h
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c
drivers/net/ethernet/qlogic/qed/qed_dev.c
drivers/net/ethernet/qlogic/qed/qed_main.c
drivers/net/ethernet/qlogic/qede/qede_main.c
drivers/net/ethernet/ti/cpsw_new.c
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
drivers/net/wireless/marvell/mwifiex/fw.h
drivers/net/wireless/mediatek/mt76/mt7615/mcu.c
drivers/s390/net/qeth_l2_main.c
drivers/s390/net/qeth_l3_main.c
fs/io_uring.c
include/linux/netdevice.h
include/linux/qed/qed_if.h
include/net/netlink.h
include/uapi/linux/ethtool_netlink.h
kernel/bpf/hashtab.c
kernel/bpf/inode.c
mm/filemap.c
net/batman-adv/bridge_loop_avoidance.c
net/batman-adv/multicast.c
net/batman-adv/soft-interface.c
net/bridge/br_vlan.c
net/core/dev.c
net/core/filter.c
net/dsa/slave.c
net/ipv4/inet_diag.c
net/ipv4/ip_output.c
net/ipv4/route.c
net/ipv6/ip6_fib.c
net/ipv6/route.c
net/mac80211/mlme.c
net/mac80211/rx.c
net/mac80211/vht.c
net/mptcp/pm_netlink.c
net/mptcp/subflow.c
net/netfilter/nf_conntrack_netlink.c
net/netfilter/nf_tables_api.c
net/tipc/link.c
net/tipc/msg.c
net/tipc/socket.c
net/wireless/util.c
net/xdp/xdp_umem.c
tools/lib/bpf/Makefile
tools/lib/bpf/libbpf.c

diff --cc MAINTAINERS
Simple merge
@@@ -1229,15 -1229,12 +1229,15 @@@ static void ksz9477_port_setup(struct k
                        ksz9477_set_gbit(dev, true, &data8);
                        data8 &= ~PORT_RGMII_ID_IG_ENABLE;
                        data8 &= ~PORT_RGMII_ID_EG_ENABLE;
-                       if (dev->interface == PHY_INTERFACE_MODE_RGMII_ID ||
-                           dev->interface == PHY_INTERFACE_MODE_RGMII_RXID)
+                       if (p->interface == PHY_INTERFACE_MODE_RGMII_ID ||
+                           p->interface == PHY_INTERFACE_MODE_RGMII_RXID)
                                data8 |= PORT_RGMII_ID_IG_ENABLE;
-                       if (dev->interface == PHY_INTERFACE_MODE_RGMII_ID ||
-                           dev->interface == PHY_INTERFACE_MODE_RGMII_TXID)
+                       if (p->interface == PHY_INTERFACE_MODE_RGMII_ID ||
+                           p->interface == PHY_INTERFACE_MODE_RGMII_TXID)
                                data8 |= PORT_RGMII_ID_EG_ENABLE;
 +                      /* On KSZ9893, disable RGMII in-band status support */
 +                      if (dev->features & IS_9893)
 +                              data8 &= ~PORT_MII_MAC_MODE;
                        p->phydev.speed = SPEED_1000;
                        break;
                }
@@@ -1280,21 -1276,22 +1281,30 @@@ static void ksz9477_config_cpu_port(str
                         * note the difference to help debugging.
                         */
                        interface = ksz9477_get_interface(dev, i);
-                       if (!dev->interface)
-                               dev->interface = interface;
-                       if (interface && interface != dev->interface) {
+                       if (!p->interface) {
+                               if (dev->compat_interface) {
+                                       dev_warn(dev->dev,
+                                                "Using legacy switch \"phy-mode\" property, because it is missing on port %d node. "
+                                                "Please update your device tree.\n",
+                                                i);
+                                       p->interface = dev->compat_interface;
+                               } else {
+                                       p->interface = interface;
+                               }
+                       }
 -                      if (interface && interface != p->interface)
 -                              dev_info(dev->dev,
 -                                       "use %s instead of %s\n",
 -                                        phy_modes(p->interface),
 -                                        phy_modes(interface));
++                      if (interface && interface != p->interface) {
 +                              prev_msg = " instead of ";
 +                              prev_mode = phy_modes(interface);
 +                      } else {
 +                              prev_msg = "";
 +                              prev_mode = "";
 +                      }
 +                      dev_info(dev->dev,
 +                               "Port%d: using phy mode %s%s%s\n",
 +                               i,
-                                phy_modes(dev->interface),
++                               phy_modes(p->interface),
 +                               prev_msg,
 +                               prev_mode);
  
                        /* enable cpu port */
                        ksz9477_port_setup(dev, i, true);
@@@ -554,9 -585,12 +554,12 @@@ static int felix_setup(struct dsa_switc
        if (err)
                return err;
  
-       ocelot_init(ocelot);
+       err = ocelot_init(ocelot);
+       if (err)
+               return err;
        if (ocelot->ptp) {
 -              err = ocelot_init_timestamp(ocelot, &ocelot_ptp_clock_info);
 +              err = ocelot_init_timestamp(ocelot, felix->info->ptp_caps);
                if (err) {
                        dev_err(ocelot->dev,
                                "Timestamp initialization failed\n");
Simple merge
Simple merge
@@@ -2375,10 -2381,14 +2375,14 @@@ static int mvneta_rx_swbm(struct napi_s
                        desc_status = rx_desc->status;
  
                        mvneta_swbm_rx_frame(pp, rx_desc, rxq, &xdp_buf,
 -                                           &size, page, &ps);
 +                                           &size, page);
                } else {
-                       if (unlikely(!xdp_buf.data_hard_start))
+                       if (unlikely(!xdp_buf.data_hard_start)) {
+                               rx_desc->buf_phys_addr = 0;
+                               page_pool_put_full_page(rxq->page_pool, page,
+                                                       true);
                                continue;
+                       }
  
                        mvneta_swbm_add_rx_fragment(pp, rx_desc, rxq, &xdp_buf,
                                                    &size, page);
@@@ -48,13 -47,9 +47,9 @@@ struct sk_buff *mlx5e_xsk_skb_from_cqe_
  
        xdp->data_end = xdp->data + cqe_bcnt32;
        xdp_set_data_meta_invalid(xdp);
 -      xsk_buff_dma_sync_for_cpu(xdp);
 -      prefetch(xdp->data);
 +      xsk_buff_dma_sync_for_cpu(xdp, rq->xsk_pool);
 +      net_prefetch(xdp->data);
  
-       rcu_read_lock();
-       consumed = mlx5e_xdp_handle(rq, NULL, &cqe_bcnt32, xdp);
-       rcu_read_unlock();
        /* Possible flows:
         * - XDP_REDIRECT to XSKMAP:
         *   The page is owned by the userspace from now.
@@@ -1149,14 -1144,11 +1152,11 @@@ mlx5e_skb_from_cqe_linear(struct mlx5e_
  
        dma_sync_single_range_for_cpu(rq->pdev, di->addr, wi->offset,
                                      frag_size, DMA_FROM_DEVICE);
 -      prefetchw(va); /* xdp_frame data area */
 -      prefetch(data);
 +      net_prefetchw(va); /* xdp_frame data area */
 +      net_prefetch(data);
  
-       rcu_read_lock();
        mlx5e_fill_xdp_buff(rq, va, rx_headroom, cqe_bcnt, &xdp);
-       consumed = mlx5e_xdp_handle(rq, di, &cqe_bcnt, &xdp);
-       rcu_read_unlock();
-       if (consumed)
+       if (mlx5e_xdp_handle(rq, di, &cqe_bcnt, &xdp))
                return NULL; /* page/packet was consumed by XDP */
  
        rx_headroom = xdp.data - xdp.data_hard_start;
@@@ -1460,14 -1451,11 +1459,11 @@@ mlx5e_skb_from_cqe_mpwrq_linear(struct 
  
        dma_sync_single_range_for_cpu(rq->pdev, di->addr, head_offset,
                                      frag_size, DMA_FROM_DEVICE);
 -      prefetchw(va); /* xdp_frame data area */
 -      prefetch(data);
 +      net_prefetchw(va); /* xdp_frame data area */
 +      net_prefetch(data);
  
-       rcu_read_lock();
        mlx5e_fill_xdp_buff(rq, va, rx_headroom, cqe_bcnt32, &xdp);
-       consumed = mlx5e_xdp_handle(rq, di, &cqe_bcnt32, &xdp);
-       rcu_read_unlock();
-       if (consumed) {
+       if (mlx5e_xdp_handle(rq, di, &cqe_bcnt32, &xdp)) {
                if (__test_and_clear_bit(MLX5E_RQ_FLAG_XDP_XMIT, rq->flags))
                        __set_bit(page_idx, wi->xdp_xmit_bitmap); /* non-atomic */
                return NULL; /* page/packet was consumed by XDP */
@@@ -103,10 -103,8 +103,11 @@@ unsigned int mlx5e_stats_total_num(stru
  void mlx5e_stats_update(struct mlx5e_priv *priv);
  void mlx5e_stats_fill(struct mlx5e_priv *priv, u64 *data, int idx);
  void mlx5e_stats_fill_strings(struct mlx5e_priv *priv, u8 *data);
+ void mlx5e_stats_update_ndo_stats(struct mlx5e_priv *priv);
  
 +void mlx5e_stats_pause_get(struct mlx5e_priv *priv,
 +                         struct ethtool_pause_stats *pause_stats);
 +
  /* Concrete NIC Stats */
  
  struct mlx5e_sw_stats {
Simple merge
@@@ -322,16 -288,11 +321,17 @@@ static void qeth_l2_stop_card(struct qe
        }
  
        qeth_qdio_clear_card(card, 0);
+       qeth_drain_output_queues(card);
        qeth_clear_working_pool_list(card);
 -      flush_workqueue(card->event_wq);
 +      qeth_l2_set_pnso_mode(card, QETH_PNSO_NONE);
        qeth_flush_local_addrs(card);
        card->info.promisc_mode = 0;
 +
 +      if (priv->brport_features & BR_LEARNING_SYNC) {
 +              rtnl_lock();
 +              qeth_l2_dev2br_fdb_flush(card);
 +              rtnl_unlock();
 +      }
  }
  
  static int qeth_l2_request_initial_mac(struct qeth_card *card)
Simple merge
diff --cc fs/io_uring.c
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc mm/filemap.c
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc net/core/dev.c
Simple merge
Simple merge
diff --cc net/dsa/slave.c
Simple merge
Simple merge
Simple merge
@@@ -1013,9 -1015,10 +1015,10 @@@ out:  kfree_skb(skb)
  static void __ip_rt_update_pmtu(struct rtable *rt, struct flowi4 *fl4, u32 mtu)
  {
        struct dst_entry *dst = &rt->dst;
 -      u32 old_mtu = ipv4_mtu(dst);
+       struct net *net = dev_net(dst->dev);
        struct fib_result res;
        bool lock = false;
 +      u32 old_mtu;
  
        if (ip_mtu_locked(dst))
                return;
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
@@@ -1088,12 -1108,13 +1089,13 @@@ int __mptcp_subflow_connect(struct soc
                goto failed;
  
        mptcp_crypto_key_sha(subflow->remote_key, &remote_token, NULL);
-       pr_debug("msk=%p remote_token=%u local_id=%d", msk, remote_token,
-                local_id);
+       pr_debug("msk=%p remote_token=%u local_id=%d remote_id=%d", msk,
+                remote_token, local_id, remote_id);
        subflow->remote_token = remote_token;
        subflow->local_id = local_id;
+       subflow->remote_id = remote_id;
        subflow->request_join = 1;
 -      subflow->request_bkup = 1;
 +      subflow->request_bkup = !!(loc->flags & MPTCP_PM_ADDR_FLAG_BACKUP);
        mptcp_info2sockaddr(remote, &addr);
  
        err = kernel_connect(sf, (struct sockaddr *)&addr, addrlen, O_NONBLOCK);
Simple merge
Simple merge
diff --cc net/tipc/link.c
Simple merge
diff --cc net/tipc/msg.c
Simple merge
Simple merge
Simple merge
Simple merge
@@@ -59,10 -56,10 +59,10 @@@ ifndef VERBOS
  endif
  
  FEATURE_USER = .libbpf
 -FEATURE_TESTS = libelf libelf-mmap zlib bpf reallocarray
 +FEATURE_TESTS = libelf zlib bpf
  FEATURE_DISPLAY = libelf zlib bpf
  
- INCLUDES = -I. -I$(srctree)/tools/include -I$(srctree)/tools/arch/$(ARCH)/include/uapi -I$(srctree)/tools/include/uapi
+ INCLUDES = -I. -I$(srctree)/tools/include -I$(srctree)/tools/include/uapi
  FEATURE_CHECK_CFLAGS-bpf = $(INCLUDES)
  
  check_feat := 1
Simple merge