Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
authorDavid S. Miller <davem@davemloft.net>
Fri, 15 May 2020 20:48:59 +0000 (13:48 -0700)
committerDavid S. Miller <davem@davemloft.net>
Fri, 15 May 2020 20:48:59 +0000 (13:48 -0700)
Move the bpf verifier trace check into the new switch statement in
HEAD.

Resolve the overlapping changes in hinic, where bug fixes overlap
the addition of VF support.

Signed-off-by: David S. Miller <davem@davemloft.net>
37 files changed:
1  2 
MAINTAINERS
drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c
drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.h
drivers/net/ethernet/freescale/dpaa2/dpaa2-ethtool.c
drivers/net/ethernet/huawei/hinic/hinic_hw_mgmt.c
drivers/net/ethernet/huawei/hinic/hinic_main.c
drivers/net/ethernet/microchip/encx24j600.c
drivers/net/ethernet/pensando/ionic/ionic_lif.c
drivers/net/ethernet/pensando/ionic/ionic_main.c
drivers/net/ethernet/realtek/r8169_main.c
drivers/net/ethernet/ti/Kconfig
drivers/net/ethernet/ti/Makefile
drivers/net/hamradio/bpqether.c
drivers/net/ipa/ipa_cmd.c
drivers/net/phy/phy.c
drivers/net/virtio_net.c
include/linux/ftrace.h
include/linux/ptp_clock_kernel.h
include/net/tcp.h
kernel/bpf/arraymap.c
kernel/bpf/syscall.c
kernel/bpf/verifier.c
kernel/trace/bpf_trace.c
kernel/trace/trace.c
kernel/umh.c
mm/page_alloc.c
net/core/dev.c
net/core/filter.c
net/ipv4/route.c
net/ipv4/tcp.c
net/ipv4/tcp_input.c
net/ipv6/route.c
net/mptcp/protocol.c
net/mptcp/subflow.c
net/netfilter/nf_flow_table_offload.c
tools/lib/bpf/bpf_tracing.h
tools/testing/selftests/bpf/progs/test_overhead.c

diff --cc MAINTAINERS
Simple merge
index 8c8d95aa1dfdcefe63b1af06b9b6553835380570,d97c320a2dc0393b3a6b84bf43ae0d9bbf865db7..5fbaa51b38bce85e086f89f9aa2256d660cc819c
@@@ -367,13 -335,9 +367,13 @@@ static u32 run_xdp(struct dpaa2_eth_pri
                break;
        case XDP_REDIRECT:
                dma_unmap_page(priv->net_dev->dev.parent, addr,
-                              DPAA2_ETH_RX_BUF_SIZE, DMA_BIDIRECTIONAL);
+                              priv->rx_buf_size, DMA_BIDIRECTIONAL);
                ch->buf_count--;
 +
 +              /* Allow redirect use of full headroom */
                xdp.data_hard_start = vaddr;
 +              xdp.frame_sz = DPAA2_ETH_RX_BUF_RAW_SIZE;
 +
                err = xdp_do_redirect(priv->net_dev, &xdp, xdp_prog);
                if (unlikely(err))
                        ch->stats.xdp_drop++;
index eef855f11a015917a536ef1c3602b8328ff5b2dd,992908e6eebf61923e6fb2fbff2f695b7bd643fd..c33eb114705572afc3adf27b17b340eeebf10314
@@@ -353,13 -358,12 +358,16 @@@ int hinic_msg_to_mgmt(struct hinic_pf_t
                return -EINVAL;
        }
  
 -      return msg_to_mgmt_sync(pf_to_mgmt, mod, cmd, buf_in, in_size,
+       if (cmd == HINIC_PORT_CMD_SET_FUNC_STATE)
+               timeout = SET_FUNC_PORT_MGMT_TIMEOUT;
 +      if (HINIC_IS_VF(hwif))
 +              return hinic_mbox_to_pf(pf_to_mgmt->hwdev, mod, cmd, buf_in,
 +                                      in_size, buf_out, out_size, 0);
 +      else
 +              return msg_to_mgmt_sync(pf_to_mgmt, mod, cmd, buf_in, in_size,
                                buf_out, out_size, MGMT_DIRECT_SEND,
-                               MSG_NOT_RESP);
+                               MSG_NOT_RESP, timeout);
  }
  
  /**
index e3ff119fe341345bb5be52e8a666cdb2e038f428,63b92f6cc856b7786a8ca3cd1809f07c429ced20..c8ab129a7ae80ab19d985448cefdee1d4e1a1e63
@@@ -502,23 -496,9 +501,12 @@@ int hinic_close(struct net_device *netd
  
        up(&nic_dev->mgmt_lock);
  
-       err = hinic_port_set_func_state(nic_dev, HINIC_FUNC_PORT_DISABLE);
-       if (err) {
-               netif_err(nic_dev, drv, netdev,
-                         "Failed to set func port state\n");
-               nic_dev->flags |= (flags & HINIC_INTF_UP);
-               return err;
-       }
 +      if (!HINIC_IS_VF(nic_dev->hwdev->hwif))
 +              hinic_notify_all_vfs_link_changed(nic_dev->hwdev, 0);
 +
+       hinic_port_set_state(nic_dev, HINIC_PORT_DISABLE);
  
-       err = hinic_port_set_state(nic_dev, HINIC_PORT_DISABLE);
-       if (err) {
-               netif_err(nic_dev, drv, netdev, "Failed to set port state\n");
-               nic_dev->flags |= (flags & HINIC_INTF_UP);
-               return err;
-       }
+       hinic_port_set_func_state(nic_dev, HINIC_FUNC_PORT_DISABLE);
  
        if (nic_dev->flags & HINIC_RSS_ENABLE) {
                hinic_rss_deinit(nic_dev);
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index 180933f6fba9dc1cae1e02e944aeabdcad7ff3ce,8d7ee40e2748441bd0036f9fc0528e37255c8d27..25b14ee0e26d314daacb11db589035205b99e98e
@@@ -7113,9 -7062,22 +7115,23 @@@ static int check_return_code(struct bpf
                range = tnum_const(0);
                break;
        case BPF_PROG_TYPE_TRACING:
-               if (env->prog->expected_attach_type != BPF_TRACE_ITER)
+               switch (env->prog->expected_attach_type) {
+               case BPF_TRACE_FENTRY:
+               case BPF_TRACE_FEXIT:
+                       range = tnum_const(0);
+                       break;
++              case BPF_TRACE_ITER:
+               case BPF_TRACE_RAW_TP:
+               case BPF_MODIFY_RETURN:
                        return 0;
+               default:
+                       return -ENOTSUPP;
+               }
                break;
+       case BPF_PROG_TYPE_EXT:
+               /* freplace program can return anything as its return value
+                * depends on the to-be-replaced kernel func or bpf program.
+                */
        default:
                return 0;
        }
Simple merge
Simple merge
diff --cc kernel/umh.c
Simple merge
diff --cc mm/page_alloc.c
Simple merge
diff --cc net/core/dev.c
Simple merge
Simple merge
Simple merge
diff --cc net/ipv4/tcp.c
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index 450bf819beac1afcf8968e5129ec04c0eb400efb,abb7344b531f4536fd000ba716c8d953188f0307..42403d088abc975b150a6b420c971c4a0ab7035a
@@@ -36,13 -36,7 +36,13 @@@ int BPF_PROG(prog4, struct task_struct 
  SEC("fexit/__set_task_comm")
  int BPF_PROG(prog5, struct task_struct *tsk, const char *buf, bool exec)
  {
-       return !tsk;
+       return 0;
  }
  
 +SEC("fmod_ret/__set_task_comm")
 +int BPF_PROG(prog6, struct task_struct *tsk, const char *buf, bool exec)
 +{
 +      return !tsk;
 +}
 +
  char _license[] SEC("license") = "GPL";