From: Jakub Kicinski Date: Thu, 8 Jun 2023 18:34:28 +0000 (-0700) Subject: Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=449f6bc17a51e68b06cfd742898e5ff3fe6e04d7;p=linux.git Merge git://git./linux/kernel/git/netdev/net Cross-merge networking fixes after downstream PR. Conflicts: net/sched/sch_taprio.c d636fc5dd692 ("net: sched: add rcu annotations around qdisc->qdisc_sleeping") dced11ef84fb ("net/sched: taprio: don't overwrite "sch" variable in taprio_dump_class_stats()") net/ipv4/sysctl_net_ipv4.c e209fee4118f ("net/ipv4: ping_group_range: allow GID from 2147483648 to 4294967294") ccce324dabfe ("tcp: make the first N SYN RTO backoffs linear") https://lore.kernel.org/all/20230605100816.08d41a7b@canb.auug.org.au/ No adjacent changes. Signed-off-by: Jakub Kicinski --- 449f6bc17a51e68b06cfd742898e5ff3fe6e04d7 diff --cc net/ipv4/sysctl_net_ipv4.c index ef26f9013a0fd,88dfe51e68f3c..356afe54951cf --- a/net/ipv4/sysctl_net_ipv4.c +++ b/net/ipv4/sysctl_net_ipv4.c @@@ -34,9 -34,8 +34,9 @@@ static int ip_ttl_min = 1 static int ip_ttl_max = 255; static int tcp_syn_retries_min = 1; static int tcp_syn_retries_max = MAX_TCP_SYNCNT; +static int tcp_syn_linear_timeouts_max = MAX_TCP_SYNCNT; - static int ip_ping_group_range_min[] = { 0, 0 }; - static int ip_ping_group_range_max[] = { GID_T_MAX, GID_T_MAX }; + static unsigned long ip_ping_group_range_min[] = { 0, 0 }; + static unsigned long ip_ping_group_range_max[] = { GID_T_MAX, GID_T_MAX }; static u32 u32_max_div_HZ = UINT_MAX / HZ; static int one_day_secs = 24 * 3600; static u32 fib_multipath_hash_fields_all_mask __maybe_unused = diff --cc net/sched/sch_taprio.c index 3c4c2c3348789,dd7dea2f6e836..5076da103f633 --- a/net/sched/sch_taprio.c +++ b/net/sched/sch_taprio.c @@@ -2456,19 -2388,12 +2456,20 @@@ static int taprio_dump_class_stats(stru __acquires(d->lock) { struct netdev_queue *dev_queue = taprio_queue_get(sch, cl); - struct Qdisc *child = dev_queue->qdisc_sleeping; + struct tc_taprio_qopt_offload offload = { + .cmd = TAPRIO_CMD_TC_STATS, + .tc_stats = { + .tc = cl - 1, + }, + }; ++ struct Qdisc *child; - sch = rtnl_dereference(dev_queue->qdisc_sleeping); - if (gnet_stats_copy_basic(d, NULL, &sch->bstats, true) < 0 || - qdisc_qstats_copy(d, sch) < 0) ++ child = rtnl_dereference(dev_queue->qdisc_sleeping); + if (gnet_stats_copy_basic(d, NULL, &child->bstats, true) < 0 || + qdisc_qstats_copy(d, child) < 0) return -1; - return 0; + + return taprio_dump_xstats(sch, d, &offload, &offload.tc_stats.stats); } static void taprio_walk(struct Qdisc *sch, struct qdisc_walker *arg)