History

Merge tag 'net-5.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net

Pull networking fixes from Jakub Kicinski: "Cross-tree/merge window issues: - rtl8150: don't incorrectly assign random MAC addresses; fix late in the 5.9 cycle started depending on a return code from a function which changed with the 5.10 PR from the usb subsystem Current release regressions: - Revert "virtio-net: ethtool configurable RXCSUM", it was causing crashes at probe when control vq was not negotiated/available Previous release regressions: - ixgbe: fix probing of multi-port 10 Gigabit Intel NICs with an MDIO bus, only first device would be probed correctly - nexthop: Fix performance regression in nexthop deletion by effectively switching from recently added synchronize_rcu() to synchronize_rcu_expedited() - netsec: ignore 'phy-mode' device property on ACPI systems; the property is not populated correctly by the firmware, but firmware configures the PHY so just keep boot settings Previous releases - always broken: - tcp: fix to update snd_wl1 in bulk receiver fast path, addressing bulk transfers getting "stuck" - icmp: randomize the global rate limiter to prevent attackers from getting useful signal - r8169: fix operation under forced interrupt threading, make the driver always use hard irqs, even on RT, given the handler is light and only wants to schedule napi (and do so through a _irqoff() variant, preferably) - bpf: Enforce pointer id generation for all may-be-null register type to avoid pointers erroneously getting marked as null-checked - tipc: re-configure queue limit for broadcast link - net/sched: act_tunnel_key: fix OOB write in case of IPv6 ERSPAN tunnels - fix various issues in chelsio inline tls driver Misc: - bpf: improve just-added bpf_redirect_neigh() helper api to support supplying nexthop by the caller - in case BPF program has already done a lookup we can avoid doing another one - remove unnecessary break statements - make MCTCP not select IPV6, but rather depend on it" * tag 'net-5.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (62 commits) tcp: fix to update snd_wl1 in bulk receiver fast path net: Properly typecast int values to set sk_max_pacing_rate netfilter: nf_fwd_netdev: clear timestamp in forwarding path ibmvnic: save changed mac address to adapter->mac_addr selftests: mptcp: depends on built-in IPv6 Revert "virtio-net: ethtool configurable RXCSUM" rtnetlink: fix data overflow in rtnl_calcit() net: ethernet: mtk-star-emac: select REGMAP_MMIO net: hdlc_raw_eth: Clear the IFF_TX_SKB_SHARING flag after calling ether_setup net: hdlc: In hdlc_rcv, check to make sure dev is an HDLC device bpf, libbpf: Guard bpf inline asm from bpf_tail_call_static bpf, selftests: Extend test_tc_redirect to use modified bpf_redirect_neigh() bpf: Fix bpf_redirect_neigh helper api to support supplying nexthop mptcp: depends on IPV6 but not as a module sfc: move initialisation of efx->filter_sem to efx_init_struct() mpls: load mpls_gso after mpls_iptunnel net/sched: act_tunnel_key: fix OOB write in case of IPv6 ERSPAN tunnels net/sched: act_gate: Unlock ->tcfa_lock in tc_setup_flow_action() net: dsa: bcm_sf2: make const array static, makes object smaller mptcp: MPTCP_IPV6 should depend on IPV6 instead of selecting it ...

Linus Torvalds committed 6 years ago

Commit 3cb12d22 parents 0adc313 18ded9179 files · +676 −256Browse files

Showing the changes to kernel (2 of 79 files). Show all

Unified · Split

2 files
  1. kernel/bpf/syscall.c +0 −1
  2. kernel/bpf/verifier.c +5 −6
kernel/bpf/syscall.c+0−1
@@ -2913,7 +2913,6 @@ attach_type_to_prog_type(enum bpf_attach_type attach_type) · 2912 unmodified lines
2913 case BPF_CGROUP_INET_INGRESS:2913 case BPF_CGROUP_INET_INGRESS:
2914 case BPF_CGROUP_INET_EGRESS:2914 case BPF_CGROUP_INET_EGRESS:
2915 return BPF_PROG_TYPE_CGROUP_SKB;2915 return BPF_PROG_TYPE_CGROUP_SKB;
2916 break;
2917 case BPF_CGROUP_INET_SOCK_CREATE:2916 case BPF_CGROUP_INET_SOCK_CREATE:
2918 case BPF_CGROUP_INET_SOCK_RELEASE:2917 case BPF_CGROUP_INET_SOCK_RELEASE:
2919 case BPF_CGROUP_INET4_POST_BIND:2918 case BPF_CGROUP_INET4_POST_BIND:
kernel/bpf/verifier.c+5−6
@@ -5133,24 +5133,19 @@ static int check_helper_call(struct bpf_verifier_env *env, int func_id, int insn · 5132 unmodified lines
5133 regs[BPF_REG_0].id = ++env->id_gen;5133 regs[BPF_REG_0].id = ++env->id_gen;
5134 } else {5134 } else {
5135 regs[BPF_REG_0].type = PTR_TO_MAP_VALUE_OR_NULL;5135 regs[BPF_REG_0].type = PTR_TO_MAP_VALUE_OR_NULL;
5136 regs[BPF_REG_0].id = ++env->id_gen;
5137 }5136 }
5138 } else if (fn->ret_type == RET_PTR_TO_SOCKET_OR_NULL) {5137 } else if (fn->ret_type == RET_PTR_TO_SOCKET_OR_NULL) {
5139 mark_reg_known_zero(env, regs, BPF_REG_0);5138 mark_reg_known_zero(env, regs, BPF_REG_0);
5140 regs[BPF_REG_0].type = PTR_TO_SOCKET_OR_NULL;5139 regs[BPF_REG_0].type = PTR_TO_SOCKET_OR_NULL;
5141 regs[BPF_REG_0].id = ++env->id_gen;
5142 } else if (fn->ret_type == RET_PTR_TO_SOCK_COMMON_OR_NULL) {5140 } else if (fn->ret_type == RET_PTR_TO_SOCK_COMMON_OR_NULL) {
5143 mark_reg_known_zero(env, regs, BPF_REG_0);5141 mark_reg_known_zero(env, regs, BPF_REG_0);
5144 regs[BPF_REG_0].type = PTR_TO_SOCK_COMMON_OR_NULL;5142 regs[BPF_REG_0].type = PTR_TO_SOCK_COMMON_OR_NULL;
5145 regs[BPF_REG_0].id = ++env->id_gen;
5146 } else if (fn->ret_type == RET_PTR_TO_TCP_SOCK_OR_NULL) {5143 } else if (fn->ret_type == RET_PTR_TO_TCP_SOCK_OR_NULL) {
5147 mark_reg_known_zero(env, regs, BPF_REG_0);5144 mark_reg_known_zero(env, regs, BPF_REG_0);
5148 regs[BPF_REG_0].type = PTR_TO_TCP_SOCK_OR_NULL;5145 regs[BPF_REG_0].type = PTR_TO_TCP_SOCK_OR_NULL;
5149 regs[BPF_REG_0].id = ++env->id_gen;
5150 } else if (fn->ret_type == RET_PTR_TO_ALLOC_MEM_OR_NULL) {5146 } else if (fn->ret_type == RET_PTR_TO_ALLOC_MEM_OR_NULL) {
5151 mark_reg_known_zero(env, regs, BPF_REG_0);5147 mark_reg_known_zero(env, regs, BPF_REG_0);
5152 regs[BPF_REG_0].type = PTR_TO_MEM_OR_NULL;5148 regs[BPF_REG_0].type = PTR_TO_MEM_OR_NULL;
5153 regs[BPF_REG_0].id = ++env->id_gen;
5154 regs[BPF_REG_0].mem_size = meta.mem_size;5149 regs[BPF_REG_0].mem_size = meta.mem_size;
5155 } else if (fn->ret_type == RET_PTR_TO_MEM_OR_BTF_ID_OR_NULL ||5150 } else if (fn->ret_type == RET_PTR_TO_MEM_OR_BTF_ID_OR_NULL ||
5156 fn->ret_type == RET_PTR_TO_MEM_OR_BTF_ID) {5151 fn->ret_type == RET_PTR_TO_MEM_OR_BTF_ID) {
@@ -5199,6 +5194,9 @@ static int check_helper_call(struct bpf_verifier_env *env, int func_id, int insn · 42 unmodified lines
5199 return -EINVAL;5194 return -EINVAL;
5200 }5195 }
5201 5196
5197 if (reg_type_may_be_null(regs[BPF_REG_0].type))
5198 regs[BPF_REG_0].id = ++env->id_gen;
5199
5202 if (is_ptr_cast_function(func_id)) {5200 if (is_ptr_cast_function(func_id)) {
5203 /* For release_reference() */5201 /* For release_reference() */
5204 regs[BPF_REG_0].ref_obj_id = meta.ref_obj_id;5202 regs[BPF_REG_0].ref_obj_id = meta.ref_obj_id;
@@ -7212,7 +7210,8 @@ static void mark_ptr_or_null_reg(struct bpf_func_state *state, · 2007 unmodified lines
7212 struct bpf_reg_state *reg, u32 id,7210 struct bpf_reg_state *reg, u32 id,
7213 bool is_null)7211 bool is_null)
7214{7212{
7215 if (reg_type_may_be_null(reg->type) && reg->id == id) {7213 if (reg_type_may_be_null(reg->type) && reg->id == id &&
7214 !WARN_ON_ONCE(!reg->id)) {
7216 /* Old offset (both fixed and variable parts) should7215 /* Old offset (both fixed and variable parts) should
7217 * have been known-zero, because we don't allow pointer7216 * have been known-zero, because we don't allow pointer
7218 * arithmetic on pointers that might be NULL.7217 * arithmetic on pointers that might be NULL.

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t