Skip to content

Commit 6e56047

Browse files
committed
tgupdate: merge t/upstream base into t/upstream
2 parents b6eabc4 + 4e997e9 commit 6e56047

File tree

13 files changed

+274
-37
lines changed

13 files changed

+274
-37
lines changed

MAINTAINERS

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22175,7 +22175,7 @@ F: arch/s390/mm
2217522175

2217622176
S390 NETWORK DRIVERS
2217722177
M: Alexandra Winter <[email protected]>
22178-
M: Thorsten Winkler <twinkler@linux.ibm.com>
22178+
R: Aswin Karuvally <aswin@linux.ibm.com>
2217922179
2218022180
2218122181
S: Supported

drivers/net/ethernet/realtek/rtase/rtase.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -241,7 +241,7 @@ union rtase_rx_desc {
241241
#define RTASE_RX_RES BIT(20)
242242
#define RTASE_RX_RUNT BIT(19)
243243
#define RTASE_RX_RWT BIT(18)
244-
#define RTASE_RX_CRC BIT(16)
244+
#define RTASE_RX_CRC BIT(17)
245245
#define RTASE_RX_V6F BIT(31)
246246
#define RTASE_RX_V4F BIT(30)
247247
#define RTASE_RX_UDPT BIT(29)

drivers/net/ethernet/xilinx/xilinx_axienet_main.c

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1160,6 +1160,7 @@ static void axienet_dma_rx_cb(void *data, const struct dmaengine_result *result)
11601160
struct axienet_local *lp = data;
11611161
struct sk_buff *skb;
11621162
u32 *app_metadata;
1163+
int i;
11631164

11641165
skbuf_dma = axienet_get_rx_desc(lp, lp->rx_ring_tail++);
11651166
skb = skbuf_dma->skb;
@@ -1178,7 +1179,10 @@ static void axienet_dma_rx_cb(void *data, const struct dmaengine_result *result)
11781179
u64_stats_add(&lp->rx_packets, 1);
11791180
u64_stats_add(&lp->rx_bytes, rx_len);
11801181
u64_stats_update_end(&lp->rx_stat_sync);
1181-
axienet_rx_submit_desc(lp->ndev);
1182+
1183+
for (i = 0; i < CIRC_SPACE(lp->rx_ring_head, lp->rx_ring_tail,
1184+
RX_BUF_NUM_DEFAULT); i++)
1185+
axienet_rx_submit_desc(lp->ndev);
11821186
dma_async_issue_pending(lp->rx_chan);
11831187
}
11841188

@@ -1457,7 +1461,6 @@ static void axienet_rx_submit_desc(struct net_device *ndev)
14571461
if (!skbuf_dma)
14581462
return;
14591463

1460-
lp->rx_ring_head++;
14611464
skb = netdev_alloc_skb(ndev, lp->max_frm_size);
14621465
if (!skb)
14631466
return;
@@ -1482,6 +1485,7 @@ static void axienet_rx_submit_desc(struct net_device *ndev)
14821485
skbuf_dma->desc = dma_rx_desc;
14831486
dma_rx_desc->callback_param = lp;
14841487
dma_rx_desc->callback_result = axienet_dma_rx_cb;
1488+
lp->rx_ring_head++;
14851489
dmaengine_submit(dma_rx_desc);
14861490

14871491
return;

include/net/sch_generic.h

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1038,12 +1038,17 @@ static inline struct sk_buff *qdisc_dequeue_internal(struct Qdisc *sch, bool dir
10381038
skb = __skb_dequeue(&sch->gso_skb);
10391039
if (skb) {
10401040
sch->q.qlen--;
1041+
qdisc_qstats_backlog_dec(sch, skb);
10411042
return skb;
10421043
}
1043-
if (direct)
1044-
return __qdisc_dequeue_head(&sch->q);
1045-
else
1044+
if (direct) {
1045+
skb = __qdisc_dequeue_head(&sch->q);
1046+
if (skb)
1047+
qdisc_qstats_backlog_dec(sch, skb);
1048+
return skb;
1049+
} else {
10461050
return sch->dequeue(sch);
1051+
}
10471052
}
10481053

10491054
static inline struct sk_buff *qdisc_dequeue_head(struct Qdisc *sch)

net/bridge/br_multicast.c

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4818,6 +4818,14 @@ void br_multicast_set_query_intvl(struct net_bridge_mcast *brmctx,
48184818
intvl_jiffies = BR_MULTICAST_QUERY_INTVL_MIN;
48194819
}
48204820

4821+
if (intvl_jiffies > BR_MULTICAST_QUERY_INTVL_MAX) {
4822+
br_info(brmctx->br,
4823+
"trying to set multicast query interval above maximum, setting to %lu (%ums)\n",
4824+
jiffies_to_clock_t(BR_MULTICAST_QUERY_INTVL_MAX),
4825+
jiffies_to_msecs(BR_MULTICAST_QUERY_INTVL_MAX));
4826+
intvl_jiffies = BR_MULTICAST_QUERY_INTVL_MAX;
4827+
}
4828+
48214829
brmctx->multicast_query_interval = intvl_jiffies;
48224830
}
48234831

@@ -4834,6 +4842,14 @@ void br_multicast_set_startup_query_intvl(struct net_bridge_mcast *brmctx,
48344842
intvl_jiffies = BR_MULTICAST_STARTUP_QUERY_INTVL_MIN;
48354843
}
48364844

4845+
if (intvl_jiffies > BR_MULTICAST_STARTUP_QUERY_INTVL_MAX) {
4846+
br_info(brmctx->br,
4847+
"trying to set multicast startup query interval above maximum, setting to %lu (%ums)\n",
4848+
jiffies_to_clock_t(BR_MULTICAST_STARTUP_QUERY_INTVL_MAX),
4849+
jiffies_to_msecs(BR_MULTICAST_STARTUP_QUERY_INTVL_MAX));
4850+
intvl_jiffies = BR_MULTICAST_STARTUP_QUERY_INTVL_MAX;
4851+
}
4852+
48374853
brmctx->multicast_startup_query_interval = intvl_jiffies;
48384854
}
48394855

net/bridge/br_private.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@
3131
#define BR_MULTICAST_DEFAULT_HASH_MAX 4096
3232
#define BR_MULTICAST_QUERY_INTVL_MIN msecs_to_jiffies(1000)
3333
#define BR_MULTICAST_STARTUP_QUERY_INTVL_MIN BR_MULTICAST_QUERY_INTVL_MIN
34+
#define BR_MULTICAST_QUERY_INTVL_MAX msecs_to_jiffies(86400000) /* 24 hours */
35+
#define BR_MULTICAST_STARTUP_QUERY_INTVL_MAX BR_MULTICAST_QUERY_INTVL_MAX
3436

3537
#define BR_HWDOM_MAX BITS_PER_LONG
3638

net/sched/sch_codel.c

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -101,9 +101,9 @@ static const struct nla_policy codel_policy[TCA_CODEL_MAX + 1] = {
101101
static int codel_change(struct Qdisc *sch, struct nlattr *opt,
102102
struct netlink_ext_ack *extack)
103103
{
104+
unsigned int dropped_pkts = 0, dropped_bytes = 0;
104105
struct codel_sched_data *q = qdisc_priv(sch);
105106
struct nlattr *tb[TCA_CODEL_MAX + 1];
106-
unsigned int qlen, dropped = 0;
107107
int err;
108108

109109
err = nla_parse_nested_deprecated(tb, TCA_CODEL_MAX, opt,
@@ -142,15 +142,17 @@ static int codel_change(struct Qdisc *sch, struct nlattr *opt,
142142
WRITE_ONCE(q->params.ecn,
143143
!!nla_get_u32(tb[TCA_CODEL_ECN]));
144144

145-
qlen = sch->q.qlen;
146145
while (sch->q.qlen > sch->limit) {
147146
struct sk_buff *skb = qdisc_dequeue_internal(sch, true);
148147

149-
dropped += qdisc_pkt_len(skb);
150-
qdisc_qstats_backlog_dec(sch, skb);
148+
if (!skb)
149+
break;
150+
151+
dropped_pkts++;
152+
dropped_bytes += qdisc_pkt_len(skb);
151153
rtnl_qdisc_drop(skb, sch);
152154
}
153-
qdisc_tree_reduce_backlog(sch, qlen - sch->q.qlen, dropped);
155+
qdisc_tree_reduce_backlog(sch, dropped_pkts, dropped_bytes);
154156

155157
sch_tree_unlock(sch);
156158
return 0;

net/sched/sch_fq.c

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1013,11 +1013,11 @@ static int fq_load_priomap(struct fq_sched_data *q,
10131013
static int fq_change(struct Qdisc *sch, struct nlattr *opt,
10141014
struct netlink_ext_ack *extack)
10151015
{
1016+
unsigned int dropped_pkts = 0, dropped_bytes = 0;
10161017
struct fq_sched_data *q = qdisc_priv(sch);
10171018
struct nlattr *tb[TCA_FQ_MAX + 1];
1018-
int err, drop_count = 0;
1019-
unsigned drop_len = 0;
10201019
u32 fq_log;
1020+
int err;
10211021

10221022
err = nla_parse_nested_deprecated(tb, TCA_FQ_MAX, opt, fq_policy,
10231023
NULL);
@@ -1135,16 +1135,18 @@ static int fq_change(struct Qdisc *sch, struct nlattr *opt,
11351135
err = fq_resize(sch, fq_log);
11361136
sch_tree_lock(sch);
11371137
}
1138+
11381139
while (sch->q.qlen > sch->limit) {
11391140
struct sk_buff *skb = qdisc_dequeue_internal(sch, false);
11401141

11411142
if (!skb)
11421143
break;
1143-
drop_len += qdisc_pkt_len(skb);
1144+
1145+
dropped_pkts++;
1146+
dropped_bytes += qdisc_pkt_len(skb);
11441147
rtnl_kfree_skbs(skb, skb);
1145-
drop_count++;
11461148
}
1147-
qdisc_tree_reduce_backlog(sch, drop_count, drop_len);
1149+
qdisc_tree_reduce_backlog(sch, dropped_pkts, dropped_bytes);
11481150

11491151
sch_tree_unlock(sch);
11501152
return err;

net/sched/sch_fq_codel.c

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -366,6 +366,7 @@ static const struct nla_policy fq_codel_policy[TCA_FQ_CODEL_MAX + 1] = {
366366
static int fq_codel_change(struct Qdisc *sch, struct nlattr *opt,
367367
struct netlink_ext_ack *extack)
368368
{
369+
unsigned int dropped_pkts = 0, dropped_bytes = 0;
369370
struct fq_codel_sched_data *q = qdisc_priv(sch);
370371
struct nlattr *tb[TCA_FQ_CODEL_MAX + 1];
371372
u32 quantum = 0;
@@ -443,13 +444,14 @@ static int fq_codel_change(struct Qdisc *sch, struct nlattr *opt,
443444
q->memory_usage > q->memory_limit) {
444445
struct sk_buff *skb = qdisc_dequeue_internal(sch, false);
445446

446-
q->cstats.drop_len += qdisc_pkt_len(skb);
447+
if (!skb)
448+
break;
449+
450+
dropped_pkts++;
451+
dropped_bytes += qdisc_pkt_len(skb);
447452
rtnl_kfree_skbs(skb, skb);
448-
q->cstats.drop_count++;
449453
}
450-
qdisc_tree_reduce_backlog(sch, q->cstats.drop_count, q->cstats.drop_len);
451-
q->cstats.drop_count = 0;
452-
q->cstats.drop_len = 0;
454+
qdisc_tree_reduce_backlog(sch, dropped_pkts, dropped_bytes);
453455

454456
sch_tree_unlock(sch);
455457
return 0;

net/sched/sch_fq_pie.c

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -287,10 +287,9 @@ static struct sk_buff *fq_pie_qdisc_dequeue(struct Qdisc *sch)
287287
static int fq_pie_change(struct Qdisc *sch, struct nlattr *opt,
288288
struct netlink_ext_ack *extack)
289289
{
290+
unsigned int dropped_pkts = 0, dropped_bytes = 0;
290291
struct fq_pie_sched_data *q = qdisc_priv(sch);
291292
struct nlattr *tb[TCA_FQ_PIE_MAX + 1];
292-
unsigned int len_dropped = 0;
293-
unsigned int num_dropped = 0;
294293
int err;
295294

296295
err = nla_parse_nested(tb, TCA_FQ_PIE_MAX, opt, fq_pie_policy, extack);
@@ -368,11 +367,14 @@ static int fq_pie_change(struct Qdisc *sch, struct nlattr *opt,
368367
while (sch->q.qlen > sch->limit) {
369368
struct sk_buff *skb = qdisc_dequeue_internal(sch, false);
370369

371-
len_dropped += qdisc_pkt_len(skb);
372-
num_dropped += 1;
370+
if (!skb)
371+
break;
372+
373+
dropped_pkts++;
374+
dropped_bytes += qdisc_pkt_len(skb);
373375
rtnl_kfree_skbs(skb, skb);
374376
}
375-
qdisc_tree_reduce_backlog(sch, num_dropped, len_dropped);
377+
qdisc_tree_reduce_backlog(sch, dropped_pkts, dropped_bytes);
376378

377379
sch_tree_unlock(sch);
378380
return 0;

0 commit comments

Comments
 (0)