Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
authorDavid S. Miller <davem@davemloft.net>
Sun, 2 Aug 2020 08:02:12 +0000 (01:02 -0700)
committerDavid S. Miller <davem@davemloft.net>
Sun, 2 Aug 2020 08:02:12 +0000 (01:02 -0700)
Resolved kernel/bpf/btf.c using instructions from merge commit
69138b34a7248d2396ab85c8652e20c0c39beaba

Signed-off-by: David S. Miller <davem@davemloft.net>
46 files changed:
1  2 
MAINTAINERS
Makefile
drivers/net/bareudp.c
drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
drivers/net/ethernet/intel/e1000e/ich8lan.c
drivers/net/ethernet/intel/igb/igb_main.c
drivers/net/ethernet/mediatek/mtk_eth_soc.c
drivers/net/ethernet/mellanox/mlx4/main.c
drivers/net/ethernet/mellanox/mlx5/core/en/rep/tc.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_tc.c
drivers/net/ethernet/mellanox/mlx5/core/eswitch.c
drivers/net/ethernet/mellanox/mlx5/core/eswitch.h
drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c
drivers/net/ethernet/mellanox/mlx5/core/fs_core.c
drivers/net/ethernet/mellanox/mlxsw/core.c
drivers/net/ethernet/mellanox/mlxsw/reg.h
drivers/net/ethernet/mscc/ocelot.c
drivers/net/ethernet/pensando/ionic/ionic_lif.c
drivers/net/vxlan.c
include/linux/mlx5/mlx5_ifc.h
include/net/devlink.h
include/net/xfrm.h
kernel/bpf/btf.c
kernel/bpf/hashtab.c
net/bluetooth/hci_event.c
net/bpfilter/bpfilter_kern.c
net/compat.c
net/core/devlink.c
net/ipv4/fib_trie.c
net/ipv6/ipv6_sockglue.c
net/ipv6/route.c
net/key/af_key.c
net/mac80211/cfg.c
net/mac80211/mesh.c
net/mac80211/mesh_pathtbl.c
net/mac80211/sta_info.c
net/mac80211/tx.c
net/mac80211/util.c
net/mptcp/protocol.c
net/sched/act_ct.c
net/wireless/nl80211.c
net/xfrm/xfrm_policy.c
tools/testing/selftests/net/forwarding/ethtool.sh
tools/testing/selftests/net/rxtimestamp.c

diff --cc MAINTAINERS
Simple merge
diff --cc Makefile
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
@@@ -4080,14 -4052,98 +4080,14 @@@ error
  int btf_resolve_helper_id(struct bpf_verifier_log *log,
                          const struct bpf_func_proto *fn, int arg)
  {
 -      int *btf_id = &fn->btf_id[arg];
 -      int ret;
 +      int id;
  
--      if (fn->arg_type[arg] != ARG_PTR_TO_BTF_ID)
++      if (fn->arg_type[arg] != ARG_PTR_TO_BTF_ID || !btf_vmlinux)
                return -EINVAL;
 -
 -      ret = READ_ONCE(*btf_id);
 -      if (ret)
 -              return ret;
 -      /* ok to race the search. The result is the same */
 -      ret = __btf_resolve_helper_id(log, fn->func, arg);
 -      if (!ret) {
 -              /* Function argument cannot be type 'void' */
 -              bpf_log(log, "BTF resolution bug\n");
 -              return -EFAULT;
 -      }
 -      WRITE_ONCE(*btf_id, ret);
 -      return ret;
 +      id = fn->btf_id[arg];
 +      if (!id || id > btf_vmlinux->nr_types)
 +              return -EINVAL;
 +      return id;
  }
  
  static int __get_type_size(struct btf *btf, u32 btf_id,
Simple merge
Simple merge
@@@ -31,20 -33,30 +31,20 @@@ static void __stop_umh(void
                shutdown_umh();
  }
  
 -static int __bpfilter_process_sockopt(struct sock *sk, int optname,
 -                                    char __user *optval,
 -                                    unsigned int optlen, bool is_set)
 +static int bpfilter_send_req(struct mbox_request *req)
  {
 -      struct mbox_request req;
        struct mbox_reply reply;
-       loff_t pos;
+       loff_t pos = 0;
        ssize_t n;
 -      int ret = -EFAULT;
 -
 -      req.is_set = is_set;
 -      req.pid = current->pid;
 -      req.cmd = optname;
 -      req.addr = (long __force __user)optval;
 -      req.len = optlen;
 -      if (!bpfilter_ops.info.pid)
 -              goto out;
 -      n = kernel_write(bpfilter_ops.info.pipe_to_umh, &req, sizeof(req),
 +
 +      if (!bpfilter_ops.info.tgid)
 +              return -EFAULT;
 +      pos = 0;
 +      n = kernel_write(bpfilter_ops.info.pipe_to_umh, req, sizeof(*req),
                           &pos);
 -      if (n != sizeof(req)) {
 +      if (n != sizeof(*req)) {
                pr_err("write fail %zd\n", n);
 -              __stop_umh();
 -              ret = -EFAULT;
 -              goto out;
 +              goto stop;
        }
        pos = 0;
        n = kernel_read(bpfilter_ops.info.pipe_from_umh, &reply, sizeof(reply),
diff --cc net/compat.c
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
@@@ -354,13 -327,9 +354,12 @@@ int main(int argc, char **argv
  {
        bool all_protocols = true;
        bool all_tests = true;
 +      bool cfg_ipv4 = false;
 +      bool cfg_ipv6 = false;
 +      bool strict = false;
        int arg_index = 0;
        int failures = 0;
-       int s, t;
-       char opt;
+       int s, t, opt;
  
        while ((opt = getopt_long(argc, argv, "", long_options,
                                  &arg_index)) != -1) {