mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-07-16 15:39:42 -04:00
Merge tag 'net-5.16-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
Pull networking fixes from Jakub Kicinski:
"Including fixes from bpf, can and netfilter.
Current release - regressions:
- bpf: do not reject when the stack read size is different from the
tracked scalar size
- net: fix premature exit from NAPI state polling in napi_disable()
- riscv, bpf: fix RV32 broken build, and silence RV64 warning
Current release - new code bugs:
- net: fix possible NULL deref in sock_reserve_memory
- amt: fix error return code in amt_init(); fix stopping the
workqueue
- ax88796c: use the correct ioctl callback
Previous releases - always broken:
- bpf: stop caching subprog index in the bpf_pseudo_func insn
- security: fixups for the security hooks in sctp
- nfc: add necessary privilege flags in netlink layer, limit
operations to admin only
- vsock: prevent unnecessary refcnt inc for non-blocking connect
- net/smc: fix sk_refcnt underflow on link down and fallback
- nfnetlink_queue: fix OOB when mac header was cleared
- can: j1939: ignore invalid messages per standard
- bpf, sockmap:
- fix race in ingress receive verdict with redirect to self
- fix incorrect sk_skb data_end access when src_reg = dst_reg
- strparser, and tls are reusing qdisc_skb_cb and colliding
- ethtool: fix ethtool msg len calculation for pause stats
- vlan: fix a UAF in vlan_dev_real_dev() when ref-holder tries to
access an unregistering real_dev
- udp6: make encap_rcv() bump the v6 not v4 stats
- drv: prestera: add explicit padding to fix m68k build
- drv: felix: fix broken VLAN-tagged PTP under VLAN-aware bridge
- drv: mvpp2: fix wrong SerDes reconfiguration order
Misc & small latecomers:
- ipvs: auto-load ipvs on genl access
- mctp: sanity check the struct sockaddr_mctp padding fields
- libfs: support RENAME_EXCHANGE in simple_rename()
- avoid double accounting for pure zerocopy skbs"
* tag 'net-5.16-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (123 commits)
selftests/net: udpgso_bench_rx: fix port argument
net: wwan: iosm: fix compilation warning
cxgb4: fix eeprom len when diagnostics not implemented
net: fix premature exit from NAPI state polling in napi_disable()
net/smc: fix sk_refcnt underflow on linkdown and fallback
net/mlx5: Lag, fix a potential Oops with mlx5_lag_create_definer()
gve: fix unmatched u64_stats_update_end()
net: ethernet: lantiq_etop: Fix compilation error
selftests: forwarding: Fix packet matching in mirroring selftests
vsock: prevent unnecessary refcnt inc for nonblocking connect
net: marvell: mvpp2: Fix wrong SerDes reconfiguration order
net: ethernet: ti: cpsw_ale: Fix access to un-initialized memory
net: stmmac: allow a tc-taprio base-time of zero
selftests: net: test_vxlan_under_vrf: fix HV connectivity test
net: hns3: allow configure ETS bandwidth of all TCs
net: hns3: remove check VF uc mac exist when set by PF
net: hns3: fix some mac statistics is always 0 in device version V2
net: hns3: fix kernel crash when unload VF while it is being reset
net: hns3: sync rx ring head in echo common pull
net: hns3: fix pfc packet number incorrect after querying pfc parameters
...
This commit is contained in:
@@ -72,7 +72,9 @@ struct llc_sap {
|
||||
static inline
|
||||
struct hlist_head *llc_sk_dev_hash(struct llc_sap *sap, int ifindex)
|
||||
{
|
||||
return &sap->sk_dev_hash[ifindex % LLC_SK_DEV_HASH_ENTRIES];
|
||||
u32 bucket = hash_32(ifindex, LLC_SK_DEV_HASH_BITS);
|
||||
|
||||
return &sap->sk_dev_hash[bucket];
|
||||
}
|
||||
|
||||
static inline
|
||||
|
||||
@@ -1355,16 +1355,6 @@ struct sctp_endpoint {
|
||||
reconf_enable:1;
|
||||
|
||||
__u8 strreset_enable;
|
||||
|
||||
/* Security identifiers from incoming (INIT). These are set by
|
||||
* security_sctp_assoc_request(). These will only be used by
|
||||
* SCTP TCP type sockets and peeled off connections as they
|
||||
* cause a new socket to be generated. security_sctp_sk_clone()
|
||||
* will then plug these into the new socket.
|
||||
*/
|
||||
|
||||
u32 secid;
|
||||
u32 peer_secid;
|
||||
};
|
||||
|
||||
/* Recover the outter endpoint structure. */
|
||||
@@ -2104,6 +2094,16 @@ struct sctp_association {
|
||||
__u64 abandoned_unsent[SCTP_PR_INDEX(MAX) + 1];
|
||||
__u64 abandoned_sent[SCTP_PR_INDEX(MAX) + 1];
|
||||
|
||||
/* Security identifiers from incoming (INIT). These are set by
|
||||
* security_sctp_assoc_request(). These will only be used by
|
||||
* SCTP TCP type sockets and peeled off connections as they
|
||||
* cause a new socket to be generated. security_sctp_sk_clone()
|
||||
* will then plug these into the new socket.
|
||||
*/
|
||||
|
||||
u32 secid;
|
||||
u32 peer_secid;
|
||||
|
||||
struct rcu_head rcu;
|
||||
};
|
||||
|
||||
|
||||
@@ -54,10 +54,28 @@ struct strp_msg {
|
||||
int offset;
|
||||
};
|
||||
|
||||
struct _strp_msg {
|
||||
/* Internal cb structure. struct strp_msg must be first for passing
|
||||
* to upper layer.
|
||||
*/
|
||||
struct strp_msg strp;
|
||||
int accum_len;
|
||||
};
|
||||
|
||||
struct sk_skb_cb {
|
||||
#define SK_SKB_CB_PRIV_LEN 20
|
||||
unsigned char data[SK_SKB_CB_PRIV_LEN];
|
||||
struct _strp_msg strp;
|
||||
/* temp_reg is a temporary register used for bpf_convert_data_end_access
|
||||
* when dst_reg == src_reg.
|
||||
*/
|
||||
u64 temp_reg;
|
||||
};
|
||||
|
||||
static inline struct strp_msg *strp_msg(struct sk_buff *skb)
|
||||
{
|
||||
return (struct strp_msg *)((void *)skb->cb +
|
||||
offsetof(struct qdisc_skb_cb, data));
|
||||
offsetof(struct sk_skb_cb, strp));
|
||||
}
|
||||
|
||||
/* Structure for an attached lower socket */
|
||||
|
||||
@@ -293,7 +293,10 @@ static inline bool tcp_out_of_memory(struct sock *sk)
|
||||
static inline void tcp_wmem_free_skb(struct sock *sk, struct sk_buff *skb)
|
||||
{
|
||||
sk_wmem_queued_add(sk, -skb->truesize);
|
||||
sk_mem_uncharge(sk, skb->truesize);
|
||||
if (!skb_zcopy_pure(skb))
|
||||
sk_mem_uncharge(sk, skb->truesize);
|
||||
else
|
||||
sk_mem_uncharge(sk, SKB_TRUESIZE(skb_end_offset(skb)));
|
||||
__kfree_skb(skb);
|
||||
}
|
||||
|
||||
@@ -974,7 +977,8 @@ static inline bool tcp_skb_can_collapse(const struct sk_buff *to,
|
||||
const struct sk_buff *from)
|
||||
{
|
||||
return likely(tcp_skb_can_collapse_to(to) &&
|
||||
mptcp_skb_can_collapse(to, from));
|
||||
mptcp_skb_can_collapse(to, from) &&
|
||||
skb_pure_zcopy_same(to, from));
|
||||
}
|
||||
|
||||
/* Events passed to congestion control interface */
|
||||
|
||||
Reference in New Issue
Block a user