1
1

kernel: bump 6.18 to 6.18.33

Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.18.33

Removed upstreamed:
  generic/backport-6.18/742-v7.1-r8152-fix-incorrect-register-write-to-USB_UPHY_XTAL.patch[1]
  generic/backport-6.18/827-v7.0-crypto-inside-secure-eip93-fix-register-definition.patch[2]
  generic/backport-6.18/828-v7.0-crypto-inside-secure-eip93-register-hash-before-auth.patch[3]
  generic/backport-6.18/940-v7.1-net-dsa-realtek-rtl8365mb-fix-mode-mask-calculation.patch[4]
  generic/pending-6.18/928-crypto-eip93-fix-hmac-setkey-algo-selection.patch[5]

All other patches automatically rebased via update_kernel.sh

1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.18.33&id=50c601805fe3
2. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.18.33&id=7ed07c9ce525
3. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.18.33&id=b6263eb2b188
4. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.18.33&id=b707f3109f1a
5. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.18.33&id=fc9310d79fdb

Build system: x86/64
Build-tested: x86/64-glibc
Run-tested: x86/64-glibc

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/23419
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
This commit is contained in:
John Audia 2026-05-23 11:46:33 -04:00 committed by Hauke Mehrtens
parent fc6e17e8e5
commit 17f5538441
38 changed files with 111 additions and 345 deletions

View File

@ -760,7 +760,7 @@ SVN-Revision: 35130
EXPORT_SYMBOL(xfrm_parse_spi); EXPORT_SYMBOL(xfrm_parse_spi);
--- a/net/ipv4/tcp_input.c --- a/net/ipv4/tcp_input.c
+++ b/net/ipv4/tcp_input.c +++ b/net/ipv4/tcp_input.c
@@ -4413,14 +4413,16 @@ static bool tcp_parse_aligned_timestamp( @@ -4419,14 +4419,16 @@ static bool tcp_parse_aligned_timestamp(
{ {
const __be32 *ptr = (const __be32 *)(th + 1); const __be32 *ptr = (const __be32 *)(th + 1);

View File

@ -19,7 +19,7 @@ Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
--- a/drivers/mtd/nand/spi/core.c --- a/drivers/mtd/nand/spi/core.c
+++ b/drivers/mtd/nand/spi/core.c +++ b/drivers/mtd/nand/spi/core.c
@@ -1235,6 +1235,7 @@ static const struct nand_ops spinand_ops @@ -1226,6 +1226,7 @@ static const struct nand_ops spinand_ops
static const struct spinand_manufacturer *spinand_manufacturers[] = { static const struct spinand_manufacturer *spinand_manufacturers[] = {
&alliancememory_spinand_manufacturer, &alliancememory_spinand_manufacturer,
&ato_spinand_manufacturer, &ato_spinand_manufacturer,
@ -74,7 +74,7 @@ Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
.name = "ESMT", .name = "ESMT",
--- a/include/linux/mtd/spinand.h --- a/include/linux/mtd/spinand.h
+++ b/include/linux/mtd/spinand.h +++ b/include/linux/mtd/spinand.h
@@ -354,6 +354,7 @@ struct spinand_manufacturer { @@ -360,6 +360,7 @@ struct spinand_manufacturer {
/* SPI NAND manufacturers */ /* SPI NAND manufacturers */
extern const struct spinand_manufacturer alliancememory_spinand_manufacturer; extern const struct spinand_manufacturer alliancememory_spinand_manufacturer;
extern const struct spinand_manufacturer ato_spinand_manufacturer; extern const struct spinand_manufacturer ato_spinand_manufacturer;

View File

@ -22,7 +22,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
--- a/drivers/net/ppp/ppp_generic.c --- a/drivers/net/ppp/ppp_generic.c
+++ b/drivers/net/ppp/ppp_generic.c +++ b/drivers/net/ppp/ppp_generic.c
@@ -1641,6 +1641,8 @@ static void ppp_setup(struct net_device @@ -1644,6 +1644,8 @@ static void ppp_setup(struct net_device
dev->flags = IFF_POINTOPOINT | IFF_NOARP | IFF_MULTICAST; dev->flags = IFF_POINTOPOINT | IFF_NOARP | IFF_MULTICAST;
dev->priv_destructor = ppp_dev_priv_destructor; dev->priv_destructor = ppp_dev_priv_destructor;
dev->pcpu_stat_type = NETDEV_PCPU_STAT_TSTATS; dev->pcpu_stat_type = NETDEV_PCPU_STAT_TSTATS;
@ -31,7 +31,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
netif_keep_dst(dev); netif_keep_dst(dev);
} }
@@ -1710,6 +1712,10 @@ pad_compress_skb(struct ppp *ppp, struct @@ -1713,6 +1715,10 @@ pad_compress_skb(struct ppp *ppp, struct
ppp->xcomp->comp_extra + ppp->dev->hard_header_len; ppp->xcomp->comp_extra + ppp->dev->hard_header_len;
int compressor_skb_size = ppp->dev->mtu + int compressor_skb_size = ppp->dev->mtu +
ppp->xcomp->comp_extra + PPP_HDRLEN; ppp->xcomp->comp_extra + PPP_HDRLEN;
@ -42,7 +42,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
new_skb = alloc_skb(new_skb_size, GFP_ATOMIC); new_skb = alloc_skb(new_skb_size, GFP_ATOMIC);
if (!new_skb) { if (!new_skb) {
if (net_ratelimit()) if (net_ratelimit())
@@ -1797,6 +1803,10 @@ ppp_send_frame(struct ppp *ppp, struct s @@ -1800,6 +1806,10 @@ ppp_send_frame(struct ppp *ppp, struct s
case PPP_IP: case PPP_IP:
if (!ppp->vj || (ppp->flags & SC_COMP_TCP) == 0) if (!ppp->vj || (ppp->flags & SC_COMP_TCP) == 0)
break; break;
@ -53,7 +53,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
/* try to do VJ TCP header compression */ /* try to do VJ TCP header compression */
new_skb = alloc_skb(skb->len + ppp->dev->hard_header_len - 2, new_skb = alloc_skb(skb->len + ppp->dev->hard_header_len - 2,
GFP_ATOMIC); GFP_ATOMIC);
@@ -1894,19 +1904,26 @@ ppp_push(struct ppp *ppp) @@ -1897,19 +1907,26 @@ ppp_push(struct ppp *ppp)
} }
if ((ppp->flags & SC_MULTILINK) == 0) { if ((ppp->flags & SC_MULTILINK) == 0) {
@ -85,7 +85,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
spin_unlock(&pch->downl); spin_unlock(&pch->downl);
return; return;
} }
@@ -1991,6 +2008,8 @@ static int ppp_mp_explode(struct ppp *pp @@ -1994,6 +2011,8 @@ static int ppp_mp_explode(struct ppp *pp
return 0; /* can't take now, leave it in xmit_pending */ return 0; /* can't take now, leave it in xmit_pending */
/* Do protocol field compression */ /* Do protocol field compression */
@ -94,7 +94,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
p = skb->data; p = skb->data;
len = skb->len; len = skb->len;
if (*p == 0 && mp_protocol_compress) { if (*p == 0 && mp_protocol_compress) {
@@ -2149,6 +2168,7 @@ static int ppp_mp_explode(struct ppp *pp @@ -2152,6 +2171,7 @@ static int ppp_mp_explode(struct ppp *pp
noskb: noskb:
spin_unlock(&pch->downl); spin_unlock(&pch->downl);

View File

@ -32,8 +32,8 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
#include <linux/uaccess.h> #include <linux/uaccess.h>
@@ -434,7 +435,7 @@ static int pppoe_rcv(struct sk_buff *skb @@ -440,7 +441,7 @@ static int pppoe_rcv(struct sk_buff *skb
if (skb->len < len) if (ppp_skb_is_compressed_proto(skb))
goto drop; goto drop;
- if (pskb_trim_rcsum(skb, len)) - if (pskb_trim_rcsum(skb, len))
@ -41,7 +41,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
goto drop; goto drop;
ph = pppoe_hdr(skb); ph = pppoe_hdr(skb);
@@ -1176,6 +1177,160 @@ static struct pernet_operations pppoe_ne @@ -1182,6 +1183,160 @@ static struct pernet_operations pppoe_ne
.size = sizeof(struct pppoe_net), .size = sizeof(struct pppoe_net),
}; };
@ -202,7 +202,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
static int __init pppoe_init(void) static int __init pppoe_init(void)
{ {
int err; int err;
@@ -1192,6 +1347,8 @@ static int __init pppoe_init(void) @@ -1198,6 +1353,8 @@ static int __init pppoe_init(void)
if (err) if (err)
goto out_unregister_pppoe_proto; goto out_unregister_pppoe_proto;
@ -211,7 +211,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
dev_add_pack(&pppoes_ptype); dev_add_pack(&pppoes_ptype);
dev_add_pack(&pppoed_ptype); dev_add_pack(&pppoed_ptype);
register_netdevice_notifier(&pppoe_notifier); register_netdevice_notifier(&pppoe_notifier);
@@ -1211,6 +1368,8 @@ static void __exit pppoe_exit(void) @@ -1217,6 +1374,8 @@ static void __exit pppoe_exit(void)
unregister_netdevice_notifier(&pppoe_notifier); unregister_netdevice_notifier(&pppoe_notifier);
dev_remove_pack(&pppoed_ptype); dev_remove_pack(&pppoed_ptype);
dev_remove_pack(&pppoes_ptype); dev_remove_pack(&pppoes_ptype);

View File

@ -135,7 +135,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
} }
@@ -1592,7 +1596,7 @@ static unsigned int cake_drop(struct Qdi @@ -1592,7 +1596,7 @@ static unsigned int cake_drop(struct Qdi
flow->dropped++; flow->dropped++;
b->tin_dropped++; WRITE_ONCE(b->tin_dropped, b->tin_dropped + 1);
- if (q->rate_flags & CAKE_FLAG_INGRESS) - if (q->rate_flags & CAKE_FLAG_INGRESS)
+ if (q->config->rate_flags & CAKE_FLAG_INGRESS) + if (q->config->rate_flags & CAKE_FLAG_INGRESS)
@ -326,7 +326,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
goto retry; goto retry;
} }
@@ -2317,7 +2322,7 @@ static int cake_config_besteffort(struct @@ -2320,7 +2325,7 @@ static int cake_config_besteffort(struct
struct cake_sched_data *q = qdisc_priv(sch); struct cake_sched_data *q = qdisc_priv(sch);
struct cake_tin_data *b = &q->tins[0]; struct cake_tin_data *b = &q->tins[0];
u32 mtu = psched_mtu(qdisc_dev(sch)); u32 mtu = psched_mtu(qdisc_dev(sch));
@ -335,7 +335,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
q->tin_cnt = 1; q->tin_cnt = 1;
@@ -2325,7 +2330,7 @@ static int cake_config_besteffort(struct @@ -2328,7 +2333,7 @@ static int cake_config_besteffort(struct
q->tin_order = normal_order; q->tin_order = normal_order;
cake_set_rate(b, rate, mtu, cake_set_rate(b, rate, mtu,
@ -344,7 +344,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
b->tin_quantum = 65535; b->tin_quantum = 65535;
return 0; return 0;
@@ -2336,7 +2341,7 @@ static int cake_config_precedence(struct @@ -2339,7 +2344,7 @@ static int cake_config_precedence(struct
/* convert high-level (user visible) parameters into internal format */ /* convert high-level (user visible) parameters into internal format */
struct cake_sched_data *q = qdisc_priv(sch); struct cake_sched_data *q = qdisc_priv(sch);
u32 mtu = psched_mtu(qdisc_dev(sch)); u32 mtu = psched_mtu(qdisc_dev(sch));
@ -353,7 +353,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
u32 quantum = 256; u32 quantum = 256;
u32 i; u32 i;
@@ -2347,8 +2352,8 @@ static int cake_config_precedence(struct @@ -2350,8 +2355,8 @@ static int cake_config_precedence(struct
for (i = 0; i < q->tin_cnt; i++) { for (i = 0; i < q->tin_cnt; i++) {
struct cake_tin_data *b = &q->tins[i]; struct cake_tin_data *b = &q->tins[i];
@ -364,7 +364,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
b->tin_quantum = max_t(u16, 1U, quantum); b->tin_quantum = max_t(u16, 1U, quantum);
@@ -2425,7 +2430,7 @@ static int cake_config_diffserv8(struct @@ -2428,7 +2433,7 @@ static int cake_config_diffserv8(struct
struct cake_sched_data *q = qdisc_priv(sch); struct cake_sched_data *q = qdisc_priv(sch);
u32 mtu = psched_mtu(qdisc_dev(sch)); u32 mtu = psched_mtu(qdisc_dev(sch));
@ -373,7 +373,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
u32 quantum = 256; u32 quantum = 256;
u32 i; u32 i;
@@ -2439,8 +2444,8 @@ static int cake_config_diffserv8(struct @@ -2442,8 +2447,8 @@ static int cake_config_diffserv8(struct
for (i = 0; i < q->tin_cnt; i++) { for (i = 0; i < q->tin_cnt; i++) {
struct cake_tin_data *b = &q->tins[i]; struct cake_tin_data *b = &q->tins[i];
@ -384,7 +384,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
b->tin_quantum = max_t(u16, 1U, quantum); b->tin_quantum = max_t(u16, 1U, quantum);
@@ -2469,7 +2474,7 @@ static int cake_config_diffserv4(struct @@ -2472,7 +2477,7 @@ static int cake_config_diffserv4(struct
struct cake_sched_data *q = qdisc_priv(sch); struct cake_sched_data *q = qdisc_priv(sch);
u32 mtu = psched_mtu(qdisc_dev(sch)); u32 mtu = psched_mtu(qdisc_dev(sch));
@ -393,7 +393,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
u32 quantum = 1024; u32 quantum = 1024;
q->tin_cnt = 4; q->tin_cnt = 4;
@@ -2480,13 +2485,13 @@ static int cake_config_diffserv4(struct @@ -2483,13 +2488,13 @@ static int cake_config_diffserv4(struct
/* class characteristics */ /* class characteristics */
cake_set_rate(&q->tins[0], rate, mtu, cake_set_rate(&q->tins[0], rate, mtu,
@ -411,7 +411,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
/* bandwidth-sharing weights */ /* bandwidth-sharing weights */
q->tins[0].tin_quantum = quantum; q->tins[0].tin_quantum = quantum;
@@ -2506,7 +2511,7 @@ static int cake_config_diffserv3(struct @@ -2509,7 +2514,7 @@ static int cake_config_diffserv3(struct
*/ */
struct cake_sched_data *q = qdisc_priv(sch); struct cake_sched_data *q = qdisc_priv(sch);
u32 mtu = psched_mtu(qdisc_dev(sch)); u32 mtu = psched_mtu(qdisc_dev(sch));
@ -420,7 +420,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
u32 quantum = 1024; u32 quantum = 1024;
q->tin_cnt = 3; q->tin_cnt = 3;
@@ -2517,11 +2522,11 @@ static int cake_config_diffserv3(struct @@ -2520,11 +2525,11 @@ static int cake_config_diffserv3(struct
/* class characteristics */ /* class characteristics */
cake_set_rate(&q->tins[0], rate, mtu, cake_set_rate(&q->tins[0], rate, mtu,
@ -435,7 +435,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
/* bandwidth-sharing weights */ /* bandwidth-sharing weights */
q->tins[0].tin_quantum = quantum; q->tins[0].tin_quantum = quantum;
@@ -2533,7 +2538,8 @@ static int cake_config_diffserv3(struct @@ -2536,7 +2541,8 @@ static int cake_config_diffserv3(struct
static void cake_reconfigure(struct Qdisc *sch) static void cake_reconfigure(struct Qdisc *sch)
{ {
@ -445,7 +445,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
int c, ft; int c, ft;
switch (q->tin_mode) { switch (q->tin_mode) {
@@ -2559,36 +2565,37 @@ static void cake_reconfigure(struct Qdis @@ -2562,36 +2568,37 @@ static void cake_reconfigure(struct Qdis
break; break;
} }
@ -494,7 +494,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
struct nlattr *tb[TCA_CAKE_MAX + 1]; struct nlattr *tb[TCA_CAKE_MAX + 1];
u16 rate_flags; u16 rate_flags;
u8 flow_mode; u8 flow_mode;
@@ -2642,19 +2649,19 @@ static int cake_change(struct Qdisc *sch @@ -2645,19 +2652,19 @@ static int cake_change(struct Qdisc *sch
nla_get_s32(tb[TCA_CAKE_OVERHEAD])); nla_get_s32(tb[TCA_CAKE_OVERHEAD]));
rate_flags |= CAKE_FLAG_OVERHEAD; rate_flags |= CAKE_FLAG_OVERHEAD;
@ -522,7 +522,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
} }
if (tb[TCA_CAKE_MPU]) if (tb[TCA_CAKE_MPU])
@@ -2710,7 +2717,7 @@ static int cake_change(struct Qdisc *sch @@ -2713,7 +2720,7 @@ static int cake_change(struct Qdisc *sch
WRITE_ONCE(q->rate_flags, rate_flags); WRITE_ONCE(q->rate_flags, rate_flags);
WRITE_ONCE(q->flow_mode, flow_mode); WRITE_ONCE(q->flow_mode, flow_mode);
@ -531,7 +531,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
sch_tree_lock(sch); sch_tree_lock(sch);
cake_reconfigure(sch); cake_reconfigure(sch);
sch_tree_unlock(sch); sch_tree_unlock(sch);
@@ -2726,14 +2733,20 @@ static void cake_destroy(struct Qdisc *s @@ -2729,14 +2736,20 @@ static void cake_destroy(struct Qdisc *s
qdisc_watchdog_cancel(&q->watchdog); qdisc_watchdog_cancel(&q->watchdog);
tcf_block_put(q->block); tcf_block_put(q->block);
kvfree(q->tins); kvfree(q->tins);
@ -553,7 +553,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
sch->limit = 10240; sch->limit = 10240;
q->tin_mode = CAKE_DIFFSERV_DIFFSERV3; q->tin_mode = CAKE_DIFFSERV_DIFFSERV3;
q->flow_mode = CAKE_FLOW_TRIPLE; q->flow_mode = CAKE_FLOW_TRIPLE;
@@ -2745,33 +2758,36 @@ static int cake_init(struct Qdisc *sch, @@ -2748,33 +2761,36 @@ static int cake_init(struct Qdisc *sch,
* for 5 to 10% of interval * for 5 to 10% of interval
*/ */
q->rate_flags |= CAKE_FLAG_SPLIT_GSO; q->rate_flags |= CAKE_FLAG_SPLIT_GSO;
@ -601,7 +601,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
INIT_LIST_HEAD(&b->new_flows); INIT_LIST_HEAD(&b->new_flows);
INIT_LIST_HEAD(&b->old_flows); INIT_LIST_HEAD(&b->old_flows);
@@ -2787,22 +2803,27 @@ static int cake_init(struct Qdisc *sch, @@ -2790,22 +2806,27 @@ static int cake_init(struct Qdisc *sch,
INIT_LIST_HEAD(&flow->flowchain); INIT_LIST_HEAD(&flow->flowchain);
cobalt_vars_init(&flow->cvars); cobalt_vars_init(&flow->cvars);

View File

@ -32,7 +32,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
#include <net/pkt_cls.h> #include <net/pkt_cls.h>
#include <net/tcp.h> #include <net/tcp.h>
#include <net/flow_dissector.h> #include <net/flow_dissector.h>
@@ -3160,14 +3161,89 @@ static struct Qdisc_ops cake_qdisc_ops _ @@ -3163,14 +3164,89 @@ static struct Qdisc_ops cake_qdisc_ops _
}; };
MODULE_ALIAS_NET_SCH("cake"); MODULE_ALIAS_NET_SCH("cake");
@ -123,7 +123,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
} }
module_init(cake_module_init) module_init(cake_module_init)
@@ -3175,3 +3251,4 @@ module_exit(cake_module_exit) @@ -3178,3 +3254,4 @@ module_exit(cake_module_exit)
MODULE_AUTHOR("Jonathan Morton"); MODULE_AUTHOR("Jonathan Morton");
MODULE_LICENSE("Dual BSD/GPL"); MODULE_LICENSE("Dual BSD/GPL");
MODULE_DESCRIPTION("The CAKE shaper."); MODULE_DESCRIPTION("The CAKE shaper.");

View File

@ -27,7 +27,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
}; };
struct cake_sched_data { struct cake_sched_data {
@@ -2592,14 +2593,12 @@ static void cake_reconfigure(struct Qdis @@ -2595,14 +2596,12 @@ static void cake_reconfigure(struct Qdis
q->buffer_config_limit)); q->buffer_config_limit));
} }
@ -46,7 +46,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
int err; int err;
err = nla_parse_nested_deprecated(tb, TCA_CAKE_MAX, opt, cake_policy, err = nla_parse_nested_deprecated(tb, TCA_CAKE_MAX, opt, cake_policy,
@@ -2607,7 +2606,6 @@ static int cake_change(struct Qdisc *sch @@ -2610,7 +2609,6 @@ static int cake_change(struct Qdisc *sch
if (err < 0) if (err < 0)
return err; return err;
@ -54,7 +54,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
if (tb[TCA_CAKE_NAT]) { if (tb[TCA_CAKE_NAT]) {
#if IS_ENABLED(CONFIG_NF_CONNTRACK) #if IS_ENABLED(CONFIG_NF_CONNTRACK)
flow_mode &= ~CAKE_FLOW_NAT_FLAG; flow_mode &= ~CAKE_FLOW_NAT_FLAG;
@@ -2620,6 +2618,19 @@ static int cake_change(struct Qdisc *sch @@ -2623,6 +2621,19 @@ static int cake_change(struct Qdisc *sch
#endif #endif
} }
@ -74,7 +74,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
if (tb[TCA_CAKE_BASE_RATE64]) if (tb[TCA_CAKE_BASE_RATE64])
WRITE_ONCE(q->rate_bps, WRITE_ONCE(q->rate_bps,
nla_get_u64(tb[TCA_CAKE_BASE_RATE64])); nla_get_u64(tb[TCA_CAKE_BASE_RATE64]));
@@ -2628,7 +2639,6 @@ static int cake_change(struct Qdisc *sch @@ -2631,7 +2642,6 @@ static int cake_change(struct Qdisc *sch
WRITE_ONCE(q->tin_mode, WRITE_ONCE(q->tin_mode,
nla_get_u32(tb[TCA_CAKE_DIFFSERV_MODE])); nla_get_u32(tb[TCA_CAKE_DIFFSERV_MODE]));
@ -82,7 +82,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
if (tb[TCA_CAKE_WASH]) { if (tb[TCA_CAKE_WASH]) {
if (!!nla_get_u32(tb[TCA_CAKE_WASH])) if (!!nla_get_u32(tb[TCA_CAKE_WASH]))
rate_flags |= CAKE_FLAG_WASH; rate_flags |= CAKE_FLAG_WASH;
@@ -2649,20 +2659,12 @@ static int cake_change(struct Qdisc *sch @@ -2652,20 +2662,12 @@ static int cake_change(struct Qdisc *sch
WRITE_ONCE(q->rate_overhead, WRITE_ONCE(q->rate_overhead,
nla_get_s32(tb[TCA_CAKE_OVERHEAD])); nla_get_s32(tb[TCA_CAKE_OVERHEAD]));
rate_flags |= CAKE_FLAG_OVERHEAD; rate_flags |= CAKE_FLAG_OVERHEAD;
@ -105,7 +105,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
} }
if (tb[TCA_CAKE_MPU]) if (tb[TCA_CAKE_MPU])
@@ -2681,13 +2683,6 @@ static int cake_change(struct Qdisc *sch @@ -2684,13 +2686,6 @@ static int cake_change(struct Qdisc *sch
WRITE_ONCE(q->target, max(target, 1U)); WRITE_ONCE(q->target, max(target, 1U));
} }
@ -119,7 +119,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
if (tb[TCA_CAKE_INGRESS]) { if (tb[TCA_CAKE_INGRESS]) {
if (!!nla_get_u32(tb[TCA_CAKE_INGRESS])) if (!!nla_get_u32(tb[TCA_CAKE_INGRESS]))
rate_flags |= CAKE_FLAG_INGRESS; rate_flags |= CAKE_FLAG_INGRESS;
@@ -2718,6 +2713,34 @@ static int cake_change(struct Qdisc *sch @@ -2721,6 +2716,34 @@ static int cake_change(struct Qdisc *sch
WRITE_ONCE(q->rate_flags, rate_flags); WRITE_ONCE(q->rate_flags, rate_flags);
WRITE_ONCE(q->flow_mode, flow_mode); WRITE_ONCE(q->flow_mode, flow_mode);
@ -154,7 +154,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
if (qd->tins) { if (qd->tins) {
sch_tree_lock(sch); sch_tree_lock(sch);
cake_reconfigure(sch); cake_reconfigure(sch);
@@ -2734,7 +2757,23 @@ static void cake_destroy(struct Qdisc *s @@ -2737,7 +2760,23 @@ static void cake_destroy(struct Qdisc *s
qdisc_watchdog_cancel(&q->watchdog); qdisc_watchdog_cancel(&q->watchdog);
tcf_block_put(q->block); tcf_block_put(q->block);
kvfree(q->tins); kvfree(q->tins);
@ -179,7 +179,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
} }
static int cake_init(struct Qdisc *sch, struct nlattr *opt, static int cake_init(struct Qdisc *sch, struct nlattr *opt,
@@ -2748,17 +2787,9 @@ static int cake_init(struct Qdisc *sch, @@ -2751,17 +2790,9 @@ static int cake_init(struct Qdisc *sch,
if (!q) if (!q)
return -ENOMEM; return -ENOMEM;
@ -199,7 +199,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
qd->cur_tin = 0; qd->cur_tin = 0;
qd->cur_flow = 0; qd->cur_flow = 0;
qd->config = q; qd->config = q;
@@ -2821,10 +2852,21 @@ err: @@ -2824,10 +2855,21 @@ err:
return err; return err;
} }
@ -222,7 +222,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
struct nlattr *opts; struct nlattr *opts;
u16 rate_flags; u16 rate_flags;
u8 flow_mode; u8 flow_mode;
@@ -2900,6 +2942,13 @@ nla_put_failure: @@ -2903,6 +2945,13 @@ nla_put_failure:
return -1; return -1;
} }
@ -236,7 +236,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
static int cake_dump_stats(struct Qdisc *sch, struct gnet_dump *d) static int cake_dump_stats(struct Qdisc *sch, struct gnet_dump *d)
{ {
struct nlattr *stats = nla_nest_start_noflag(d->skb, TCA_STATS_APP); struct nlattr *stats = nla_nest_start_noflag(d->skb, TCA_STATS_APP);
@@ -3163,6 +3212,7 @@ MODULE_ALIAS_NET_SCH("cake"); @@ -3166,6 +3215,7 @@ MODULE_ALIAS_NET_SCH("cake");
struct cake_mq_sched { struct cake_mq_sched {
struct mq_sched mq_priv; /* must be first */ struct mq_sched mq_priv; /* must be first */
@ -244,7 +244,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
}; };
static void cake_mq_destroy(struct Qdisc *sch) static void cake_mq_destroy(struct Qdisc *sch)
@@ -3173,25 +3223,68 @@ static void cake_mq_destroy(struct Qdisc @@ -3176,25 +3226,68 @@ static void cake_mq_destroy(struct Qdisc
static int cake_mq_init(struct Qdisc *sch, struct nlattr *opt, static int cake_mq_init(struct Qdisc *sch, struct nlattr *opt,
struct netlink_ext_ack *extack) struct netlink_ext_ack *extack)
{ {

View File

@ -131,13 +131,13 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
return NULL; return NULL;
@@ -2208,6 +2250,7 @@ retry: @@ -2208,6 +2250,7 @@ retry:
b->tin_ecn_mark += !!flow->cvars.ecn_marked; WRITE_ONCE(b->tin_ecn_mark, b->tin_ecn_mark + !!flow->cvars.ecn_marked);
qdisc_bstats_update(sch, skb); qdisc_bstats_update(sch, skb);
+ WRITE_ONCE(q->last_active, now); + WRITE_ONCE(q->last_active, now);
/* collect delay stats */ /* collect delay stats */
delay = ktime_to_ns(ktime_sub(now, cobalt_get_enqueue_time(skb))); delay = ktime_to_ns(ktime_sub(now, cobalt_get_enqueue_time(skb)));
@@ -2308,6 +2351,9 @@ static void cake_set_rate(struct cake_ti @@ -2310,6 +2353,9 @@ static void cake_set_rate(struct cake_ti
b->tin_rate_ns = rate_ns; b->tin_rate_ns = rate_ns;
b->tin_rate_shft = rate_shft; b->tin_rate_shft = rate_shft;
@ -146,8 +146,8 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
+ +
byte_target_ns = (byte_target * rate_ns) >> rate_shft; byte_target_ns = (byte_target * rate_ns) >> rate_shft;
b->cparams.target = max((byte_target_ns * 3) / 2, target_ns); WRITE_ONCE(b->cparams.target,
@@ -2774,6 +2820,7 @@ static void cake_config_init(struct cake @@ -2777,6 +2823,7 @@ static void cake_config_init(struct cake
*/ */
q->rate_flags |= CAKE_FLAG_SPLIT_GSO; q->rate_flags |= CAKE_FLAG_SPLIT_GSO;
q->is_shared = is_shared; q->is_shared = is_shared;
@ -155,7 +155,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
} }
static int cake_init(struct Qdisc *sch, struct nlattr *opt, static int cake_init(struct Qdisc *sch, struct nlattr *opt,
@@ -2845,6 +2892,9 @@ static int cake_init(struct Qdisc *sch, @@ -2848,6 +2895,9 @@ static int cake_init(struct Qdisc *sch,
qd->avg_peak_bandwidth = q->rate_bps; qd->avg_peak_bandwidth = q->rate_bps;
qd->min_netlen = ~0; qd->min_netlen = ~0;
qd->min_adjlen = ~0; qd->min_adjlen = ~0;
@ -165,7 +165,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
return 0; return 0;
err: err:
kvfree(qd->config); kvfree(qd->config);
@@ -2977,6 +3027,7 @@ static int cake_dump_stats(struct Qdisc @@ -2980,6 +3030,7 @@ static int cake_dump_stats(struct Qdisc
PUT_STAT_U32(MAX_ADJLEN, q->max_adjlen); PUT_STAT_U32(MAX_ADJLEN, q->max_adjlen);
PUT_STAT_U32(MIN_NETLEN, q->min_netlen); PUT_STAT_U32(MIN_NETLEN, q->min_netlen);
PUT_STAT_U32(MIN_ADJLEN, q->min_adjlen); PUT_STAT_U32(MIN_ADJLEN, q->min_adjlen);

View File

@ -33,7 +33,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
struct cake_heap_entry overflow_heap[CAKE_QUEUES * CAKE_MAX_TINS]; struct cake_heap_entry overflow_heap[CAKE_QUEUES * CAKE_MAX_TINS];
@@ -2803,8 +2804,6 @@ static void cake_destroy(struct Qdisc *s @@ -2806,8 +2807,6 @@ static void cake_destroy(struct Qdisc *s
qdisc_watchdog_cancel(&q->watchdog); qdisc_watchdog_cancel(&q->watchdog);
tcf_block_put(q->block); tcf_block_put(q->block);
kvfree(q->tins); kvfree(q->tins);
@ -42,7 +42,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
} }
static void cake_config_init(struct cake_sched_config *q, bool is_shared) static void cake_config_init(struct cake_sched_config *q, bool is_shared)
@@ -2827,13 +2826,9 @@ static int cake_init(struct Qdisc *sch, @@ -2830,13 +2829,9 @@ static int cake_init(struct Qdisc *sch,
struct netlink_ext_ack *extack) struct netlink_ext_ack *extack)
{ {
struct cake_sched_data *qd = qdisc_priv(sch); struct cake_sched_data *qd = qdisc_priv(sch);
@ -57,7 +57,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
cake_config_init(q, false); cake_config_init(q, false);
sch->limit = 10240; sch->limit = 10240;
@@ -2845,14 +2840,13 @@ static int cake_init(struct Qdisc *sch, @@ -2848,14 +2843,13 @@ static int cake_init(struct Qdisc *sch,
if (opt) { if (opt) {
err = cake_change(sch, opt, extack); err = cake_change(sch, opt, extack);
@ -74,7 +74,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
quantum_div[0] = ~0; quantum_div[0] = ~0;
for (i = 1; i <= CAKE_QUEUES; i++) for (i = 1; i <= CAKE_QUEUES; i++)
@@ -2860,10 +2854,8 @@ static int cake_init(struct Qdisc *sch, @@ -2863,10 +2857,8 @@ static int cake_init(struct Qdisc *sch,
qd->tins = kvcalloc(CAKE_MAX_TINS, sizeof(struct cake_tin_data), qd->tins = kvcalloc(CAKE_MAX_TINS, sizeof(struct cake_tin_data),
GFP_KERNEL); GFP_KERNEL);
@ -87,7 +87,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
for (i = 0; i < CAKE_MAX_TINS; i++) { for (i = 0; i < CAKE_MAX_TINS; i++) {
struct cake_tin_data *b = qd->tins + i; struct cake_tin_data *b = qd->tins + i;
@@ -2896,22 +2888,13 @@ static int cake_init(struct Qdisc *sch, @@ -2899,22 +2891,13 @@ static int cake_init(struct Qdisc *sch,
qd->last_checked_active = 0; qd->last_checked_active = 0;
return 0; return 0;

View File

@ -48,7 +48,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
} }
begin: begin:
@@ -2367,12 +2364,10 @@ static void cake_set_rate(struct cake_ti @@ -2370,12 +2367,10 @@ static void cake_set_rate(struct cake_ti
b->cparams.p_dec = 1 << 20; /* 1/4096 */ b->cparams.p_dec = 1 << 20; /* 1/4096 */
} }
@ -62,7 +62,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
q->tin_cnt = 1; q->tin_cnt = 1;
@@ -2386,12 +2381,10 @@ static int cake_config_besteffort(struct @@ -2389,12 +2384,10 @@ static int cake_config_besteffort(struct
return 0; return 0;
} }
@ -76,7 +76,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
u32 quantum = 256; u32 quantum = 256;
u32 i; u32 i;
@@ -2462,7 +2455,7 @@ static int cake_config_precedence(struct @@ -2465,7 +2458,7 @@ static int cake_config_precedence(struct
* Total 12 traffic classes. * Total 12 traffic classes.
*/ */
@ -85,7 +85,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
{ {
/* Pruned list of traffic classes for typical applications: /* Pruned list of traffic classes for typical applications:
* *
@@ -2479,8 +2472,6 @@ static int cake_config_diffserv8(struct @@ -2482,8 +2475,6 @@ static int cake_config_diffserv8(struct
*/ */
struct cake_sched_data *q = qdisc_priv(sch); struct cake_sched_data *q = qdisc_priv(sch);
@ -94,7 +94,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
u32 quantum = 256; u32 quantum = 256;
u32 i; u32 i;
@@ -2510,7 +2501,7 @@ static int cake_config_diffserv8(struct @@ -2513,7 +2504,7 @@ static int cake_config_diffserv8(struct
return 0; return 0;
} }
@ -103,7 +103,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
{ {
/* Further pruned list of traffic classes for four-class system: /* Further pruned list of traffic classes for four-class system:
* *
@@ -2523,8 +2514,6 @@ static int cake_config_diffserv4(struct @@ -2526,8 +2517,6 @@ static int cake_config_diffserv4(struct
*/ */
struct cake_sched_data *q = qdisc_priv(sch); struct cake_sched_data *q = qdisc_priv(sch);
@ -112,7 +112,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
u32 quantum = 1024; u32 quantum = 1024;
q->tin_cnt = 4; q->tin_cnt = 4;
@@ -2552,7 +2541,7 @@ static int cake_config_diffserv4(struct @@ -2555,7 +2544,7 @@ static int cake_config_diffserv4(struct
return 0; return 0;
} }
@ -121,7 +121,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
{ {
/* Simplified Diffserv structure with 3 tins. /* Simplified Diffserv structure with 3 tins.
* Latency Sensitive (CS7, CS6, EF, VA, TOS4) * Latency Sensitive (CS7, CS6, EF, VA, TOS4)
@@ -2560,8 +2549,6 @@ static int cake_config_diffserv3(struct @@ -2563,8 +2552,6 @@ static int cake_config_diffserv3(struct
* Low Priority (LE, CS1) * Low Priority (LE, CS1)
*/ */
struct cake_sched_data *q = qdisc_priv(sch); struct cake_sched_data *q = qdisc_priv(sch);
@ -130,7 +130,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
u32 quantum = 1024; u32 quantum = 1024;
q->tin_cnt = 3; q->tin_cnt = 3;
@@ -2586,32 +2573,33 @@ static int cake_config_diffserv3(struct @@ -2589,32 +2576,33 @@ static int cake_config_diffserv3(struct
return 0; return 0;
} }
@ -170,7 +170,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
break; break;
} }
@@ -2622,6 +2610,14 @@ static void cake_reconfigure(struct Qdis @@ -2625,6 +2613,14 @@ static void cake_reconfigure(struct Qdis
qd->rate_ns = qd->tins[ft].tin_rate_ns; qd->rate_ns = qd->tins[ft].tin_rate_ns;
qd->rate_shft = qd->tins[ft].tin_rate_shft; qd->rate_shft = qd->tins[ft].tin_rate_shft;

View File

@ -1,31 +0,0 @@
From 48afd5124fd6129c46fd12cb06155384b1c4a0c4 Mon Sep 17 00:00:00 2001
From: Chih Kai Hsu <hsu.chih.kai@realtek.com>
Date: Thu, 26 Mar 2026 15:39:23 +0800
Subject: [PATCH] r8152: fix incorrect register write to USB_UPHY_XTAL
The old code used ocp_write_byte() to clear the OOBS_POLLING bit
(BIT(8)) in the USB_UPHY_XTAL register, but this doesn't correctly
clear a bit in the upper byte of the 16-bit register.
Fix this by using ocp_write_word() instead.
Fixes: 195aae321c82 ("r8152: support new chips")
Signed-off-by: Chih Kai Hsu <hsu.chih.kai@realtek.com>
Reviewed-by: Hayes Wang <hayeswang@realtek.com>
Link: https://patch.msgid.link/20260326073925.32976-454-nic_swsd@realtek.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
---
drivers/net/usb/r8152.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/drivers/net/usb/r8152.c
+++ b/drivers/net/usb/r8152.c
@@ -3898,7 +3898,7 @@ static void r8156_ups_en(struct r8152 *t
case RTL_VER_15:
ocp_data = ocp_read_word(tp, MCU_TYPE_USB, USB_UPHY_XTAL);
ocp_data &= ~OOBS_POLLING;
- ocp_write_byte(tp, MCU_TYPE_USB, USB_UPHY_XTAL, ocp_data);
+ ocp_write_word(tp, MCU_TYPE_USB, USB_UPHY_XTAL, ocp_data);
break;
default:
break;

View File

@ -1,29 +0,0 @@
From b7abbc8c7acaeb60c114b038f1fa91bbedb3d16a Mon Sep 17 00:00:00 2001
From: Aleksander Jan Bajkowski <olek2@wp.pl>
Date: Sun, 8 Feb 2026 11:35:53 +0100
Subject: [PATCH] crypto: inside-secure/eip93 - fix register definition
Checked the register definitions with the documentation[1]. Turns out
that the PKTE_INBUF_CNT register has a bad offset. It's used in Direct
Host Mode (DHM). The driver uses Autonomous Ring Mode (ARM), so it
causes no harm.
1. ADSP-SC58x/ADSP-2158x SHARC+ Processor Hardware Reference
Fixes: 9739f5f93b78 ("crypto: eip93 - Add Inside Secure SafeXcel EIP-93 crypto engine support")
Signed-off-by: Aleksander Jan Bajkowski <olek2@wp.pl>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
---
drivers/crypto/inside-secure/eip93/eip93-regs.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/drivers/crypto/inside-secure/eip93/eip93-regs.h
+++ b/drivers/crypto/inside-secure/eip93/eip93-regs.h
@@ -109,7 +109,7 @@
#define EIP93_REG_PE_BUF_THRESH 0x10c
#define EIP93_PE_OUTBUF_THRESH GENMASK(23, 16)
#define EIP93_PE_INBUF_THRESH GENMASK(7, 0)
-#define EIP93_REG_PE_INBUF_COUNT 0x100
+#define EIP93_REG_PE_INBUF_COUNT 0x110
#define EIP93_REG_PE_OUTBUF_COUNT 0x114
#define EIP93_REG_PE_BUF_RW_PNTR 0x118 /* BUF_PNTR */

View File

@ -1,58 +0,0 @@
From 5377032914b29b4643adece0ff1dfc67e36700f4 Mon Sep 17 00:00:00 2001
From: Aleksander Jan Bajkowski <olek2@wp.pl>
Date: Fri, 6 Mar 2026 23:17:40 +0100
Subject: [PATCH] crypto: inside-secure/eip93 - register hash before
authenc algorithms
Register hash before hmac and authenc algorithms. This will ensure
selftests pass at startup. Previously, selftests failed on the
crypto_alloc_ahash() function since the associated algorithm was
not yet registered.
Fixes following error:
...
[ 18.375811] alg: self-tests for authenc(hmac(sha1),cbc(aes)) using authenc(hmac(sha1-eip93),cbc(aes-eip93)) failed (rc=-2)
[ 18.382140] alg: self-tests for authenc(hmac(sha224),rfc3686(ctr(aes))) using authenc(hmac(sha224-eip93),rfc3686(ctr(aes-eip93))) failed (rc=-2)
[ 18.395029] alg: aead: authenc(hmac(sha256-eip93),cbc(des-eip93)) setkey failed on test vector 0; expected_error=0, actual_error=-2, flags=0x1
[ 18.409734] alg: aead: authenc(hmac(md5-eip93),cbc(des3_ede-eip93)) setkey failed on test vector 0; expected_error=0, actual_error=-2, flags=0x1
...
Fixes: 9739f5f93b78 ("crypto: eip93 - Add Inside Secure SafeXcel EIP-93 crypto engine support")
Signed-off-by: Aleksander Jan Bajkowski <olek2@wp.pl>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
---
drivers/crypto/inside-secure/eip93/eip93-main.c | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
--- a/drivers/crypto/inside-secure/eip93/eip93-main.c
+++ b/drivers/crypto/inside-secure/eip93/eip93-main.c
@@ -36,6 +36,14 @@ static struct eip93_alg_template *eip93_
&eip93_alg_cbc_aes,
&eip93_alg_ctr_aes,
&eip93_alg_rfc3686_aes,
+ &eip93_alg_md5,
+ &eip93_alg_sha1,
+ &eip93_alg_sha224,
+ &eip93_alg_sha256,
+ &eip93_alg_hmac_md5,
+ &eip93_alg_hmac_sha1,
+ &eip93_alg_hmac_sha224,
+ &eip93_alg_hmac_sha256,
&eip93_alg_authenc_hmac_md5_cbc_des,
&eip93_alg_authenc_hmac_sha1_cbc_des,
&eip93_alg_authenc_hmac_sha224_cbc_des,
@@ -52,14 +60,6 @@ static struct eip93_alg_template *eip93_
&eip93_alg_authenc_hmac_sha1_rfc3686_aes,
&eip93_alg_authenc_hmac_sha224_rfc3686_aes,
&eip93_alg_authenc_hmac_sha256_rfc3686_aes,
- &eip93_alg_md5,
- &eip93_alg_sha1,
- &eip93_alg_sha224,
- &eip93_alg_sha256,
- &eip93_alg_hmac_md5,
- &eip93_alg_hmac_sha1,
- &eip93_alg_hmac_sha224,
- &eip93_alg_hmac_sha256,
};
inline void eip93_irq_disable(struct eip93_device *eip93, u32 mask)

View File

@ -219,7 +219,7 @@ Link: https://patch.msgid.link/20251128212055.1409093-3-rrendec@redhat.com
irq_domain_remove(pp->irq_domain); irq_domain_remove(pp->irq_domain);
--- a/drivers/pci/controller/dwc/pcie-designware.h --- a/drivers/pci/controller/dwc/pcie-designware.h
+++ b/drivers/pci/controller/dwc/pcie-designware.h +++ b/drivers/pci/controller/dwc/pcie-designware.h
@@ -810,7 +810,7 @@ static inline enum dw_pcie_ltssm dw_pcie @@ -812,7 +812,7 @@ static inline enum dw_pcie_ltssm dw_pcie
#ifdef CONFIG_PCIE_DW_HOST #ifdef CONFIG_PCIE_DW_HOST
int dw_pcie_suspend_noirq(struct dw_pcie *pci); int dw_pcie_suspend_noirq(struct dw_pcie *pci);
int dw_pcie_resume_noirq(struct dw_pcie *pci); int dw_pcie_resume_noirq(struct dw_pcie *pci);
@ -228,7 +228,7 @@ Link: https://patch.msgid.link/20251128212055.1409093-3-rrendec@redhat.com
void dw_pcie_msi_init(struct dw_pcie_rp *pp); void dw_pcie_msi_init(struct dw_pcie_rp *pp);
int dw_pcie_msi_host_init(struct dw_pcie_rp *pp); int dw_pcie_msi_host_init(struct dw_pcie_rp *pp);
void dw_pcie_free_msi(struct dw_pcie_rp *pp); void dw_pcie_free_msi(struct dw_pcie_rp *pp);
@@ -831,10 +831,7 @@ static inline int dw_pcie_resume_noirq(s @@ -833,10 +833,7 @@ static inline int dw_pcie_resume_noirq(s
return 0; return 0;
} }

View File

@ -1,34 +0,0 @@
From 0c078021d3861966614d5e594ee03587f0c9e74d Mon Sep 17 00:00:00 2001
From: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Date: Sun, 19 Apr 2026 21:37:07 +0200
Subject: net: dsa: realtek: rtl8365mb: fix mode mask calculation
The RTL8365MB_DIGITAL_INTERFACE_SELECT_MODE_MASK macro was shifting
the 4-bit mask (0xF) by only (_extint % 2) bits instead of
(_extint % 2) * 4. This caused the mask to overlap with the adjacent
nibble when configuring odd-numbered external interfaces, selecting
the wrong bits entirely.
Align the shift calculation with the existing ...MODE_OFFSET macro.
Fixes: 4af2950c50c8 ("net: dsa: realtek-smi: add rtl8365mb subdriver for RTL8365MB-VC")
Signed-off-by: Abdulkader Alrezej <alrazj.abdulkader@gmail.com>
Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Reviewed-by: Luiz Angelo Daros de Luca <luizluca@gmail.com>
Link: https://patch.msgid.link/400a6387-a444-4576-af6d-26be5410bce3@yahoo.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
---
drivers/net/dsa/realtek/rtl8365mb.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/drivers/net/dsa/realtek/rtl8365mb.c
+++ b/drivers/net/dsa/realtek/rtl8365mb.c
@@ -216,7 +216,7 @@
(_extint) == 2 ? RTL8365MB_DIGITAL_INTERFACE_SELECT_REG1 : \
0x0)
#define RTL8365MB_DIGITAL_INTERFACE_SELECT_MODE_MASK(_extint) \
- (0xF << (((_extint) % 2)))
+ (0xF << (((_extint) % 2) * 4))
#define RTL8365MB_DIGITAL_INTERFACE_SELECT_MODE_OFFSET(_extint) \
(((_extint) % 2) * 4)

View File

@ -43,7 +43,7 @@ Signed-off-by: Jonas Köppeler <j.koeppeler@tu-berlin.de>
struct net_device *dev = qdisc_dev(sch); struct net_device *dev = qdisc_dev(sch);
struct cake_sched_data *other_priv; struct cake_sched_data *other_priv;
u64 new_rate = q->config->rate_bps; u64 new_rate = q->config->rate_bps;
@@ -3358,8 +3361,13 @@ static int __init cake_module_init(void) @@ -3361,8 +3364,13 @@ static int __init cake_module_init(void)
return ret; return ret;
ret = register_qdisc(&cake_mq_qdisc_ops); ret = register_qdisc(&cake_mq_qdisc_ops);
@ -58,7 +58,7 @@ Signed-off-by: Jonas Köppeler <j.koeppeler@tu-berlin.de>
return ret; return ret;
} }
@@ -3368,6 +3376,7 @@ static void __exit cake_module_exit(void @@ -3371,6 +3379,7 @@ static void __exit cake_module_exit(void
{ {
unregister_qdisc(&cake_qdisc_ops); unregister_qdisc(&cake_qdisc_ops);
unregister_qdisc(&cake_mq_qdisc_ops); unregister_qdisc(&cake_mq_qdisc_ops);

View File

@ -32,7 +32,7 @@ Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
mod##SNMP_UPD_PO_STATS((net)->mib.statname##_statistics, field, _val);\ mod##SNMP_UPD_PO_STATS((net)->mib.statname##_statistics, field, _val);\
--- a/net/ipv4/tcp_input.c --- a/net/ipv4/tcp_input.c
+++ b/net/ipv4/tcp_input.c +++ b/net/ipv4/tcp_input.c
@@ -3967,6 +3967,12 @@ static u32 tcp_newly_delivered(struct so @@ -3969,6 +3969,12 @@ static u32 tcp_newly_delivered(struct so
struct tcp_sock *tp = tcp_sk(sk); struct tcp_sock *tp = tcp_sk(sk);
u32 delivered; u32 delivered;

View File

@ -1,2 +1,2 @@
LINUX_VERSION-6.18 = .32 LINUX_VERSION-6.18 = .33
LINUX_KERNEL_HASH-6.18.32 = 067dadd445578284ea6158f312f7970d8940fed3e094dbe49cff66d188d3bda4 LINUX_KERNEL_HASH-6.18.33 = 6f16ff302599f6fe34742890322cf0775703105fbd8767449682fca6af0fb782

View File

@ -74,7 +74,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
static const struct flash_info spi_nor_generic_flash = { static const struct flash_info spi_nor_generic_flash = {
--- a/drivers/mtd/spi-nor/core.h --- a/drivers/mtd/spi-nor/core.h
+++ b/drivers/mtd/spi-nor/core.h +++ b/drivers/mtd/spi-nor/core.h
@@ -598,6 +598,7 @@ extern const struct spi_nor_manufacturer @@ -604,6 +604,7 @@ extern const struct spi_nor_manufacturer
extern const struct spi_nor_manufacturer spi_nor_sst; extern const struct spi_nor_manufacturer spi_nor_sst;
extern const struct spi_nor_manufacturer spi_nor_winbond; extern const struct spi_nor_manufacturer spi_nor_winbond;
extern const struct spi_nor_manufacturer spi_nor_xmc; extern const struct spi_nor_manufacturer spi_nor_xmc;

View File

@ -50,7 +50,7 @@ Submitted-by: Daniel Danzberger <daniel@dd-wrt.com>
obj-$(CONFIG_MTD_SPI_NAND) += spinand.o obj-$(CONFIG_MTD_SPI_NAND) += spinand.o
--- a/drivers/mtd/nand/spi/core.c --- a/drivers/mtd/nand/spi/core.c
+++ b/drivers/mtd/nand/spi/core.c +++ b/drivers/mtd/nand/spi/core.c
@@ -1237,6 +1237,7 @@ static const struct spinand_manufacturer @@ -1228,6 +1228,7 @@ static const struct spinand_manufacturer
&ato_spinand_manufacturer, &ato_spinand_manufacturer,
&esmt_8c_spinand_manufacturer, &esmt_8c_spinand_manufacturer,
&esmt_c8_spinand_manufacturer, &esmt_c8_spinand_manufacturer,
@ -161,7 +161,7 @@ Submitted-by: Daniel Danzberger <daniel@dd-wrt.com>
+}; +};
--- a/include/linux/mtd/spinand.h --- a/include/linux/mtd/spinand.h
+++ b/include/linux/mtd/spinand.h +++ b/include/linux/mtd/spinand.h
@@ -356,6 +356,7 @@ extern const struct spinand_manufacturer @@ -362,6 +362,7 @@ extern const struct spinand_manufacturer
extern const struct spinand_manufacturer ato_spinand_manufacturer; extern const struct spinand_manufacturer ato_spinand_manufacturer;
extern const struct spinand_manufacturer esmt_8c_spinand_manufacturer; extern const struct spinand_manufacturer esmt_8c_spinand_manufacturer;
extern const struct spinand_manufacturer esmt_c8_spinand_manufacturer; extern const struct spinand_manufacturer esmt_c8_spinand_manufacturer;

View File

@ -35,7 +35,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
| NETIF_F_HW_CSUM | NETIF_F_HW_CSUM
--- a/drivers/net/macvlan.c --- a/drivers/net/macvlan.c
+++ b/drivers/net/macvlan.c +++ b/drivers/net/macvlan.c
@@ -904,7 +904,7 @@ static int macvlan_hwtstamp_set(struct n @@ -905,7 +905,7 @@ static int macvlan_hwtstamp_set(struct n
static struct lock_class_key macvlan_netdev_addr_lock_key; static struct lock_class_key macvlan_netdev_addr_lock_key;
#define ALWAYS_ON_OFFLOADS \ #define ALWAYS_ON_OFFLOADS \

View File

@ -18,7 +18,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/net/netfilter/nf_tables_api.c --- a/net/netfilter/nf_tables_api.c
+++ b/net/netfilter/nf_tables_api.c +++ b/net/netfilter/nf_tables_api.c
@@ -9091,7 +9091,7 @@ static int nft_register_flowtable_ops(st @@ -9092,7 +9092,7 @@ static int nft_register_flowtable_ops(st
err = flowtable->data.type->setup(&flowtable->data, err = flowtable->data.type->setup(&flowtable->data,
ops->dev, FLOW_BLOCK_BIND); ops->dev, FLOW_BLOCK_BIND);

View File

@ -68,7 +68,7 @@ Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
/* show configuration fields */ /* show configuration fields */
#define pci_config_attr(field, format_string) \ #define pci_config_attr(field, format_string) \
@@ -1701,12 +1703,32 @@ static const struct attribute_group pci_ @@ -1673,12 +1675,32 @@ static const struct attribute_group pci_
.is_visible = resource_resize_is_visible, .is_visible = resource_resize_is_visible,
}; };
@ -102,7 +102,7 @@ Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
} }
/** /**
@@ -1727,21 +1749,23 @@ static int __init pci_sysfs_init(void) @@ -1699,21 +1721,23 @@ static int __init pci_sysfs_init(void)
{ {
struct pci_dev *pdev = NULL; struct pci_dev *pdev = NULL;
struct pci_bus *pbus = NULL; struct pci_bus *pbus = NULL;

View File

@ -1,82 +0,0 @@
From: Aleksander Jan Bajkowski <olek2@wp.pl>
Date: Sat, 11 Apr 2026 23:08:17 +0200
Subject: [PATCH] crypto: inside-secure/eip93 - eip93: fix hmac setkey algo
selection
eip93_hmac_setkey() allocates a temporary ahash transform for
computing HMAC ipad/opad key material. The allocation uses the
driver-specific cra_driver_name (e.g. "sha256-eip93") but passes
CRYPTO_ALG_ASYNC as the mask, which excludes async algorithms.
Since the EIP93 hash algorithms are the only ones registered
under those driver names and they are inherently async, the
lookup is self-contradictory and always fails with -ENOENT.
When called from the AEAD setkey path, this failure leaves the
SA record partially initialized with zeroed digest fields. A
subsequent crypto operation then dereferences a NULL pointer in
the request context, resulting in a kernel panic:
```
pc : eip93_aead_handle_result+0xc8c/0x1240 [crypto_hw_eip93]
lr : eip93_aead_handle_result+0xbec/0x1240 [crypto_hw_eip93]
sp : ffffffc082feb820
x29: ffffffc082feb820 x28: ffffff8011043980 x27: 0000000000000000
x26: 0000000000000000 x25: ffffffc078da0bc8 x24: 0000000091043980
x23: ffffff8004d59e50 x22: ffffff8004d59410 x21: ffffff8004d593c0
x20: ffffff8004d593c0 x19: ffffff8004d4f300 x18: 0000000000000000
x17: 0000000000000000 x16: 0000000000000000 x15: 0000007fda7aa498
x14: 0000000000000000 x13: 0000000000000000 x12: 0000000000000000
x11: 0000000000000000 x10: fffffffff8127a80 x9 : 0000000000000000
x8 : ffffff8004d4f380 x7 : 0000000000000000 x6 : 000000000000003f
x5 : 0000000000000040 x4 : 0000000000000008 x3 : 0000000000000009
x2 : 0000000000000008 x1 : 0000000028000003 x0 : ffffff8004d388c0
Code: 910142b6 f94012e0 f9002aa0 f90006d3 (f9400740)
```
The reported symbol eip93_aead_handle_result+0xc8c is a
resolution artifact from static functions being merged under
the nearest exported symbol. Decoding the faulting sequence:
```
910142b6 ADD X22, X21, #0x50
f94012e0 LDR X0, [X23, #0x20]
f9002aa0 STR X0, [X21, #0x50]
f90006d3 STR X19, [X22, #0x8]
f9400740 LDR X0, [X26, #0x8]
```
The faulting LDR at [X26, #0x8] is loading ctx->flags
(offset 8 in eip93_hash_ctx), where ctx has been resolved
to NULL from a partially initialized or unreachable
transform context following the failed setkey.
Fix this by dropping the CRYPTO_ALG_ASYNC mask from the
crypto_alloc_ahash() call. The code already handles async
completion correctly via crypto_wait_req(), so there is no
requirement to restrict the lookup to synchronous algorithms.
Note that hashing a single 64-byte block through the hardware
is likely slower than doing it in software due to the DMA
round-trip overhead, but offloading it may still spare CPU
cycles on the slower embedded cores where this IP is found.
Fixes: 9739f5f93b78 ("crypto: eip93 - Add Inside Secure SafeXcel EIP-93 crypto engine support")
Signed-off-by: Aleksander Jan Bajkowski <olek2@wp.pl>
[Detailed investigation report of this bug]
Signed-off-by: Kenneth Kasilag <kenneth@kasilag.me>
---
drivers/crypto/inside-secure/eip93/eip93-common.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/drivers/crypto/inside-secure/eip93/eip93-common.c
+++ b/drivers/crypto/inside-secure/eip93/eip93-common.c
@@ -731,7 +731,7 @@ int eip93_hmac_setkey(u32 ctx_flags, con
return -EINVAL;
}
- ahash_tfm = crypto_alloc_ahash(alg_name, 0, CRYPTO_ALG_ASYNC);
+ ahash_tfm = crypto_alloc_ahash(alg_name, 0, 0);
if (IS_ERR(ahash_tfm))
return PTR_ERR(ahash_tfm);

View File

@ -136,7 +136,7 @@ Signed-off-by: Maxime Chevallier <maxime.chevallier@bootlin.com>
#include <net/dst.h> #include <net/dst.h>
#include <net/sock.h> #include <net/sock.h>
#include <net/checksum.h> #include <net/checksum.h>
@@ -5082,6 +5086,9 @@ static const u8 skb_ext_type_len[] = { @@ -5089,6 +5093,9 @@ static const u8 skb_ext_type_len[] = {
#if IS_ENABLED(CONFIG_INET_PSP) #if IS_ENABLED(CONFIG_INET_PSP)
[SKB_EXT_PSP] = SKB_EXT_CHUNKSIZEOF(struct psp_skb_ext), [SKB_EXT_PSP] = SKB_EXT_CHUNKSIZEOF(struct psp_skb_ext),
#endif #endif

View File

@ -43,7 +43,7 @@ Signed-off-by: Florian Maurer <f.maurer@outlook.com>
}; };
#define QCOM_PCIE_2_7_0_MAX_SUPPLIES 2 #define QCOM_PCIE_2_7_0_MAX_SUPPLIES 2
@@ -727,12 +740,65 @@ static int qcom_pcie_post_init_2_3_2(str @@ -732,12 +745,65 @@ static int qcom_pcie_post_init_2_3_2(str
return 0; return 0;
} }
@ -110,7 +110,7 @@ Signed-off-by: Florian Maurer <f.maurer@outlook.com>
int ret; int ret;
res->num_clks = devm_clk_bulk_get_all(dev, &res->clks); res->num_clks = devm_clk_bulk_get_all(dev, &res->clks);
@@ -771,6 +837,17 @@ static void qcom_pcie_deinit_2_4_0(struc @@ -776,6 +842,17 @@ static void qcom_pcie_deinit_2_4_0(struc
clk_bulk_disable_unprepare(res->num_clks, res->clks); clk_bulk_disable_unprepare(res->num_clks, res->clks);
} }
@ -128,7 +128,7 @@ Signed-off-by: Florian Maurer <f.maurer@outlook.com>
static int qcom_pcie_init_2_4_0(struct qcom_pcie *pcie) static int qcom_pcie_init_2_4_0(struct qcom_pcie *pcie)
{ {
struct qcom_pcie_resources_2_4_0 *res = &pcie->res.v2_4_0; struct qcom_pcie_resources_2_4_0 *res = &pcie->res.v2_4_0;
@@ -1379,6 +1456,16 @@ static const struct qcom_pcie_ops ops_2_ @@ -1384,6 +1461,16 @@ static const struct qcom_pcie_ops ops_2_
.ltssm_enable = qcom_pcie_2_3_2_ltssm_enable, .ltssm_enable = qcom_pcie_2_3_2_ltssm_enable,
}; };
@ -145,7 +145,7 @@ Signed-off-by: Florian Maurer <f.maurer@outlook.com>
/* Qcom IP rev.: 2.3.3 Synopsys IP rev.: 4.30a */ /* Qcom IP rev.: 2.3.3 Synopsys IP rev.: 4.30a */
static const struct qcom_pcie_ops ops_2_3_3 = { static const struct qcom_pcie_ops ops_2_3_3 = {
.get_resources = qcom_pcie_get_resources_2_3_3, .get_resources = qcom_pcie_get_resources_2_3_3,
@@ -1457,6 +1544,10 @@ static const struct qcom_pcie_cfg cfg_2_ @@ -1462,6 +1549,10 @@ static const struct qcom_pcie_cfg cfg_2_
.ops = &ops_2_4_0, .ops = &ops_2_4_0,
}; };
@ -156,7 +156,7 @@ Signed-off-by: Florian Maurer <f.maurer@outlook.com>
static const struct qcom_pcie_cfg cfg_2_7_0 = { static const struct qcom_pcie_cfg cfg_2_7_0 = {
.ops = &ops_2_7_0, .ops = &ops_2_7_0,
}; };
@@ -2016,6 +2107,7 @@ static const struct of_device_id qcom_pc @@ -2021,6 +2112,7 @@ static const struct of_device_id qcom_pc
{ .compatible = "qcom,pcie-apq8064", .data = &cfg_2_1_0 }, { .compatible = "qcom,pcie-apq8064", .data = &cfg_2_1_0 },
{ .compatible = "qcom,pcie-apq8084", .data = &cfg_1_0_0 }, { .compatible = "qcom,pcie-apq8084", .data = &cfg_1_0_0 },
{ .compatible = "qcom,pcie-ipq4019", .data = &cfg_2_4_0 }, { .compatible = "qcom,pcie-ipq4019", .data = &cfg_2_4_0 },

View File

@ -4,7 +4,7 @@ Subject: [PATCH] UGW_SW-29163: ATM oam support
--- a/drivers/net/ppp/ppp_generic.c --- a/drivers/net/ppp/ppp_generic.c
+++ b/drivers/net/ppp/ppp_generic.c +++ b/drivers/net/ppp/ppp_generic.c
@@ -3003,6 +3003,24 @@ char *ppp_dev_name(struct ppp_channel *c @@ -3006,6 +3006,24 @@ char *ppp_dev_name(struct ppp_channel *c
return name; return name;
} }
@ -29,7 +29,7 @@ Subject: [PATCH] UGW_SW-29163: ATM oam support
/* /*
* Disconnect a channel from the generic layer. * Disconnect a channel from the generic layer.
@@ -3664,6 +3682,7 @@ EXPORT_SYMBOL(ppp_unregister_channel); @@ -3667,6 +3685,7 @@ EXPORT_SYMBOL(ppp_unregister_channel);
EXPORT_SYMBOL(ppp_channel_index); EXPORT_SYMBOL(ppp_channel_index);
EXPORT_SYMBOL(ppp_unit_number); EXPORT_SYMBOL(ppp_unit_number);
EXPORT_SYMBOL(ppp_dev_name); EXPORT_SYMBOL(ppp_dev_name);

View File

@ -5518,7 +5518,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
(transaction layer end-to-end CRC checking). (transaction layer end-to-end CRC checking).
--- a/include/linux/pci.h --- a/include/linux/pci.h
+++ b/include/linux/pci.h +++ b/include/linux/pci.h
@@ -1660,6 +1660,8 @@ void pci_walk_bus(struct pci_bus *top, i @@ -1654,6 +1654,8 @@ void pci_walk_bus(struct pci_bus *top, i
void *userdata); void *userdata);
int pci_cfg_space_size(struct pci_dev *dev); int pci_cfg_space_size(struct pci_dev *dev);
unsigned char pci_bus_max_busnr(struct pci_bus *bus); unsigned char pci_bus_max_busnr(struct pci_bus *bus);

View File

@ -98,8 +98,8 @@ Signed-off-by: Mathias Kresin <openwrt@kresin.me>
return nr_parts; return nr_parts;
@@ -197,6 +249,7 @@ ofpart_none: @@ -197,6 +249,7 @@ ofpart_none:
if (dedicated)
of_node_put(ofpart_node); of_node_put(ofpart_node);
of_node_put(pp);
kfree(parts); kfree(parts);
+ kfree(part_nodes); + kfree(part_nodes);
return ret; return ret;

View File

@ -44,7 +44,7 @@ Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
obj-$(CONFIG_MTD_SPI_NAND) += spinand.o obj-$(CONFIG_MTD_SPI_NAND) += spinand.o
--- a/drivers/mtd/nand/spi/core.c --- a/drivers/mtd/nand/spi/core.c
+++ b/drivers/mtd/nand/spi/core.c +++ b/drivers/mtd/nand/spi/core.c
@@ -1235,6 +1235,7 @@ static const struct nand_ops spinand_ops @@ -1226,6 +1226,7 @@ static const struct nand_ops spinand_ops
static const struct spinand_manufacturer *spinand_manufacturers[] = { static const struct spinand_manufacturer *spinand_manufacturers[] = {
&alliancememory_spinand_manufacturer, &alliancememory_spinand_manufacturer,
&ato_spinand_manufacturer, &ato_spinand_manufacturer,
@ -148,7 +148,7 @@ Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
+}; +};
--- a/include/linux/mtd/spinand.h --- a/include/linux/mtd/spinand.h
+++ b/include/linux/mtd/spinand.h +++ b/include/linux/mtd/spinand.h
@@ -354,6 +354,7 @@ struct spinand_manufacturer { @@ -360,6 +360,7 @@ struct spinand_manufacturer {
/* SPI NAND manufacturers */ /* SPI NAND manufacturers */
extern const struct spinand_manufacturer alliancememory_spinand_manufacturer; extern const struct spinand_manufacturer alliancememory_spinand_manufacturer;
extern const struct spinand_manufacturer ato_spinand_manufacturer; extern const struct spinand_manufacturer ato_spinand_manufacturer;

View File

@ -11,7 +11,7 @@ Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
--- ---
--- a/drivers/mtd/nand/spi/core.c --- a/drivers/mtd/nand/spi/core.c
+++ b/drivers/mtd/nand/spi/core.c +++ b/drivers/mtd/nand/spi/core.c
@@ -979,7 +979,7 @@ static int spinand_mtd_write(struct mtd_ @@ -970,7 +970,7 @@ static int spinand_mtd_write(struct mtd_
static bool spinand_isbad(struct nand_device *nand, const struct nand_pos *pos) static bool spinand_isbad(struct nand_device *nand, const struct nand_pos *pos)
{ {
struct spinand_device *spinand = nand_to_spinand(nand); struct spinand_device *spinand = nand_to_spinand(nand);
@ -20,7 +20,7 @@ Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
struct nand_page_io_req req = { struct nand_page_io_req req = {
.pos = *pos, .pos = *pos,
.ooblen = sizeof(marker), .ooblen = sizeof(marker),
@@ -998,7 +998,7 @@ static bool spinand_isbad(struct nand_de @@ -989,7 +989,7 @@ static bool spinand_isbad(struct nand_de
spinand_read_page(spinand, &req); spinand_read_page(spinand, &req);
} }

View File

@ -20,7 +20,7 @@ Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
int spinand_read_reg_op(struct spinand_device *spinand, u8 reg, u8 *val) int spinand_read_reg_op(struct spinand_device *spinand, u8 reg, u8 *val)
{ {
@@ -1685,6 +1686,7 @@ static int spinand_probe(struct spi_mem @@ -1719,6 +1720,7 @@ static int spinand_probe(struct spi_mem
if (ret) if (ret)
return ret; return ret;
@ -28,7 +28,7 @@ Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
ret = mtd_device_register(mtd, NULL, 0); ret = mtd_device_register(mtd, NULL, 0);
if (ret) if (ret)
goto err_spinand_cleanup; goto err_spinand_cleanup;
@@ -1692,6 +1694,7 @@ static int spinand_probe(struct spi_mem @@ -1726,6 +1728,7 @@ static int spinand_probe(struct spi_mem
return 0; return 0;
err_spinand_cleanup: err_spinand_cleanup:
@ -36,7 +36,7 @@ Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
spinand_cleanup(spinand); spinand_cleanup(spinand);
return ret; return ret;
@@ -1710,6 +1713,7 @@ static int spinand_remove(struct spi_mem @@ -1744,6 +1747,7 @@ static int spinand_remove(struct spi_mem
if (ret) if (ret)
return ret; return ret;

View File

@ -11,7 +11,7 @@ Signed-off-by: SkyLake.Huang <skylake.huang@mediatek.com>
--- a/drivers/mtd/nand/spi/core.c --- a/drivers/mtd/nand/spi/core.c
+++ b/drivers/mtd/nand/spi/core.c +++ b/drivers/mtd/nand/spi/core.c
@@ -1279,6 +1279,56 @@ static int spinand_manufacturer_match(st @@ -1270,6 +1270,56 @@ static int spinand_manufacturer_match(st
return -EOPNOTSUPP; return -EOPNOTSUPP;
} }
@ -68,9 +68,9 @@ Signed-off-by: SkyLake.Huang <skylake.huang@mediatek.com>
static int spinand_id_detect(struct spinand_device *spinand) static int spinand_id_detect(struct spinand_device *spinand)
{ {
u8 *id = spinand->id.data; u8 *id = spinand->id.data;
@@ -1555,6 +1605,10 @@ static int spinand_init(struct spinand_d @@ -1589,6 +1639,10 @@ static int spinand_init(struct spinand_d
if (!spinand->scratchbuf)
return -ENOMEM; spinand_init_ssdr_templates(spinand);
+ ret = spi_mem_do_calibration(spinand->spimem, spinand_cal_read, spinand); + ret = spi_mem_do_calibration(spinand->spimem, spinand_cal_read, spinand);
+ if (ret) + if (ret)

View File

@ -12,7 +12,7 @@ Signed-off-by: SkyLake.Huang <skylake.huang@mediatek.com>
--- a/drivers/mtd/nand/spi/core.c --- a/drivers/mtd/nand/spi/core.c
+++ b/drivers/mtd/nand/spi/core.c +++ b/drivers/mtd/nand/spi/core.c
@@ -1320,7 +1320,10 @@ static int spinand_cal_read(void *priv, @@ -1311,7 +1311,10 @@ static int spinand_cal_read(void *priv,
if (ret) if (ret)
return ret; return ret;

View File

@ -29,7 +29,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
--- a/drivers/mtd/nand/spi/core.c --- a/drivers/mtd/nand/spi/core.c
+++ b/drivers/mtd/nand/spi/core.c +++ b/drivers/mtd/nand/spi/core.c
@@ -1778,6 +1778,7 @@ static int spinand_remove(struct spi_mem @@ -1812,6 +1812,7 @@ static int spinand_remove(struct spi_mem
static const struct spi_device_id spinand_ids[] = { static const struct spi_device_id spinand_ids[] = {
{ .name = "spi-nand" }, { .name = "spi-nand" },
@ -37,7 +37,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
{ /* sentinel */ }, { /* sentinel */ },
}; };
MODULE_DEVICE_TABLE(spi, spinand_ids); MODULE_DEVICE_TABLE(spi, spinand_ids);
@@ -1785,6 +1786,7 @@ MODULE_DEVICE_TABLE(spi, spinand_ids); @@ -1819,6 +1820,7 @@ MODULE_DEVICE_TABLE(spi, spinand_ids);
#ifdef CONFIG_OF #ifdef CONFIG_OF
static const struct of_device_id spinand_of_ids[] = { static const struct of_device_id spinand_of_ids[] = {
{ .compatible = "spi-nand" }, { .compatible = "spi-nand" },

View File

@ -69,7 +69,7 @@ Signed-off-by: David Bauer <mail@david-bauer.net>
&spi_nor_everspin, &spi_nor_everspin,
--- a/drivers/mtd/spi-nor/core.h --- a/drivers/mtd/spi-nor/core.h
+++ b/drivers/mtd/spi-nor/core.h +++ b/drivers/mtd/spi-nor/core.h
@@ -585,6 +585,7 @@ struct sfdp { @@ -591,6 +591,7 @@ struct sfdp {
/* Manufacturer drivers. */ /* Manufacturer drivers. */
extern const struct spi_nor_manufacturer spi_nor_atmel; extern const struct spi_nor_manufacturer spi_nor_atmel;

View File

@ -28,7 +28,7 @@ Signed-off-by: Curry Zhang <curry.zhang@starfivetech.com>
} }
axi_dma_enable(chan->chip); axi_dma_enable(chan->chip);
@@ -1074,6 +1076,14 @@ static noinline void axi_chan_handle_err @@ -1072,6 +1074,14 @@ static noinline void axi_chan_handle_err
axi_chan_name(chan)); axi_chan_name(chan));
goto out; goto out;
} }

View File

@ -12,7 +12,7 @@ Signed-off-by: Emil Renner Berthing <kernel@esmil.dk>
--- a/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c --- a/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
+++ b/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c +++ b/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
@@ -723,8 +723,13 @@ static int dw_axi_dma_set_hw_desc(struct @@ -721,8 +721,13 @@ static int dw_axi_dma_set_hw_desc(struct
hw_desc->lli->block_ts_lo = cpu_to_le32(block_ts - 1); hw_desc->lli->block_ts_lo = cpu_to_le32(block_ts - 1);
@ -26,7 +26,7 @@ Signed-off-by: Emil Renner Berthing <kernel@esmil.dk>
hw_desc->lli->ctl_lo = cpu_to_le32(ctllo); hw_desc->lli->ctl_lo = cpu_to_le32(ctllo);
set_desc_src_master(hw_desc); set_desc_src_master(hw_desc);
@@ -1589,7 +1594,11 @@ static int dw_probe(struct platform_devi @@ -1587,7 +1592,11 @@ static int dw_probe(struct platform_devi
* Therefore, set constraint to 1024 * 4. * Therefore, set constraint to 1024 * 4.
*/ */
dw->dma.dev->dma_parms = &dw->dma_parms; dw->dma.dev->dma_parms = &dw->dma_parms;
@ -38,7 +38,7 @@ Signed-off-by: Emil Renner Berthing <kernel@esmil.dk>
platform_set_drvdata(pdev, chip); platform_set_drvdata(pdev, chip);
pm_runtime_enable(chip->dev); pm_runtime_enable(chip->dev);
@@ -1674,6 +1683,9 @@ static const struct of_device_id dw_dma_ @@ -1672,6 +1681,9 @@ static const struct of_device_id dw_dma_
.compatible = "intel,kmb-axi-dma", .compatible = "intel,kmb-axi-dma",
.data = (void *)AXI_DMA_FLAG_HAS_APB_REGS, .data = (void *)AXI_DMA_FLAG_HAS_APB_REGS,
}, { }, {