]> git.proxmox.com Git - mirror_ubuntu-kernels.git/commitdiff
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
index b62dd64470a846338055915ab3cff51a7d935617,2f5506ac7d19179245d75862f0249ff936ffd503..153664bf0e20569eed5152aaae2f0fe8e9cc17c3
@@@ -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);
index f9a7034be0c75be3093f6de982957c9d0a09753d,01427cd084481d80c03c40a952bb86ffff5a8131..5f395d4119ac783da641b2c194587b16f0175680
@@@ -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
index e5ddefe5cade03fa64cb3249cd8e49ef7f7b1a2f,c4345e3d616f78589c2b5f59acb0eddb64a177c4..14df3aec285dc92187c3100e03df68f8da795f86
@@@ -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);
index bb6669d2a916bd3e89db4bba689d75523ad93fa2,40db27bf790bb287aa5a9f63a3e83ee91266a18a..8e7b877d8a12ffa3b66e9fab893f3b3cb8d9bf0f
@@@ -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.
index c9c82b14060a02a2ef60e400b29bd18512380c8f,64c8ac5eabf6a81325fdabd1daee031e8b74987e..310533fc9950404dfb175b32e6625ca8da272e70
@@@ -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 */
index 9d9ee269a041bc63a59b2b4701dfb29d21acb0d9,562263d62141339972ce7dfeb76afa0153142751..771f30cb070026dd517efbd9e0b7d14d812f52db
@@@ -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
index 54e02518ce08faef35db60601d29219b28ab156a,6384f7adba6600b8d6b756f3b5487102676d78e5..e12ac32b8b47b7110e1bcb1dacda770f2e677dcb
@@@ -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
index 2c05b863ae434fbe3fcb4b87348a467b0d63b76f,58642b29a499d7a7f4679ffc1d8718974279a535..d15a78b26dfa85a80fe3243ef251d6c136efb2cd
@@@ -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
index 34d6230df017fecd1f5c23a5c50d13b5fac8e8d0,9ead43f79023bc2cbf9aad4cfb1367a85b6519dc..141d555b7bd27fb38638f35171570555efd49846
@@@ -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
index adbe994610f2492c130151e0c7c2e7600658c5ad,9ae8f4ef0aac27ad88a323c5a3098f880aa806b3..f43249696d9f1aa3cb9b96c7e72ab87622be3928
@@@ -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