kernel: bump 5.15 to 5.15.167

Manually adapted:
   generic/backport-5.15/020-v6.1-05-mm-multi-gen-LRU-groundwork.patch
   ramips/patches-5.15/311-MIPS-use-set_mode-to-enable-disable-the-cevt-r4k-irq.patch

Link: https://github.com/openwrt/openwrt/pull/16366
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
This commit is contained in:
Hauke Mehrtens
2024-09-12 22:48:35 +02:00
parent fd6e077ddf
commit 8e5e62416f
9 changed files with 40 additions and 23 deletions

View File

@@ -1,2 +1,2 @@
LINUX_VERSION-5.15 = .166 LINUX_VERSION-5.15 = .167
LINUX_KERNEL_HASH-5.15.166 = e56caae259b85b7685ee589075d58bb7b227024497a60fa27a7b43e0b48839cf LINUX_KERNEL_HASH-5.15.167 = b1751f18ece3df08d502dd87a9ab1a317dc0f9486355bf8ee62ba6af0b35da30

View File

@@ -337,9 +337,9 @@ SVN-Revision: 35130
#endif /* _LINUX_TYPES_H */ #endif /* _LINUX_TYPES_H */
--- a/net/ipv4/af_inet.c --- a/net/ipv4/af_inet.c
+++ b/net/ipv4/af_inet.c +++ b/net/ipv4/af_inet.c
@@ -1491,8 +1491,8 @@ struct sk_buff *inet_gro_receive(struct @@ -1490,8 +1490,8 @@ struct sk_buff *inet_gro_receive(struct
if (unlikely(ip_fast_csum((u8 *)iph, 5))) if (unlikely(ip_fast_csum((u8 *)iph, 5)))
goto out_unlock; goto out;
- id = ntohl(*(__be32 *)&iph->id); - id = ntohl(*(__be32 *)&iph->id);
- flush = (u16)((ntohl(*(__be32 *)iph) ^ skb_gro_len(skb)) | (id & ~IP_DF)); - flush = (u16)((ntohl(*(__be32 *)iph) ^ skb_gro_len(skb)) | (id & ~IP_DF));
@@ -579,7 +579,7 @@ SVN-Revision: 35130
goto next_ht; goto next_ht;
--- a/net/ipv6/ip6_offload.c --- a/net/ipv6/ip6_offload.c
+++ b/net/ipv6/ip6_offload.c +++ b/net/ipv6/ip6_offload.c
@@ -241,7 +241,7 @@ INDIRECT_CALLABLE_SCOPE struct sk_buff * @@ -240,7 +240,7 @@ INDIRECT_CALLABLE_SCOPE struct sk_buff *
continue; continue;
iph2 = (struct ipv6hdr *)(p->data + off); iph2 = (struct ipv6hdr *)(p->data + off);
@@ -858,7 +858,7 @@ SVN-Revision: 35130
--- a/net/ipv4/tcp_offload.c --- a/net/ipv4/tcp_offload.c
+++ b/net/ipv4/tcp_offload.c +++ b/net/ipv4/tcp_offload.c
@@ -223,7 +223,7 @@ struct sk_buff *tcp_gro_receive(struct l @@ -226,7 +226,7 @@ struct sk_buff *tcp_gro_receive(struct l
th2 = tcp_hdr(p); th2 = tcp_hdr(p);
@@ -867,7 +867,7 @@ SVN-Revision: 35130
NAPI_GRO_CB(p)->same_flow = 0; NAPI_GRO_CB(p)->same_flow = 0;
continue; continue;
} }
@@ -241,8 +241,8 @@ found: @@ -244,8 +244,8 @@ found:
~(TCP_FLAG_CWR | TCP_FLAG_FIN | TCP_FLAG_PSH)); ~(TCP_FLAG_CWR | TCP_FLAG_FIN | TCP_FLAG_PSH));
flush |= (__force int)(th->ack_seq ^ th2->ack_seq); flush |= (__force int)(th->ack_seq ^ th2->ack_seq);
for (i = sizeof(*th); i < thlen; i += 4) for (i = sizeof(*th); i < thlen; i += 4)

View File

@@ -24,7 +24,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
--- a/net/bluetooth/smp.c --- a/net/bluetooth/smp.c
+++ b/net/bluetooth/smp.c +++ b/net/bluetooth/smp.c
@@ -2215,7 +2215,7 @@ mackey_and_ltk: @@ -2208,7 +2208,7 @@ mackey_and_ltk:
if (err) if (err)
return SMP_UNSPECIFIED; return SMP_UNSPECIFIED;
@@ -33,7 +33,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
if (test_bit(SMP_FLAG_INITIATOR, &smp->flags)) { if (test_bit(SMP_FLAG_INITIATOR, &smp->flags)) {
sc_dhkey_check(smp); sc_dhkey_check(smp);
SMP_ALLOW_CMD(smp, SMP_CMD_DHKEY_CHECK); SMP_ALLOW_CMD(smp, SMP_CMD_DHKEY_CHECK);
@@ -2230,9 +2230,6 @@ mackey_and_ltk: @@ -2223,9 +2223,6 @@ mackey_and_ltk:
confirm_hint = 0; confirm_hint = 0;
confirm: confirm:

View File

@@ -594,7 +594,7 @@ Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
VM_BUG_ON_PAGE(tail > 2 && page_tail->mapping != TAIL_MAPPING, VM_BUG_ON_PAGE(tail > 2 && page_tail->mapping != TAIL_MAPPING,
--- a/mm/memcontrol.c --- a/mm/memcontrol.c
+++ b/mm/memcontrol.c +++ b/mm/memcontrol.c
@@ -5182,6 +5182,7 @@ static void __mem_cgroup_free(struct mem @@ -5199,6 +5199,7 @@ static void __mem_cgroup_free(struct mem
static void mem_cgroup_free(struct mem_cgroup *memcg) static void mem_cgroup_free(struct mem_cgroup *memcg)
{ {
@@ -602,10 +602,10 @@ Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
memcg_wb_domain_exit(memcg); memcg_wb_domain_exit(memcg);
__mem_cgroup_free(memcg); __mem_cgroup_free(memcg);
} }
@@ -5245,6 +5246,7 @@ static struct mem_cgroup *mem_cgroup_all @@ -5262,6 +5263,7 @@ static struct mem_cgroup *mem_cgroup_all
memcg->deferred_split_queue.split_queue_len = 0; spin_lock(&memcg_idr_lock);
#endif
idr_replace(&mem_cgroup_idr, memcg, memcg->id.id); idr_replace(&mem_cgroup_idr, memcg, memcg->id.id);
spin_unlock(&memcg_idr_lock);
+ lru_gen_init_memcg(memcg); + lru_gen_init_memcg(memcg);
return memcg; return memcg;
fail: fail:

View File

@@ -424,7 +424,7 @@ Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
/* will mmdrop() in finish_task_switch(). */ /* will mmdrop() in finish_task_switch(). */
--- a/mm/memcontrol.c --- a/mm/memcontrol.c
+++ b/mm/memcontrol.c +++ b/mm/memcontrol.c
@@ -6216,6 +6216,30 @@ static void mem_cgroup_move_task(void) @@ -6233,6 +6233,30 @@ static void mem_cgroup_move_task(void)
} }
#endif #endif
@@ -455,7 +455,7 @@ Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
static int seq_puts_memcg_tunable(struct seq_file *m, unsigned long value) static int seq_puts_memcg_tunable(struct seq_file *m, unsigned long value)
{ {
if (value == PAGE_COUNTER_MAX) if (value == PAGE_COUNTER_MAX)
@@ -6559,6 +6583,7 @@ struct cgroup_subsys memory_cgrp_subsys @@ -6576,6 +6600,7 @@ struct cgroup_subsys memory_cgrp_subsys
.css_reset = mem_cgroup_css_reset, .css_reset = mem_cgroup_css_reset,
.css_rstat_flush = mem_cgroup_css_rstat_flush, .css_rstat_flush = mem_cgroup_css_rstat_flush,
.can_attach = mem_cgroup_can_attach, .can_attach = mem_cgroup_can_attach,

View File

@@ -328,7 +328,7 @@ Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
if (order > 0) if (order > 0)
return 0; return 0;
@@ -5325,6 +5338,7 @@ static int mem_cgroup_css_online(struct @@ -5342,6 +5355,7 @@ static int mem_cgroup_css_online(struct
if (unlikely(mem_cgroup_is_root(memcg))) if (unlikely(mem_cgroup_is_root(memcg)))
queue_delayed_work(system_unbound_wq, &stats_flush_dwork, queue_delayed_work(system_unbound_wq, &stats_flush_dwork,
2UL*HZ); 2UL*HZ);
@@ -336,7 +336,7 @@ Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
return 0; return 0;
} }
@@ -5351,6 +5365,7 @@ static void mem_cgroup_css_offline(struc @@ -5368,6 +5382,7 @@ static void mem_cgroup_css_offline(struc
memcg_offline_kmem(memcg); memcg_offline_kmem(memcg);
reparent_shrinker_deferred(memcg); reparent_shrinker_deferred(memcg);
wb_memcg_offline(memcg); wb_memcg_offline(memcg);
@@ -344,7 +344,7 @@ Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
drain_all_stock(memcg); drain_all_stock(memcg);
@@ -5362,6 +5377,7 @@ static void mem_cgroup_css_released(stru @@ -5379,6 +5394,7 @@ static void mem_cgroup_css_released(stru
struct mem_cgroup *memcg = mem_cgroup_from_css(css); struct mem_cgroup *memcg = mem_cgroup_from_css(css);
invalidate_reclaim_iterators(memcg); invalidate_reclaim_iterators(memcg);

View File

@@ -98,7 +98,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
kfree(ap); kfree(ap);
host->ports[i] = NULL; host->ports[i] = NULL;
} }
@@ -5802,7 +5827,23 @@ int ata_host_register(struct ata_host *h @@ -5804,7 +5829,23 @@ int ata_host_register(struct ata_host *h
host->ports[i]->print_id = atomic_inc_return(&ata_print_id); host->ports[i]->print_id = atomic_inc_return(&ata_print_id);
host->ports[i]->local_port_no = i + 1; host->ports[i]->local_port_no = i + 1;
} }

View File

@@ -73,11 +73,28 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
unsigned int cpu = smp_processor_id(); unsigned int cpu = smp_processor_id();
struct clock_event_device *cd; struct clock_event_device *cd;
unsigned int irq, min_delta; unsigned int irq, min_delta;
@@ -322,11 +349,16 @@ int r4k_clockevent_init(void) @@ -303,6 +330,15 @@ int r4k_clockevent_init(void)
if (!c0_compare_int_usable())
return -ENXIO;
+#ifdef CONFIG_CEVT_SYSTICK_QUIRK
+ /*
+ * With vectored interrupts things are getting platform specific.
+ * get_c0_compare_int is a hook to allow a platform to return the
+ * interrupt number of its liking.
+ */
+ irq = get_c0_compare_int();
+#endif
+
cd = &per_cpu(mips_clockevent_device, cpu);
cd->name = "MIPS";
@@ -314,11 +350,17 @@ int r4k_clockevent_init(void)
cd->rating = 300; cd->rating = 300;
cd->irq = irq;
cd->cpumask = cpumask_of(cpu); cd->cpumask = cpumask_of(cpu);
+#ifdef CONFIG_CEVT_SYSTICK_QUIRK +#ifdef CONFIG_CEVT_SYSTICK_QUIRK
+ cd->irq = irq;
+ cd->set_state_shutdown = mips_state_shutdown; + cd->set_state_shutdown = mips_state_shutdown;
+ cd->set_state_oneshot = mips_state_oneshot; + cd->set_state_oneshot = mips_state_oneshot;
+#endif +#endif
@@ -90,7 +107,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
if (cp0_timer_irq_installed) if (cp0_timer_irq_installed)
return 0; return 0;
@@ -335,6 +367,7 @@ int r4k_clockevent_init(void) @@ -334,6 +376,7 @@ int r4k_clockevent_init(void)
if (request_irq(irq, c0_compare_interrupt, flags, "timer", if (request_irq(irq, c0_compare_interrupt, flags, "timer",
c0_compare_interrupt)) c0_compare_interrupt))
pr_err("Failed to request irq %d (timer)\n", irq); pr_err("Failed to request irq %d (timer)\n", irq);

View File

@@ -13,7 +13,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
--- a/drivers/media/usb/uvc/uvc_driver.c --- a/drivers/media/usb/uvc/uvc_driver.c
+++ b/drivers/media/usb/uvc/uvc_driver.c +++ b/drivers/media/usb/uvc/uvc_driver.c
@@ -3158,6 +3158,18 @@ static const struct usb_device_id uvc_id @@ -3168,6 +3168,18 @@ static const struct usb_device_id uvc_id
.bInterfaceSubClass = 1, .bInterfaceSubClass = 1,
.bInterfaceProtocol = 0, .bInterfaceProtocol = 0,
.driver_info = UVC_INFO_META(V4L2_META_FMT_D4XX) }, .driver_info = UVC_INFO_META(V4L2_META_FMT_D4XX) },