Skip to content

Commit 54c7173

Browse files
committed
Merge: CNB101: net/sched: update TC core to upstream v6.15
MR: https://gitlab.com/redhat/centos-stream/src/kernel/centos-stream-10/-/merge_requests/962 JIRA: https://issues.redhat.com/browse/RHEL-75598 Tested: Using TC self-tests CVE: CVE-2025-37797 Omitted-fix: 25b2f46 Omitted-fix: 1450e45 - both are follow-ups for 8fa7292 ("treewide: Switch/rename to timer_delete[_sync]()") but they are not relevant here as the mentioned commit is backported partially Signed-off-by: Ivan Vecera <ivecera@redhat.com> Approved-by: mheib <mheib@redhat.com> Approved-by: Petr Oros <poros@redhat.com> Approved-by: Davide Caratti <dcaratti@redhat.com> Approved-by: CKI KWF Bot <cki-ci-bot+kwf-gitlab-com@redhat.com> Merged-by: Julio Faracco <jfaracco@redhat.com>
2 parents f8208bb + d6d53e5 commit 54c7173

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

71 files changed

+1581
-395
lines changed

Documentation/netlink/netlink-raw.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -221,7 +221,7 @@ properties:
221221
type: &attr-type
222222
description: The netlink attribute type
223223
enum: [ unused, pad, flag, binary, bitfield32,
224-
u8, u16, u32, u64, s8, s16, s32, s64,
224+
uint, sint, u8, u16, u32, u64, s8, s16, s32, s64,
225225
string, nest, indexed-array, nest-type-value,
226226
sub-message ]
227227
doc:

Documentation/netlink/specs/rt_link.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1137,6 +1137,10 @@ attribute-sets:
11371137
name: dpll-pin
11381138
type: nest
11391139
nested-attributes: link-dpll-pin-attrs
1140+
-
1141+
name: max-pacing-offload-horizon
1142+
type: uint
1143+
doc: EDT offload horizon supported by the device (in nsec).
11401144
-
11411145
name: af-spec-attrs
11421146
attributes:

Documentation/networking/net_cachelines/net_device.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -182,6 +182,7 @@ struct_devlink_port* devlink_port
182182
struct_dpll_pin* dpll_pin
183183
struct hlist_head page_pools
184184
struct dim_irq_moder* irq_moder
185+
u64 max_pacing_offload_horizon
185186
struct_napi_config* napi_config
186187
unsigned_long gro_flush_timeout
187188
u32 napi_defer_hard_irqs

drivers/net/bonding/bond_main.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4216,7 +4216,7 @@ static bool bond_flow_ip(struct sk_buff *skb, struct flow_keys *fk, const void *
42164216
}
42174217

42184218
if (l34 && *ip_proto >= 0)
4219-
fk->ports.ports = __skb_flow_get_ports(skb, *nhoff, *ip_proto, data, hlen);
4219+
fk->ports.ports = skb_flow_get_ports(skb, *nhoff, *ip_proto, data, hlen);
42204220

42214221
return true;
42224222
}

include/linux/bpf-cgroup.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,7 @@ static inline bool cgroup_bpf_sock_enabled(struct sock *sk,
209209
int __ret = 0; \
210210
if (cgroup_bpf_enabled(CGROUP_INET_EGRESS) && sk) { \
211211
typeof(sk) __sk = sk_to_full_sk(sk); \
212-
if (sk_fullsock(__sk) && __sk == skb_to_full_sk(skb) && \
212+
if (__sk && __sk == skb_to_full_sk(skb) && \
213213
cgroup_bpf_sock_enabled(__sk, CGROUP_INET_EGRESS)) \
214214
__ret = __cgroup_bpf_run_filter_skb(__sk, skb, \
215215
CGROUP_INET_EGRESS); \

include/linux/netdevice.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2038,6 +2038,7 @@ enum netdev_reg_state {
20382038
* @dpll_pin: Pointer to the SyncE source pin of a DPLL subsystem,
20392039
* where the clock is recovered.
20402040
*
2041+
* @max_pacing_offload_horizon: max EDT offload horizon in nsec.
20412042
* @napi_config: An array of napi_config structures containing per-NAPI
20422043
* settings.
20432044
* @gro_flush_timeout: timeout for GRO layer in NAPI
@@ -2431,6 +2432,7 @@ struct net_device {
24312432
/** @irq_moder: dim parameters used if IS_ENABLED(CONFIG_DIMLIB). */
24322433
struct dim_irq_moder *irq_moder;
24332434

2435+
u64 max_pacing_offload_horizon;
24342436
struct napi_config *napi_config;
24352437
unsigned long gro_flush_timeout;
24362438
u32 napi_defer_hard_irqs;

include/linux/skbuff.h

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1525,14 +1525,8 @@ void __skb_get_hash_net(const struct net *net, struct sk_buff *skb);
15251525
u32 skb_get_poff(const struct sk_buff *skb);
15261526
u32 __skb_get_poff(const struct sk_buff *skb, const void *data,
15271527
const struct flow_keys_basic *keys, int hlen);
1528-
__be32 __skb_flow_get_ports(const struct sk_buff *skb, int thoff, u8 ip_proto,
1529-
const void *data, int hlen_proto);
1530-
1531-
static inline __be32 skb_flow_get_ports(const struct sk_buff *skb,
1532-
int thoff, u8 ip_proto)
1533-
{
1534-
return __skb_flow_get_ports(skb, thoff, ip_proto, NULL, 0);
1535-
}
1528+
__be32 skb_flow_get_ports(const struct sk_buff *skb, int thoff, u8 ip_proto,
1529+
const void *data, int hlen_proto);
15361530

15371531
void skb_flow_dissector_init(struct flow_dissector *flow_dissector,
15381532
const struct flow_dissector_key *key,

include/net/act_api.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -219,7 +219,6 @@ struct tc_action *tcf_action_init_1(struct net *net, struct tcf_proto *tp,
219219
int tcf_action_dump(struct sk_buff *skb, struct tc_action *actions[], int bind,
220220
int ref, bool terse);
221221
int tcf_action_dump_old(struct sk_buff *skb, struct tc_action *a, int, int);
222-
int tcf_action_dump_1(struct sk_buff *skb, struct tc_action *a, int, int);
223222

224223
static inline void tcf_action_update_bstats(struct tc_action *a,
225224
struct sk_buff *skb)

include/net/flow_offload.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -685,6 +685,7 @@ struct flow_cls_common_offload {
685685
u32 chain_index;
686686
__be16 protocol;
687687
u32 prio;
688+
bool skip_sw;
688689
struct netlink_ext_ack *extack;
689690
};
690691

include/net/inet_sock.h

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -327,8 +327,10 @@ static inline dscp_t inet_sk_dscp(const struct inet_sock *inet)
327327
static inline struct sock *sk_to_full_sk(struct sock *sk)
328328
{
329329
#ifdef CONFIG_INET
330-
if (sk && sk->sk_state == TCP_NEW_SYN_RECV)
330+
if (sk && READ_ONCE(sk->sk_state) == TCP_NEW_SYN_RECV)
331331
sk = inet_reqsk(sk)->rsk_listener;
332+
if (sk && READ_ONCE(sk->sk_state) == TCP_TIME_WAIT)
333+
sk = NULL;
332334
#endif
333335
return sk;
334336
}
@@ -337,8 +339,10 @@ static inline struct sock *sk_to_full_sk(struct sock *sk)
337339
static inline const struct sock *sk_const_to_full_sk(const struct sock *sk)
338340
{
339341
#ifdef CONFIG_INET
340-
if (sk && sk->sk_state == TCP_NEW_SYN_RECV)
342+
if (sk && READ_ONCE(sk->sk_state) == TCP_NEW_SYN_RECV)
341343
sk = ((const struct request_sock *)sk)->rsk_listener;
344+
if (sk && READ_ONCE(sk->sk_state) == TCP_TIME_WAIT)
345+
sk = NULL;
342346
#endif
343347
return sk;
344348
}

0 commit comments

Comments
 (0)