From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: stable@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
patches@lists.linux.dev, John David Anglin <dave.anglin@bell.net>,
Helge Deller <deller@gmx.de>
Subject: [PATCH 6.6 181/267] parisc: Try to fix random segmentation faults in package builds
Date: Wed, 19 Jun 2024 14:55:32 +0200 [thread overview]
Message-ID: <20240619125613.291071154@linuxfoundation.org> (raw)
In-Reply-To: <20240619125606.345939659@linuxfoundation.org>
6.6-stable review patch. If anyone has any objections, please let me know.
------------------
From: John David Anglin <dave@parisc-linux.org>
commit 72d95924ee35c8cd16ef52f912483ee938a34d49 upstream.
PA-RISC systems with PA8800 and PA8900 processors have had problems
with random segmentation faults for many years. Systems with earlier
processors are much more stable.
Systems with PA8800 and PA8900 processors have a large L2 cache which
needs per page flushing for decent performance when a large range is
flushed. The combined cache in these systems is also more sensitive to
non-equivalent aliases than the caches in earlier systems.
The majority of random segmentation faults that I have looked at
appear to be memory corruption in memory allocated using mmap and
malloc.
My first attempt at fixing the random faults didn't work. On
reviewing the cache code, I realized that there were two issues
which the existing code didn't handle correctly. Both relate
to cache move-in. Another issue is that the present bit in PTEs
is racy.
1) PA-RISC caches have a mind of their own and they can speculatively
load data and instructions for a page as long as there is a entry in
the TLB for the page which allows move-in. TLBs are local to each
CPU. Thus, the TLB entry for a page must be purged before flushing
the page. This is particularly important on SMP systems.
In some of the flush routines, the flush routine would be called
and then the TLB entry would be purged. This was because the flush
routine needed the TLB entry to do the flush.
2) My initial approach to trying the fix the random faults was to
try and use flush_cache_page_if_present for all flush operations.
This actually made things worse and led to a couple of hardware
lockups. It finally dawned on me that some lines weren't being
flushed because the pte check code was racy. This resulted in
random inequivalent mappings to physical pages.
The __flush_cache_page tmpalias flush sets up its own TLB entry
and it doesn't need the existing TLB entry. As long as we can find
the pte pointer for the vm page, we can get the pfn and physical
address of the page. We can also purge the TLB entry for the page
before doing the flush. Further, __flush_cache_page uses a special
TLB entry that inhibits cache move-in.
When switching page mappings, we need to ensure that lines are
removed from the cache. It is not sufficient to just flush the
lines to memory as they may come back.
This made it clear that we needed to implement all the required
flush operations using tmpalias routines. This includes flushes
for user and kernel pages.
After modifying the code to use tmpalias flushes, it became clear
that the random segmentation faults were not fully resolved. The
frequency of faults was worse on systems with a 64 MB L2 (PA8900)
and systems with more CPUs (rp4440).
The warning that I added to flush_cache_page_if_present to detect
pages that couldn't be flushed triggered frequently on some systems.
Helge and I looked at the pages that couldn't be flushed and found
that the PTE was either cleared or for a swap page. Ignoring pages
that were swapped out seemed okay but pages with cleared PTEs seemed
problematic.
I looked at routines related to pte_clear and noticed ptep_clear_flush.
The default implementation just flushes the TLB entry. However, it was
obvious that on parisc we need to flush the cache page as well. If
we don't flush the cache page, stale lines will be left in the cache
and cause random corruption. Once a PTE is cleared, there is no way
to find the physical address associated with the PTE and flush the
associated page at a later time.
I implemented an updated change with a parisc specific version of
ptep_clear_flush. It fixed the random data corruption on Helge's rp4440
and rp3440, as well as on my c8000.
At this point, I realized that I could restore the code where we only
flush in flush_cache_page_if_present if the page has been accessed.
However, for this, we also need to flush the cache when the accessed
bit is cleared in ptep_clear_flush_young to keep things synchronized.
The default implementation only flushes the TLB entry.
Other changes in this version are:
1) Implement parisc specific version of ptep_get. It's identical to
default but needed in arch/parisc/include/asm/pgtable.h.
2) Revise parisc implementation of ptep_test_and_clear_young to use
ptep_get (READ_ONCE).
3) Drop parisc implementation of ptep_get_and_clear. We can use default.
4) Revise flush_kernel_vmap_range and invalidate_kernel_vmap_range to
use full data cache flush.
5) Move flush_cache_vmap and flush_cache_vunmap to cache.c. Handle
VM_IOREMAP case in flush_cache_vmap.
At this time, I don't know whether it is better to always flush when
the PTE present bit is set or when both the accessed and present bits
are set. The later saves flushing pages that haven't been accessed,
but we need to flush in ptep_clear_flush_young. It also needs a page
table lookup to find the PTE pointer. The lpa instruction only needs
a page table lookup when the PTE entry isn't in the TLB.
We don't atomically handle setting and clearing the _PAGE_ACCESSED bit.
If we miss an update, we may miss a flush and the cache may get corrupted.
Whether the current code is effectively atomic depends on process control.
When CONFIG_FLUSH_PAGE_ACCESSED is set to zero, the page will eventually
be flushed when the PTE is cleared or in flush_cache_page_if_present. The
_PAGE_ACCESSED bit is not used, so the problem is avoided.
The flush method can be selected using the CONFIG_FLUSH_PAGE_ACCESSED
define in cache.c. The default is 0. I didn't see a large difference
in performance.
Signed-off-by: John David Anglin <dave.anglin@bell.net>
Cc: <stable@vger.kernel.org> # v6.6+
Signed-off-by: Helge Deller <deller@gmx.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
arch/parisc/include/asm/cacheflush.h | 15 -
arch/parisc/include/asm/pgtable.h | 27 +-
arch/parisc/kernel/cache.c | 411 +++++++++++++++++++++--------------
3 files changed, 274 insertions(+), 179 deletions(-)
--- a/arch/parisc/include/asm/cacheflush.h
+++ b/arch/parisc/include/asm/cacheflush.h
@@ -31,18 +31,17 @@ void flush_cache_all_local(void);
void flush_cache_all(void);
void flush_cache_mm(struct mm_struct *mm);
-void flush_kernel_dcache_page_addr(const void *addr);
-
#define flush_kernel_dcache_range(start,size) \
flush_kernel_dcache_range_asm((start), (start)+(size));
+/* The only way to flush a vmap range is to flush whole cache */
#define ARCH_IMPLEMENTS_FLUSH_KERNEL_VMAP_RANGE 1
void flush_kernel_vmap_range(void *vaddr, int size);
void invalidate_kernel_vmap_range(void *vaddr, int size);
-#define flush_cache_vmap(start, end) flush_cache_all()
+void flush_cache_vmap(unsigned long start, unsigned long end);
#define flush_cache_vmap_early(start, end) do { } while (0)
-#define flush_cache_vunmap(start, end) flush_cache_all()
+void flush_cache_vunmap(unsigned long start, unsigned long end);
void flush_dcache_folio(struct folio *folio);
#define flush_dcache_folio flush_dcache_folio
@@ -77,17 +76,11 @@ void flush_cache_page(struct vm_area_str
void flush_cache_range(struct vm_area_struct *vma,
unsigned long start, unsigned long end);
-/* defined in pacache.S exported in cache.c used by flush_anon_page */
-void flush_dcache_page_asm(unsigned long phys_addr, unsigned long vaddr);
-
#define ARCH_HAS_FLUSH_ANON_PAGE
void flush_anon_page(struct vm_area_struct *vma, struct page *page, unsigned long vmaddr);
#define ARCH_HAS_FLUSH_ON_KUNMAP
-static inline void kunmap_flush_on_unmap(const void *addr)
-{
- flush_kernel_dcache_page_addr(addr);
-}
+void kunmap_flush_on_unmap(const void *addr);
#endif /* _PARISC_CACHEFLUSH_H */
--- a/arch/parisc/include/asm/pgtable.h
+++ b/arch/parisc/include/asm/pgtable.h
@@ -448,14 +448,17 @@ static inline pte_t pte_swp_clear_exclus
return pte;
}
+static inline pte_t ptep_get(pte_t *ptep)
+{
+ return READ_ONCE(*ptep);
+}
+#define ptep_get ptep_get
+
static inline int ptep_test_and_clear_young(struct vm_area_struct *vma, unsigned long addr, pte_t *ptep)
{
pte_t pte;
- if (!pte_young(*ptep))
- return 0;
-
- pte = *ptep;
+ pte = ptep_get(ptep);
if (!pte_young(pte)) {
return 0;
}
@@ -463,17 +466,10 @@ static inline int ptep_test_and_clear_yo
return 1;
}
-struct mm_struct;
-static inline pte_t ptep_get_and_clear(struct mm_struct *mm, unsigned long addr, pte_t *ptep)
-{
- pte_t old_pte;
-
- old_pte = *ptep;
- set_pte(ptep, __pte(0));
-
- return old_pte;
-}
+int ptep_clear_flush_young(struct vm_area_struct *vma, unsigned long addr, pte_t *ptep);
+pte_t ptep_clear_flush(struct vm_area_struct *vma, unsigned long addr, pte_t *ptep);
+struct mm_struct;
static inline void ptep_set_wrprotect(struct mm_struct *mm, unsigned long addr, pte_t *ptep)
{
set_pte(ptep, pte_wrprotect(*ptep));
@@ -511,7 +507,8 @@ static inline void ptep_set_wrprotect(st
#define HAVE_ARCH_UNMAPPED_AREA_TOPDOWN
#define __HAVE_ARCH_PTEP_TEST_AND_CLEAR_YOUNG
-#define __HAVE_ARCH_PTEP_GET_AND_CLEAR
+#define __HAVE_ARCH_PTEP_CLEAR_YOUNG_FLUSH
+#define __HAVE_ARCH_PTEP_CLEAR_FLUSH
#define __HAVE_ARCH_PTEP_SET_WRPROTECT
#define __HAVE_ARCH_PTE_SAME
--- a/arch/parisc/kernel/cache.c
+++ b/arch/parisc/kernel/cache.c
@@ -20,6 +20,7 @@
#include <linux/sched.h>
#include <linux/sched/mm.h>
#include <linux/syscalls.h>
+#include <linux/vmalloc.h>
#include <asm/pdc.h>
#include <asm/cache.h>
#include <asm/cacheflush.h>
@@ -31,20 +32,31 @@
#include <asm/mmu_context.h>
#include <asm/cachectl.h>
+#define PTR_PAGE_ALIGN_DOWN(addr) PTR_ALIGN_DOWN(addr, PAGE_SIZE)
+
+/*
+ * When nonzero, use _PAGE_ACCESSED bit to try to reduce the number
+ * of page flushes done flush_cache_page_if_present. There are some
+ * pros and cons in using this option. It may increase the risk of
+ * random segmentation faults.
+ */
+#define CONFIG_FLUSH_PAGE_ACCESSED 0
+
int split_tlb __ro_after_init;
int dcache_stride __ro_after_init;
int icache_stride __ro_after_init;
EXPORT_SYMBOL(dcache_stride);
+/* Internal implementation in arch/parisc/kernel/pacache.S */
void flush_dcache_page_asm(unsigned long phys_addr, unsigned long vaddr);
EXPORT_SYMBOL(flush_dcache_page_asm);
void purge_dcache_page_asm(unsigned long phys_addr, unsigned long vaddr);
void flush_icache_page_asm(unsigned long phys_addr, unsigned long vaddr);
-
-/* Internal implementation in arch/parisc/kernel/pacache.S */
void flush_data_cache_local(void *); /* flushes local data-cache only */
void flush_instruction_cache_local(void); /* flushes local code-cache only */
+static void flush_kernel_dcache_page_addr(const void *addr);
+
/* On some machines (i.e., ones with the Merced bus), there can be
* only a single PxTLB broadcast at a time; this must be guaranteed
* by software. We need a spinlock around all TLB flushes to ensure
@@ -317,6 +329,18 @@ __flush_cache_page(struct vm_area_struct
{
if (!static_branch_likely(&parisc_has_cache))
return;
+
+ /*
+ * The TLB is the engine of coherence on parisc. The CPU is
+ * entitled to speculate any page with a TLB mapping, so here
+ * we kill the mapping then flush the page along a special flush
+ * only alias mapping. This guarantees that the page is no-longer
+ * in the cache for any process and nor may it be speculatively
+ * read in (until the user or kernel specifically accesses it,
+ * of course).
+ */
+ flush_tlb_page(vma, vmaddr);
+
preempt_disable();
flush_dcache_page_asm(physaddr, vmaddr);
if (vma->vm_flags & VM_EXEC)
@@ -324,46 +348,44 @@ __flush_cache_page(struct vm_area_struct
preempt_enable();
}
-static void flush_user_cache_page(struct vm_area_struct *vma, unsigned long vmaddr)
+static void flush_kernel_dcache_page_addr(const void *addr)
{
- unsigned long flags, space, pgd, prot;
-#ifdef CONFIG_TLB_PTLOCK
- unsigned long pgd_lock;
-#endif
+ unsigned long vaddr = (unsigned long)addr;
+ unsigned long flags;
- vmaddr &= PAGE_MASK;
+ /* Purge TLB entry to remove translation on all CPUs */
+ purge_tlb_start(flags);
+ pdtlb(SR_KERNEL, addr);
+ purge_tlb_end(flags);
+ /* Use tmpalias flush to prevent data cache move-in */
preempt_disable();
+ flush_dcache_page_asm(__pa(vaddr), vaddr);
+ preempt_enable();
+}
- /* Set context for flush */
- local_irq_save(flags);
- prot = mfctl(8);
- space = mfsp(SR_USER);
- pgd = mfctl(25);
-#ifdef CONFIG_TLB_PTLOCK
- pgd_lock = mfctl(28);
-#endif
- switch_mm_irqs_off(NULL, vma->vm_mm, NULL);
- local_irq_restore(flags);
-
- flush_user_dcache_range_asm(vmaddr, vmaddr + PAGE_SIZE);
- if (vma->vm_flags & VM_EXEC)
- flush_user_icache_range_asm(vmaddr, vmaddr + PAGE_SIZE);
- flush_tlb_page(vma, vmaddr);
+static void flush_kernel_icache_page_addr(const void *addr)
+{
+ unsigned long vaddr = (unsigned long)addr;
+ unsigned long flags;
- /* Restore previous context */
- local_irq_save(flags);
-#ifdef CONFIG_TLB_PTLOCK
- mtctl(pgd_lock, 28);
-#endif
- mtctl(pgd, 25);
- mtsp(space, SR_USER);
- mtctl(prot, 8);
- local_irq_restore(flags);
+ /* Purge TLB entry to remove translation on all CPUs */
+ purge_tlb_start(flags);
+ pdtlb(SR_KERNEL, addr);
+ purge_tlb_end(flags);
+ /* Use tmpalias flush to prevent instruction cache move-in */
+ preempt_disable();
+ flush_icache_page_asm(__pa(vaddr), vaddr);
preempt_enable();
}
+void kunmap_flush_on_unmap(const void *addr)
+{
+ flush_kernel_dcache_page_addr(addr);
+}
+EXPORT_SYMBOL(kunmap_flush_on_unmap);
+
void flush_icache_pages(struct vm_area_struct *vma, struct page *page,
unsigned int nr)
{
@@ -371,13 +393,16 @@ void flush_icache_pages(struct vm_area_s
for (;;) {
flush_kernel_dcache_page_addr(kaddr);
- flush_kernel_icache_page(kaddr);
+ flush_kernel_icache_page_addr(kaddr);
if (--nr == 0)
break;
kaddr += PAGE_SIZE;
}
}
+/*
+ * Walk page directory for MM to find PTEP pointer for address ADDR.
+ */
static inline pte_t *get_ptep(struct mm_struct *mm, unsigned long addr)
{
pte_t *ptep = NULL;
@@ -406,6 +431,41 @@ static inline bool pte_needs_flush(pte_t
== (_PAGE_PRESENT | _PAGE_ACCESSED);
}
+/*
+ * Return user physical address. Returns 0 if page is not present.
+ */
+static inline unsigned long get_upa(struct mm_struct *mm, unsigned long addr)
+{
+ unsigned long flags, space, pgd, prot, pa;
+#ifdef CONFIG_TLB_PTLOCK
+ unsigned long pgd_lock;
+#endif
+
+ /* Save context */
+ local_irq_save(flags);
+ prot = mfctl(8);
+ space = mfsp(SR_USER);
+ pgd = mfctl(25);
+#ifdef CONFIG_TLB_PTLOCK
+ pgd_lock = mfctl(28);
+#endif
+
+ /* Set context for lpa_user */
+ switch_mm_irqs_off(NULL, mm, NULL);
+ pa = lpa_user(addr);
+
+ /* Restore previous context */
+#ifdef CONFIG_TLB_PTLOCK
+ mtctl(pgd_lock, 28);
+#endif
+ mtctl(pgd, 25);
+ mtsp(space, SR_USER);
+ mtctl(prot, 8);
+ local_irq_restore(flags);
+
+ return pa;
+}
+
void flush_dcache_folio(struct folio *folio)
{
struct address_space *mapping = folio_flush_mapping(folio);
@@ -454,50 +514,23 @@ void flush_dcache_folio(struct folio *fo
if (addr + nr * PAGE_SIZE > vma->vm_end)
nr = (vma->vm_end - addr) / PAGE_SIZE;
- if (parisc_requires_coherency()) {
- for (i = 0; i < nr; i++) {
- pte_t *ptep = get_ptep(vma->vm_mm,
- addr + i * PAGE_SIZE);
- if (!ptep)
- continue;
- if (pte_needs_flush(*ptep))
- flush_user_cache_page(vma,
- addr + i * PAGE_SIZE);
- /* Optimise accesses to the same table? */
- pte_unmap(ptep);
- }
- } else {
+ if (old_addr == 0 || (old_addr & (SHM_COLOUR - 1))
+ != (addr & (SHM_COLOUR - 1))) {
+ for (i = 0; i < nr; i++)
+ __flush_cache_page(vma,
+ addr + i * PAGE_SIZE,
+ (pfn + i) * PAGE_SIZE);
/*
- * The TLB is the engine of coherence on parisc:
- * The CPU is entitled to speculate any page
- * with a TLB mapping, so here we kill the
- * mapping then flush the page along a special
- * flush only alias mapping. This guarantees that
- * the page is no-longer in the cache for any
- * process and nor may it be speculatively read
- * in (until the user or kernel specifically
- * accesses it, of course)
+ * Software is allowed to have any number
+ * of private mappings to a page.
*/
- for (i = 0; i < nr; i++)
- flush_tlb_page(vma, addr + i * PAGE_SIZE);
- if (old_addr == 0 || (old_addr & (SHM_COLOUR - 1))
- != (addr & (SHM_COLOUR - 1))) {
- for (i = 0; i < nr; i++)
- __flush_cache_page(vma,
- addr + i * PAGE_SIZE,
- (pfn + i) * PAGE_SIZE);
- /*
- * Software is allowed to have any number
- * of private mappings to a page.
- */
- if (!(vma->vm_flags & VM_SHARED))
- continue;
- if (old_addr)
- pr_err("INEQUIVALENT ALIASES 0x%lx and 0x%lx in file %pD\n",
- old_addr, addr, vma->vm_file);
- if (nr == folio_nr_pages(folio))
- old_addr = addr;
- }
+ if (!(vma->vm_flags & VM_SHARED))
+ continue;
+ if (old_addr)
+ pr_err("INEQUIVALENT ALIASES 0x%lx and 0x%lx in file %pD\n",
+ old_addr, addr, vma->vm_file);
+ if (nr == folio_nr_pages(folio))
+ old_addr = addr;
}
WARN_ON(++count == 4096);
}
@@ -587,35 +620,28 @@ extern void purge_kernel_dcache_page_asm
extern void clear_user_page_asm(void *, unsigned long);
extern void copy_user_page_asm(void *, void *, unsigned long);
-void flush_kernel_dcache_page_addr(const void *addr)
-{
- unsigned long flags;
-
- flush_kernel_dcache_page_asm(addr);
- purge_tlb_start(flags);
- pdtlb(SR_KERNEL, addr);
- purge_tlb_end(flags);
-}
-EXPORT_SYMBOL(flush_kernel_dcache_page_addr);
-
static void flush_cache_page_if_present(struct vm_area_struct *vma,
- unsigned long vmaddr, unsigned long pfn)
+ unsigned long vmaddr)
{
+#if CONFIG_FLUSH_PAGE_ACCESSED
bool needs_flush = false;
- pte_t *ptep;
+ pte_t *ptep, pte;
- /*
- * The pte check is racy and sometimes the flush will trigger
- * a non-access TLB miss. Hopefully, the page has already been
- * flushed.
- */
ptep = get_ptep(vma->vm_mm, vmaddr);
if (ptep) {
- needs_flush = pte_needs_flush(*ptep);
+ pte = ptep_get(ptep);
+ needs_flush = pte_needs_flush(pte);
pte_unmap(ptep);
}
if (needs_flush)
- flush_cache_page(vma, vmaddr, pfn);
+ __flush_cache_page(vma, vmaddr, PFN_PHYS(pte_pfn(pte)));
+#else
+ struct mm_struct *mm = vma->vm_mm;
+ unsigned long physaddr = get_upa(mm, vmaddr);
+
+ if (physaddr)
+ __flush_cache_page(vma, vmaddr, PAGE_ALIGN_DOWN(physaddr));
+#endif
}
void copy_user_highpage(struct page *to, struct page *from,
@@ -625,7 +651,7 @@ void copy_user_highpage(struct page *to,
kfrom = kmap_local_page(from);
kto = kmap_local_page(to);
- flush_cache_page_if_present(vma, vaddr, page_to_pfn(from));
+ __flush_cache_page(vma, vaddr, PFN_PHYS(page_to_pfn(from)));
copy_page_asm(kto, kfrom);
kunmap_local(kto);
kunmap_local(kfrom);
@@ -634,16 +660,17 @@ void copy_user_highpage(struct page *to,
void copy_to_user_page(struct vm_area_struct *vma, struct page *page,
unsigned long user_vaddr, void *dst, void *src, int len)
{
- flush_cache_page_if_present(vma, user_vaddr, page_to_pfn(page));
+ __flush_cache_page(vma, user_vaddr, PFN_PHYS(page_to_pfn(page)));
memcpy(dst, src, len);
- flush_kernel_dcache_range_asm((unsigned long)dst, (unsigned long)dst + len);
+ flush_kernel_dcache_page_addr(PTR_PAGE_ALIGN_DOWN(dst));
}
void copy_from_user_page(struct vm_area_struct *vma, struct page *page,
unsigned long user_vaddr, void *dst, void *src, int len)
{
- flush_cache_page_if_present(vma, user_vaddr, page_to_pfn(page));
+ __flush_cache_page(vma, user_vaddr, PFN_PHYS(page_to_pfn(page)));
memcpy(dst, src, len);
+ flush_kernel_dcache_page_addr(PTR_PAGE_ALIGN_DOWN(src));
}
/* __flush_tlb_range()
@@ -677,32 +704,10 @@ int __flush_tlb_range(unsigned long sid,
static void flush_cache_pages(struct vm_area_struct *vma, unsigned long start, unsigned long end)
{
- unsigned long addr, pfn;
- pte_t *ptep;
+ unsigned long addr;
- for (addr = start; addr < end; addr += PAGE_SIZE) {
- bool needs_flush = false;
- /*
- * The vma can contain pages that aren't present. Although
- * the pte search is expensive, we need the pte to find the
- * page pfn and to check whether the page should be flushed.
- */
- ptep = get_ptep(vma->vm_mm, addr);
- if (ptep) {
- needs_flush = pte_needs_flush(*ptep);
- pfn = pte_pfn(*ptep);
- pte_unmap(ptep);
- }
- if (needs_flush) {
- if (parisc_requires_coherency()) {
- flush_user_cache_page(vma, addr);
- } else {
- if (WARN_ON(!pfn_valid(pfn)))
- return;
- __flush_cache_page(vma, addr, PFN_PHYS(pfn));
- }
- }
- }
+ for (addr = start; addr < end; addr += PAGE_SIZE)
+ flush_cache_page_if_present(vma, addr);
}
static inline unsigned long mm_total_size(struct mm_struct *mm)
@@ -753,21 +758,19 @@ void flush_cache_range(struct vm_area_st
if (WARN_ON(IS_ENABLED(CONFIG_SMP) && arch_irqs_disabled()))
return;
flush_tlb_range(vma, start, end);
- flush_cache_all();
+ if (vma->vm_flags & VM_EXEC)
+ flush_cache_all();
+ else
+ flush_data_cache();
return;
}
- flush_cache_pages(vma, start, end);
+ flush_cache_pages(vma, start & PAGE_MASK, end);
}
void flush_cache_page(struct vm_area_struct *vma, unsigned long vmaddr, unsigned long pfn)
{
- if (WARN_ON(!pfn_valid(pfn)))
- return;
- if (parisc_requires_coherency())
- flush_user_cache_page(vma, vmaddr);
- else
- __flush_cache_page(vma, vmaddr, PFN_PHYS(pfn));
+ __flush_cache_page(vma, vmaddr, PFN_PHYS(pfn));
}
void flush_anon_page(struct vm_area_struct *vma, struct page *page, unsigned long vmaddr)
@@ -775,34 +778,133 @@ void flush_anon_page(struct vm_area_stru
if (!PageAnon(page))
return;
- if (parisc_requires_coherency()) {
- if (vma->vm_flags & VM_SHARED)
- flush_data_cache();
- else
- flush_user_cache_page(vma, vmaddr);
+ __flush_cache_page(vma, vmaddr, PFN_PHYS(page_to_pfn(page)));
+}
+
+int ptep_clear_flush_young(struct vm_area_struct *vma, unsigned long addr,
+ pte_t *ptep)
+{
+ pte_t pte = ptep_get(ptep);
+
+ if (!pte_young(pte))
+ return 0;
+ set_pte(ptep, pte_mkold(pte));
+#if CONFIG_FLUSH_PAGE_ACCESSED
+ __flush_cache_page(vma, addr, PFN_PHYS(pte_pfn(pte)));
+#endif
+ return 1;
+}
+
+/*
+ * After a PTE is cleared, we have no way to flush the cache for
+ * the physical page. On PA8800 and PA8900 processors, these lines
+ * can cause random cache corruption. Thus, we must flush the cache
+ * as well as the TLB when clearing a PTE that's valid.
+ */
+pte_t ptep_clear_flush(struct vm_area_struct *vma, unsigned long addr,
+ pte_t *ptep)
+{
+ struct mm_struct *mm = (vma)->vm_mm;
+ pte_t pte = ptep_get_and_clear(mm, addr, ptep);
+ unsigned long pfn = pte_pfn(pte);
+
+ if (pfn_valid(pfn))
+ __flush_cache_page(vma, addr, PFN_PHYS(pfn));
+ else if (pte_accessible(mm, pte))
+ flush_tlb_page(vma, addr);
+
+ return pte;
+}
+
+/*
+ * The physical address for pages in the ioremap case can be obtained
+ * from the vm_struct struct. I wasn't able to successfully handle the
+ * vmalloc and vmap cases. We have an array of struct page pointers in
+ * the uninitialized vmalloc case but the flush failed using page_to_pfn.
+ */
+void flush_cache_vmap(unsigned long start, unsigned long end)
+{
+ unsigned long addr, physaddr;
+ struct vm_struct *vm;
+
+ /* Prevent cache move-in */
+ flush_tlb_kernel_range(start, end);
+
+ if (end - start >= parisc_cache_flush_threshold) {
+ flush_cache_all();
return;
}
- flush_tlb_page(vma, vmaddr);
- preempt_disable();
- flush_dcache_page_asm(page_to_phys(page), vmaddr);
- preempt_enable();
+ if (WARN_ON_ONCE(!is_vmalloc_addr((void *)start))) {
+ flush_cache_all();
+ return;
+ }
+
+ vm = find_vm_area((void *)start);
+ if (WARN_ON_ONCE(!vm)) {
+ flush_cache_all();
+ return;
+ }
+
+ /* The physical addresses of IOREMAP regions are contiguous */
+ if (vm->flags & VM_IOREMAP) {
+ physaddr = vm->phys_addr;
+ for (addr = start; addr < end; addr += PAGE_SIZE) {
+ preempt_disable();
+ flush_dcache_page_asm(physaddr, start);
+ flush_icache_page_asm(physaddr, start);
+ preempt_enable();
+ physaddr += PAGE_SIZE;
+ }
+ return;
+ }
+
+ flush_cache_all();
}
+EXPORT_SYMBOL(flush_cache_vmap);
+/*
+ * The vm_struct has been retired and the page table is set up. The
+ * last page in the range is a guard page. Its physical address can't
+ * be determined using lpa, so there is no way to flush the range
+ * using flush_dcache_page_asm.
+ */
+void flush_cache_vunmap(unsigned long start, unsigned long end)
+{
+ /* Prevent cache move-in */
+ flush_tlb_kernel_range(start, end);
+ flush_data_cache();
+}
+EXPORT_SYMBOL(flush_cache_vunmap);
+
+/*
+ * On systems with PA8800/PA8900 processors, there is no way to flush
+ * a vmap range other than using the architected loop to flush the
+ * entire cache. The page directory is not set up, so we can't use
+ * fdc, etc. FDCE/FICE don't work to flush a portion of the cache.
+ * L2 is physically indexed but FDCE/FICE instructions in virtual
+ * mode output their virtual address on the core bus, not their
+ * real address. As a result, the L2 cache index formed from the
+ * virtual address will most likely not be the same as the L2 index
+ * formed from the real address.
+ */
void flush_kernel_vmap_range(void *vaddr, int size)
{
unsigned long start = (unsigned long)vaddr;
unsigned long end = start + size;
- if ((!IS_ENABLED(CONFIG_SMP) || !arch_irqs_disabled()) &&
- (unsigned long)size >= parisc_cache_flush_threshold) {
- flush_tlb_kernel_range(start, end);
- flush_data_cache();
+ flush_tlb_kernel_range(start, end);
+
+ if (!static_branch_likely(&parisc_has_dcache))
+ return;
+
+ /* If interrupts are disabled, we can only do local flush */
+ if (WARN_ON(IS_ENABLED(CONFIG_SMP) && arch_irqs_disabled())) {
+ flush_data_cache_local(NULL);
return;
}
- flush_kernel_dcache_range_asm(start, end);
- flush_tlb_kernel_range(start, end);
+ flush_data_cache();
}
EXPORT_SYMBOL(flush_kernel_vmap_range);
@@ -814,15 +916,18 @@ void invalidate_kernel_vmap_range(void *
/* Ensure DMA is complete */
asm_syncdma();
- if ((!IS_ENABLED(CONFIG_SMP) || !arch_irqs_disabled()) &&
- (unsigned long)size >= parisc_cache_flush_threshold) {
- flush_tlb_kernel_range(start, end);
- flush_data_cache();
+ flush_tlb_kernel_range(start, end);
+
+ if (!static_branch_likely(&parisc_has_dcache))
+ return;
+
+ /* If interrupts are disabled, we can only do local flush */
+ if (WARN_ON(IS_ENABLED(CONFIG_SMP) && arch_irqs_disabled())) {
+ flush_data_cache_local(NULL);
return;
}
- purge_kernel_dcache_range_asm(start, end);
- flush_tlb_kernel_range(start, end);
+ flush_data_cache();
}
EXPORT_SYMBOL(invalidate_kernel_vmap_range);
next prev parent reply other threads:[~2024-06-19 13:06 UTC|newest]
Thread overview: 282+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-06-19 12:52 [PATCH 6.6 000/267] 6.6.35-rc1 review Greg Kroah-Hartman
2024-06-19 12:52 ` [PATCH 6.6 001/267] wifi: mac80211: mesh: Fix leak of mesh_preq_queue objects Greg Kroah-Hartman
2024-06-19 12:52 ` [PATCH 6.6 002/267] wifi: mac80211: Fix deadlock in ieee80211_sta_ps_deliver_wakeup() Greg Kroah-Hartman
2024-06-19 12:52 ` [PATCH 6.6 003/267] wifi: cfg80211: fully move wiphy work to unbound workqueue Greg Kroah-Hartman
2024-06-19 12:52 ` [PATCH 6.6 004/267] wifi: cfg80211: Lock wiphy in cfg80211_get_station Greg Kroah-Hartman
2024-06-19 12:52 ` [PATCH 6.6 005/267] wifi: cfg80211: pmsr: use correct nla_get_uX functions Greg Kroah-Hartman
2024-06-19 12:52 ` [PATCH 6.6 006/267] wifi: iwlwifi: mvm: dont initialize csa_work twice Greg Kroah-Hartman
2024-06-19 12:52 ` [PATCH 6.6 007/267] wifi: iwlwifi: mvm: revert gen2 TX A-MPDU size to 64 Greg Kroah-Hartman
2024-06-19 12:52 ` [PATCH 6.6 008/267] wifi: iwlwifi: mvm: set properly mac header Greg Kroah-Hartman
2024-06-19 12:52 ` [PATCH 6.6 009/267] wifi: iwlwifi: dbg_ini: move iwl_dbg_tlv_free outside of debugfs ifdef Greg Kroah-Hartman
2024-06-19 12:52 ` [PATCH 6.6 010/267] wifi: iwlwifi: mvm: check n_ssids before accessing the ssids Greg Kroah-Hartman
2024-06-19 12:52 ` [PATCH 6.6 011/267] wifi: iwlwifi: mvm: dont read past the mfuart notifcation Greg Kroah-Hartman
2024-06-19 12:52 ` [PATCH 6.6 012/267] wifi: mac80211: correctly parse Spatial Reuse Parameter Set element Greg Kroah-Hartman
2024-06-19 12:52 ` [PATCH 6.6 013/267] scsi: ufs: mcq: Fix error output and clean up ufshcd_mcq_abort() Greg Kroah-Hartman
2024-06-19 12:52 ` [PATCH 6.6 014/267] RISC-V: KVM: No need to use mask when hart-index-bit is 0 Greg Kroah-Hartman
2024-06-19 12:52 ` [PATCH 6.6 015/267] RISC-V: KVM: Fix incorrect reg_subtype labels in kvm_riscv_vcpu_set_reg_isa_ext function Greg Kroah-Hartman
2024-06-19 12:52 ` [PATCH 6.6 016/267] ax25: Fix refcount imbalance on inbound connections Greg Kroah-Hartman
2024-06-19 12:52 ` [PATCH 6.6 017/267] ax25: Replace kfree() in ax25_dev_free() with ax25_dev_put() Greg Kroah-Hartman
2024-06-19 12:52 ` [PATCH 6.6 018/267] net/ncsi: Simplify Kconfig/dts control flow Greg Kroah-Hartman
2024-06-19 12:52 ` [PATCH 6.6 019/267] net/ncsi: Fix the multi thread manner of NCSI driver Greg Kroah-Hartman
2024-06-19 12:52 ` [PATCH 6.6 020/267] net: phy: micrel: fix KSZ9477 PHY issues after suspend/resume Greg Kroah-Hartman
2024-06-19 12:52 ` [PATCH 6.6 021/267] bpf: Store ref_ctr_offsets values in bpf_uprobe array Greg Kroah-Hartman
2024-06-19 12:52 ` [PATCH 6.6 022/267] bpf: Optimize the free of inner map Greg Kroah-Hartman
2024-06-19 12:52 ` [PATCH 6.6 023/267] bpf: Fix a potential use-after-free in bpf_link_free() Greg Kroah-Hartman
2024-06-19 12:52 ` [PATCH 6.6 024/267] KVM: SEV-ES: Disallow SEV-ES guests when X86_FEATURE_LBRV is absent Greg Kroah-Hartman
2024-06-19 12:52 ` [PATCH 6.6 025/267] KVM: SEV: Do not intercept accesses to MSR_IA32_XSS for SEV-ES guests Greg Kroah-Hartman
2024-06-19 12:52 ` [PATCH 6.6 026/267] KVM: SEV-ES: Delegate LBR virtualization to the processor Greg Kroah-Hartman
2024-06-19 12:52 ` [PATCH 6.6 027/267] vmxnet3: disable rx data ring on dma allocation failure Greg Kroah-Hartman
2024-06-19 12:52 ` [PATCH 6.6 028/267] ipv6: ioam: block BH from ioam6_output() Greg Kroah-Hartman
2024-06-19 12:53 ` [PATCH 6.6 029/267] ipv6: sr: block BH in seg6_output_core() and seg6_input_core() Greg Kroah-Hartman
2024-06-19 12:53 ` [PATCH 6.6 030/267] net: tls: fix marking packets as decrypted Greg Kroah-Hartman
2024-06-19 12:53 ` [PATCH 6.6 031/267] bpf: Set run context for rawtp test_run callback Greg Kroah-Hartman
2024-06-19 12:53 ` [PATCH 6.6 032/267] octeontx2-af: Always allocate PF entries from low prioriy zone Greg Kroah-Hartman
2024-06-19 12:53 ` [PATCH 6.6 033/267] net/smc: avoid overwriting when adjusting sock bufsizes Greg Kroah-Hartman
2024-06-19 12:53 ` [PATCH 6.6 034/267] net: phy: Micrel KSZ8061: fix errata solution not taking effect problem Greg Kroah-Hartman
2024-06-19 12:53 ` [PATCH 6.6 035/267] net: sched: sch_multiq: fix possible OOB write in multiq_tune() Greg Kroah-Hartman
2024-06-19 12:53 ` [PATCH 6.6 036/267] vxlan: Fix regression when dropping packets due to invalid src addresses Greg Kroah-Hartman
2024-06-19 12:53 ` [PATCH 6.6 037/267] tcp: count CLOSE-WAIT sockets for TCP_MIB_CURRESTAB Greg Kroah-Hartman
2024-06-19 12:53 ` [PATCH 6.6 038/267] mptcp: count CLOSE-WAIT sockets for MPTCP_MIB_CURRESTAB Greg Kroah-Hartman
2024-06-19 12:53 ` [PATCH 6.6 039/267] net/mlx5: Stop waiting for PCI if pci channel is offline Greg Kroah-Hartman
2024-06-19 12:53 ` [PATCH 6.6 040/267] net/mlx5: Always stop health timer during driver removal Greg Kroah-Hartman
2024-06-19 12:53 ` [PATCH 6.6 041/267] net/mlx5: Fix tainted pointer delete is case of flow rules creation fail Greg Kroah-Hartman
2024-06-19 12:53 ` [PATCH 6.6 042/267] net/sched: taprio: always validate TCA_TAPRIO_ATTR_PRIOMAP Greg Kroah-Hartman
2024-06-19 12:53 ` [PATCH 6.6 043/267] ptp: Fix error message on failed pin verification Greg Kroah-Hartman
2024-06-19 12:53 ` [PATCH 6.6 044/267] ice: fix iteration of TLVs in Preserved Fields Area Greg Kroah-Hartman
2024-06-19 12:53 ` [PATCH 6.6 045/267] ice: remove af_xdp_zc_qps bitmap Greg Kroah-Hartman
2024-06-19 12:53 ` [PATCH 6.6 046/267] ice: add flag to distinguish reset from .ndo_bpf in XDP rings config Greg Kroah-Hartman
2024-06-19 12:53 ` [PATCH 6.6 047/267] net: wwan: iosm: Fix tainted pointer delete is case of region creation fail Greg Kroah-Hartman
2024-06-19 12:53 ` [PATCH 6.6 048/267] af_unix: Set sk->sk_state under unix_state_lock() for truly disconencted peer Greg Kroah-Hartman
2024-06-19 12:53 ` [PATCH 6.6 049/267] af_unix: Annodate data-races around sk->sk_state for writers Greg Kroah-Hartman
2024-06-19 12:53 ` [PATCH 6.6 050/267] af_unix: Annotate data-race of sk->sk_state in unix_inq_len() Greg Kroah-Hartman
2024-06-19 12:53 ` [PATCH 6.6 051/267] af_unix: Annotate data-races around sk->sk_state in unix_write_space() and poll() Greg Kroah-Hartman
2024-06-19 12:53 ` [PATCH 6.6 052/267] af_unix: Annotate data-race of sk->sk_state in unix_stream_connect() Greg Kroah-Hartman
2024-06-19 12:53 ` [PATCH 6.6 053/267] af_unix: Annotate data-races around sk->sk_state in sendmsg() and recvmsg() Greg Kroah-Hartman
2024-06-19 12:53 ` [PATCH 6.6 054/267] af_unix: Annotate data-race of sk->sk_state in unix_stream_read_skb() Greg Kroah-Hartman
2024-06-19 12:53 ` [PATCH 6.6 055/267] af_unix: Annotate data-races around sk->sk_state in UNIX_DIAG Greg Kroah-Hartman
2024-06-19 12:53 ` [PATCH 6.6 056/267] af_unix: Annotate data-races around sk->sk_sndbuf Greg Kroah-Hartman
2024-06-19 12:53 ` [PATCH 6.6 057/267] af_unix: Annotate data-race of net->unx.sysctl_max_dgram_qlen Greg Kroah-Hartman
2024-06-19 12:53 ` [PATCH 6.6 058/267] af_unix: Use unix_recvq_full_lockless() in unix_stream_connect() Greg Kroah-Hartman
2024-06-19 12:53 ` [PATCH 6.6 059/267] af_unix: Use skb_queue_empty_lockless() in unix_release_sock() Greg Kroah-Hartman
2024-06-19 12:53 ` [PATCH 6.6 060/267] af_unix: Use skb_queue_len_lockless() in sk_diag_show_rqlen() Greg Kroah-Hartman
2024-06-19 12:53 ` [PATCH 6.6 061/267] af_unix: Annotate data-race of sk->sk_shutdown in sk_diag_fill() Greg Kroah-Hartman
2024-06-19 12:53 ` [PATCH 6.6 062/267] ipv6: fix possible race in __fib6_drop_pcpu_from() Greg Kroah-Hartman
2024-06-19 12:53 ` [PATCH 6.6 063/267] net: ethtool: fix the error condition in ethtool_get_phy_stats_ethtool() Greg Kroah-Hartman
2024-06-19 12:53 ` [PATCH 6.6 064/267] ksmbd: use rwsem instead of rwlock for lease break Greg Kroah-Hartman
2024-06-19 12:53 ` [PATCH 6.6 065/267] firmware: qcom_scm: disable clocks if qcom_scm_bw_enable() fails Greg Kroah-Hartman
2024-06-19 12:53 ` [PATCH 6.6 066/267] memory-failure: use a folio in me_huge_page() Greg Kroah-Hartman
2024-06-19 12:53 ` [PATCH 6.6 067/267] mm/memory-failure: fix handling of dissolved but not taken off from buddy pages Greg Kroah-Hartman
2024-06-19 12:53 ` [PATCH 6.6 068/267] selftests/mm: conform test to TAP format output Greg Kroah-Hartman
2024-06-19 12:53 ` [PATCH 6.6 069/267] selftests/mm: log a consistent test name for check_compaction Greg Kroah-Hartman
2024-06-19 13:05 ` Mark Brown
2024-06-19 12:53 ` [PATCH 6.6 070/267] selftests/mm: compaction_test: fix bogus test success on Aarch64 Greg Kroah-Hartman
2024-06-19 12:53 ` [PATCH 6.6 071/267] irqchip/riscv-intc: Allow large non-standard interrupt number Greg Kroah-Hartman
2024-06-19 12:53 ` [PATCH 6.6 072/267] irqchip/riscv-intc: Introduce Andes hart-level interrupt controller Greg Kroah-Hartman
2024-06-19 12:53 ` [PATCH 6.6 073/267] irqchip/riscv-intc: Prevent memory leak when riscv_intc_init_common() fails Greg Kroah-Hartman
2024-06-19 12:53 ` [PATCH 6.6 074/267] eventfs: Update all the eventfs_inodes from the events descriptor Greg Kroah-Hartman
2024-06-19 12:53 ` [PATCH 6.6 075/267] bpf: fix multi-uprobe PID filtering logic Greg Kroah-Hartman
2024-06-19 12:53 ` [PATCH 6.6 076/267] nilfs2: return the mapped address from nilfs_get_page() Greg Kroah-Hartman
2024-06-19 12:53 ` [PATCH 6.6 077/267] nilfs2: fix nilfs_empty_dir() misjudgment and long loop on I/O errors Greg Kroah-Hartman
2024-06-19 12:53 ` [PATCH 6.6 078/267] io_uring/rsrc: dont lock while !TASK_RUNNING Greg Kroah-Hartman
2024-06-19 12:53 ` [PATCH 6.6 079/267] io_uring: check for non-NULL file pointer in io_file_can_poll() Greg Kroah-Hartman
2024-06-19 12:53 ` [PATCH 6.6 080/267] USB: class: cdc-wdm: Fix CPU lockup caused by excessive log messages Greg Kroah-Hartman
2024-06-19 12:53 ` [PATCH 6.6 081/267] USB: xen-hcd: Traverse host/ when CONFIG_USB_XEN_HCD is selected Greg Kroah-Hartman
2024-06-19 12:53 ` [PATCH 6.6 082/267] usb: typec: tcpm: fix use-after-free case in tcpm_register_source_caps Greg Kroah-Hartman
2024-06-19 12:53 ` [PATCH 6.6 083/267] usb: typec: tcpm: Ignore received Hard Reset in TOGGLING state Greg Kroah-Hartman
2024-06-19 12:53 ` [PATCH 6.6 084/267] mei: me: release irq in mei_me_pci_resume error path Greg Kroah-Hartman
2024-06-19 12:53 ` [PATCH 6.6 085/267] tty: n_tty: Fix buffer offsets when lookahead is used Greg Kroah-Hartman
2024-06-19 12:53 ` [PATCH 6.6 086/267] serial: port: Dont block system suspend even if bytes are left to xmit Greg Kroah-Hartman
2024-06-19 12:53 ` [PATCH 6.6 087/267] landlock: Fix d_parent walk Greg Kroah-Hartman
2024-06-19 12:53 ` [PATCH 6.6 088/267] jfs: xattr: fix buffer overflow for invalid xattr Greg Kroah-Hartman
2024-06-19 12:54 ` [PATCH 6.6 089/267] xhci: Set correct transferred length for cancelled bulk transfers Greg Kroah-Hartman
2024-06-19 12:54 ` [PATCH 6.6 090/267] xhci: Apply reset resume quirk to Etron EJ188 xHCI host Greg Kroah-Hartman
2024-06-19 12:54 ` [PATCH 6.6 091/267] xhci: Handle TD clearing for multiple streams case Greg Kroah-Hartman
2024-06-19 12:54 ` [PATCH 6.6 092/267] xhci: Apply broken streams quirk to Etron EJ188 xHCI host Greg Kroah-Hartman
2024-06-19 12:54 ` [PATCH 6.6 093/267] thunderbolt: debugfs: Fix margin debugfs node creation condition Greg Kroah-Hartman
2024-06-19 12:54 ` [PATCH 6.6 094/267] scsi: core: Disable CDL by default Greg Kroah-Hartman
2024-06-19 12:54 ` [PATCH 6.6 095/267] scsi: mpi3mr: Fix ATA NCQ priority support Greg Kroah-Hartman
2024-06-19 12:54 ` [PATCH 6.6 096/267] scsi: mpt3sas: Avoid test/set_bit() operating in non-allocated memory Greg Kroah-Hartman
2024-06-19 12:54 ` [PATCH 6.6 097/267] scsi: sd: Use READ(16) when reading block zero on large capacity disks Greg Kroah-Hartman
2024-06-19 12:54 ` [PATCH 6.6 098/267] gve: Clear napi->skb before dev_kfree_skb_any() Greg Kroah-Hartman
2024-06-19 12:54 ` [PATCH 6.6 099/267] powerpc/uaccess: Fix build errors seen with GCC 13/14 Greg Kroah-Hartman
2024-06-19 12:54 ` [PATCH 6.6 100/267] HID: nvidia-shield: Add missing check for input_ff_create_memless Greg Kroah-Hartman
2024-06-19 12:54 ` [PATCH 6.6 101/267] cxl/test: Add missing vmalloc.h for tools/testing/cxl/test/mem.c Greg Kroah-Hartman
2024-06-19 12:54 ` [PATCH 6.6 102/267] cxl/region: Fix memregion leaks in devm_cxl_add_region() Greg Kroah-Hartman
2024-06-19 12:54 ` [PATCH 6.6 103/267] cachefiles: add output string to cachefiles_obj_[get|put]_ondemand_fd Greg Kroah-Hartman
2024-06-19 12:54 ` [PATCH 6.6 104/267] cachefiles: remove requests from xarray during flushing requests Greg Kroah-Hartman
2024-06-19 12:54 ` [PATCH 6.6 105/267] cachefiles: introduce object ondemand state Greg Kroah-Hartman
2024-06-19 12:54 ` [PATCH 6.6 106/267] cachefiles: extract ondemand info field from cachefiles_object Greg Kroah-Hartman
2024-06-19 12:54 ` [PATCH 6.6 107/267] cachefiles: resend an open request if the read requests object is closed Greg Kroah-Hartman
2024-06-19 12:54 ` [PATCH 6.6 108/267] cachefiles: add spin_lock for cachefiles_ondemand_info Greg Kroah-Hartman
2024-06-19 12:54 ` [PATCH 6.6 109/267] cachefiles: add restore command to recover inflight ondemand read requests Greg Kroah-Hartman
2024-06-19 12:54 ` [PATCH 6.6 110/267] cachefiles: fix slab-use-after-free in cachefiles_ondemand_get_fd() Greg Kroah-Hartman
2024-06-19 12:54 ` [PATCH 6.6 111/267] cachefiles: fix slab-use-after-free in cachefiles_ondemand_daemon_read() Greg Kroah-Hartman
2024-06-19 12:54 ` [PATCH 6.6 112/267] cachefiles: remove err_put_fd label " Greg Kroah-Hartman
2024-06-19 12:54 ` [PATCH 6.6 113/267] cachefiles: never get a new anonymous fd if ondemand_id is valid Greg Kroah-Hartman
2024-06-19 12:54 ` [PATCH 6.6 114/267] cachefiles: defer exposing anon_fd until after copy_to_user() succeeds Greg Kroah-Hartman
2024-06-19 12:54 ` [PATCH 6.6 115/267] cachefiles: flush all requests after setting CACHEFILES_DEAD Greg Kroah-Hartman
2024-06-19 12:54 ` [PATCH 6.6 116/267] selftests/ftrace: Fix to check required event file Greg Kroah-Hartman
2024-06-19 12:54 ` [PATCH 6.6 117/267] clk: sifive: Do not register clkdevs for PRCI clocks Greg Kroah-Hartman
2024-06-19 12:54 ` [PATCH 6.6 118/267] NFSv4.1 enforce rootpath check in fs_location query Greg Kroah-Hartman
2024-06-19 12:54 ` [PATCH 6.6 119/267] SUNRPC: return proper error from gss_wrap_req_priv Greg Kroah-Hartman
2024-06-19 12:54 ` [PATCH 6.6 120/267] NFS: add barriers when testing for NFS_FSDATA_BLOCKED Greg Kroah-Hartman
2024-06-19 12:54 ` [PATCH 6.6 121/267] selftests/tracing: Fix event filter test to retry up to 10 times Greg Kroah-Hartman
2024-06-19 12:54 ` [PATCH 6.6 122/267] nvme: fix nvme_pr_* status code parsing Greg Kroah-Hartman
2024-06-19 12:54 ` [PATCH 6.6 123/267] drm/panel: sitronix-st7789v: Add check for of_drm_get_panel_orientation Greg Kroah-Hartman
2024-06-19 12:54 ` [PATCH 6.6 124/267] platform/x86: dell-smbios: Fix wrong token data in sysfs Greg Kroah-Hartman
2024-06-19 12:54 ` [PATCH 6.6 125/267] gpio: tqmx86: fix typo in Kconfig label Greg Kroah-Hartman
2024-06-19 12:54 ` [PATCH 6.6 126/267] gpio: tqmx86: introduce shadow register for GPIO output value Greg Kroah-Hartman
2024-06-19 12:54 ` [PATCH 6.6 127/267] gpio: tqmx86: store IRQ trigger type and unmask status separately Greg Kroah-Hartman
2024-06-19 12:54 ` [PATCH 6.6 128/267] gpio: tqmx86: fix broken IRQ_TYPE_EDGE_BOTH interrupt type Greg Kroah-Hartman
2024-06-19 12:54 ` [PATCH 6.6 129/267] HID: core: remove unnecessary WARN_ON() in implement() Greg Kroah-Hartman
2024-06-19 12:54 ` [PATCH 6.6 130/267] iommu/amd: Fix sysfs leak in iommu init Greg Kroah-Hartman
2024-06-19 12:54 ` [PATCH 6.6 131/267] iommu: Return right value in iommu_sva_bind_device() Greg Kroah-Hartman
2024-06-19 12:54 ` [PATCH 6.6 132/267] io_uring/io-wq: Use set_bit() and test_bit() at worker->flags Greg Kroah-Hartman
2024-06-19 12:54 ` [PATCH 6.6 133/267] io_uring/io-wq: avoid garbage value of match in io_wq_enqueue() Greg Kroah-Hartman
2024-06-19 12:54 ` [PATCH 6.6 134/267] HID: logitech-dj: Fix memory leak in logi_dj_recv_switch_to_dj_mode() Greg Kroah-Hartman
2024-06-19 12:54 ` [PATCH 6.6 135/267] drm/vmwgfx: Refactor drm connector probing for display modes Greg Kroah-Hartman
2024-06-19 12:54 ` [PATCH 6.6 136/267] drm/vmwgfx: Filter modes which exceed graphics memory Greg Kroah-Hartman
2024-06-19 12:54 ` [PATCH 6.6 137/267] drm/vmwgfx: 3D disabled should not effect STDU memory limits Greg Kroah-Hartman
2024-06-19 12:54 ` [PATCH 6.6 138/267] drm/vmwgfx: Remove STDU logic from generic mode_valid function Greg Kroah-Hartman
2024-06-19 12:54 ` [PATCH 6.6 139/267] drm/vmwgfx: Dont memcmp equivalent pointers Greg Kroah-Hartman
2024-06-19 12:54 ` [PATCH 6.6 140/267] af_unix: Annotate data-race of sk->sk_state in unix_accept() Greg Kroah-Hartman
2024-06-19 12:54 ` [PATCH 6.6 141/267] modpost: do not warn about missing MODULE_DESCRIPTION() for vmlinux.o Greg Kroah-Hartman
2024-06-19 12:54 ` [PATCH 6.6 142/267] net: sfp: Always call `sfp_sm_mod_remove()` on remove Greg Kroah-Hartman
2024-06-19 12:54 ` [PATCH 6.6 143/267] net: hns3: fix kernel crash problem in concurrent scenario Greg Kroah-Hartman
2024-06-19 12:54 ` [PATCH 6.6 144/267] net: hns3: add cond_resched() to hns3 ring buffer init process Greg Kroah-Hartman
2024-06-19 12:54 ` [PATCH 6.6 145/267] liquidio: Adjust a NULL pointer handling path in lio_vf_rep_copy_packet Greg Kroah-Hartman
2024-06-19 12:54 ` [PATCH 6.6 146/267] net: stmmac: dwmac-qcom-ethqos: Configure host DMA width Greg Kroah-Hartman
2024-06-19 12:54 ` [PATCH 6.6 147/267] drm/komeda: check for error-valued pointer Greg Kroah-Hartman
2024-06-19 12:54 ` [PATCH 6.6 148/267] drm/bridge/panel: Fix runtime warning on panel bridge release Greg Kroah-Hartman
2024-06-19 12:55 ` [PATCH 6.6 149/267] tcp: fix race in tcp_v6_syn_recv_sock() Greg Kroah-Hartman
2024-06-19 12:55 ` [PATCH 6.6 150/267] net dsa: qca8k: fix usages of device_get_named_child_node() Greg Kroah-Hartman
2024-06-19 12:55 ` [PATCH 6.6 151/267] geneve: Fix incorrect inner network header offset when innerprotoinherit is set Greg Kroah-Hartman
2024-06-19 12:55 ` [PATCH 6.6 152/267] net/mlx5e: Fix features validation check for tunneled UDP (non-VXLAN) packets Greg Kroah-Hartman
2024-06-19 12:55 ` [PATCH 6.6 153/267] Bluetooth: L2CAP: Fix rejecting L2CAP_CONN_PARAM_UPDATE_REQ Greg Kroah-Hartman
2024-06-19 12:55 ` [PATCH 6.6 154/267] Bluetooth: fix connection setup in l2cap_connect Greg Kroah-Hartman
2024-06-19 12:55 ` [PATCH 6.6 155/267] netfilter: nft_inner: validate mandatory meta and payload Greg Kroah-Hartman
2024-06-19 12:55 ` [PATCH 6.6 156/267] netfilter: ipset: Fix race between namespace cleanup and gc in the list:set type Greg Kroah-Hartman
2024-06-19 13:09 ` Pablo Neira Ayuso
2024-06-19 12:55 ` [PATCH 6.6 157/267] x86/asm: Use %c/%n instead of %P operand modifier in asm templates Greg Kroah-Hartman
2024-06-19 12:55 ` [PATCH 6.6 158/267] x86/uaccess: Fix missed zeroing of ia32 u64 get_user() range checking Greg Kroah-Hartman
2024-06-19 12:55 ` [PATCH 6.6 159/267] scsi: ufs: core: Quiesce request queues before checking pending cmds Greg Kroah-Hartman
2024-06-19 12:55 ` [PATCH 6.6 160/267] net: pse-pd: Use EOPNOTSUPP error code instead of ENOTSUPP Greg Kroah-Hartman
2024-06-19 12:55 ` [PATCH 6.6 161/267] gve: ignore nonrelevant GSO type bits when processing TSO headers Greg Kroah-Hartman
2024-06-19 12:55 ` [PATCH 6.6 162/267] net: stmmac: replace priv->speed with the portTransmitRate from the tc-cbs parameters Greg Kroah-Hartman
2024-06-19 12:55 ` [PATCH 6.6 163/267] block: sed-opal: avoid possible wrong address reference in read_sed_opal_key() Greg Kroah-Hartman
2024-06-19 12:55 ` [PATCH 6.6 164/267] block: fix request.queuelist usage in flush Greg Kroah-Hartman
2024-06-19 12:55 ` [PATCH 6.6 165/267] nvmet-passthru: propagate status from id override functions Greg Kroah-Hartman
2024-06-19 12:55 ` [PATCH 6.6 166/267] net/ipv6: Fix the RT cache flush via sysctl using a previous delay Greg Kroah-Hartman
2024-06-19 12:55 ` [PATCH 6.6 167/267] net: bridge: mst: pass vlan group directly to br_mst_vlan_set_state Greg Kroah-Hartman
2024-06-19 12:55 ` [PATCH 6.6 168/267] net: bridge: mst: fix suspicious rcu usage in br_mst_set_state Greg Kroah-Hartman
2024-06-19 12:55 ` [PATCH 6.6 169/267] ionic: fix use after netif_napi_del() Greg Kroah-Hartman
2024-06-19 12:55 ` [PATCH 6.6 170/267] af_unix: Read with MSG_PEEK loops if the first unread byte is OOB Greg Kroah-Hartman
2024-06-19 12:55 ` [PATCH 6.6 171/267] bnxt_en: Adjust logging of firmware messages in case of released token in __hwrm_send() Greg Kroah-Hartman
2024-06-19 12:55 ` [PATCH 6.6 172/267] misc: microchip: pci1xxxx: fix double free in the error handling of gp_aux_bus_probe() Greg Kroah-Hartman
2024-06-19 12:55 ` [PATCH 6.6 173/267] ksmbd: move leading slash check to smb2_get_name() Greg Kroah-Hartman
2024-06-19 12:55 ` [PATCH 6.6 174/267] ksmbd: fix missing use of get_write in in smb2_set_ea() Greg Kroah-Hartman
2024-06-19 12:55 ` [PATCH 6.6 175/267] x86/boot: Dont add the EFI stub to targets, again Greg Kroah-Hartman
2024-06-19 12:55 ` [PATCH 6.6 176/267] iio: adc: ad9467: fix scan type sign Greg Kroah-Hartman
2024-06-19 12:55 ` [PATCH 6.6 177/267] iio: dac: ad5592r: fix temperature channel scaling value Greg Kroah-Hartman
2024-06-19 12:55 ` [PATCH 6.6 178/267] iio: invensense: fix odr switching to same value Greg Kroah-Hartman
2024-06-19 12:55 ` [PATCH 6.6 179/267] iio: imu: inv_icm42600: delete unneeded update watermark call Greg Kroah-Hartman
2024-06-19 12:55 ` [PATCH 6.6 180/267] drivers: core: synchronize really_probe() and dev_uevent() Greg Kroah-Hartman
2024-06-19 12:55 ` Greg Kroah-Hartman [this message]
2024-06-19 12:55 ` [PATCH 6.6 182/267] ACPI: x86: Force StorageD3Enable on more products Greg Kroah-Hartman
2024-06-19 12:55 ` [PATCH 6.6 183/267] drm/exynos/vidi: fix memory leak in .get_modes() Greg Kroah-Hartman
2024-06-19 12:55 ` [PATCH 6.6 184/267] drm/exynos: hdmi: report safe 640x480 mode as a fallback when no EDID found Greg Kroah-Hartman
2024-06-19 12:55 ` [PATCH 6.6 185/267] mptcp: ensure snd_una is properly initialized on connect Greg Kroah-Hartman
2024-06-19 12:55 ` [PATCH 6.6 186/267] mptcp: pm: inc RmAddr MIB counter once per RM_ADDR ID Greg Kroah-Hartman
2024-06-19 12:55 ` [PATCH 6.6 187/267] mptcp: pm: update add_addr counters after connect Greg Kroah-Hartman
2024-06-19 12:55 ` [PATCH 6.6 188/267] clkdev: Update clkdev id usage to allow for longer names Greg Kroah-Hartman
2024-06-19 12:55 ` [PATCH 6.6 189/267] irqchip/gic-v3-its: Fix potential race condition in its_vlpi_prop_update() Greg Kroah-Hartman
2024-06-19 12:55 ` [PATCH 6.6 190/267] x86/kexec: Fix bug with call depth tracking Greg Kroah-Hartman
2024-06-19 12:55 ` [PATCH 6.6 191/267] x86/amd_nb: Check for invalid SMN reads Greg Kroah-Hartman
2024-06-19 12:55 ` [PATCH 6.6 192/267] perf/core: Fix missing wakeup when waiting for context reference Greg Kroah-Hartman
2024-06-19 12:55 ` [PATCH 6.6 193/267] perf auxtrace: Fix multiple use of --itrace option Greg Kroah-Hartman
2024-06-19 12:55 ` [PATCH 6.6 194/267] riscv: fix overlap of allocated page and PTR_ERR Greg Kroah-Hartman
2024-06-19 12:55 ` [PATCH 6.6 195/267] tracing/selftests: Fix kprobe event name test for .isra. functions Greg Kroah-Hartman
2024-06-19 12:55 ` [PATCH 6.6 196/267] kheaders: explicitly define file modes for archived headers Greg Kroah-Hartman
2024-06-19 12:55 ` [PATCH 6.6 197/267] null_blk: Print correct max open zones limit in null_init_zoned_dev() Greg Kroah-Hartman
2024-06-19 12:55 ` [PATCH 6.6 198/267] sock_map: avoid race between sock_map_close and sk_psock_put Greg Kroah-Hartman
2024-06-19 12:55 ` [PATCH 6.6 199/267] dma-buf: handle testing kthreads creation failure Greg Kroah-Hartman
2024-06-19 12:55 ` [PATCH 6.6 200/267] vmci: prevent speculation leaks by sanitizing event in event_deliver() Greg Kroah-Hartman
2024-06-19 12:55 ` [PATCH 6.6 201/267] spmi: hisi-spmi-controller: Do not override device identifier Greg Kroah-Hartman
2024-06-19 12:55 ` [PATCH 6.6 202/267] knfsd: LOOKUP can return an illegal error value Greg Kroah-Hartman
2024-06-19 12:55 ` [PATCH 6.6 203/267] fs/proc: fix softlockup in __read_vmcore Greg Kroah-Hartman
2024-06-19 12:55 ` [PATCH 6.6 204/267] ocfs2: use coarse time for new created files Greg Kroah-Hartman
2024-06-19 12:55 ` [PATCH 6.6 205/267] ocfs2: fix races between hole punching and AIO+DIO Greg Kroah-Hartman
2024-06-19 12:55 ` [PATCH 6.6 206/267] PCI: rockchip-ep: Remove wrong mask on subsys_vendor_id Greg Kroah-Hartman
2024-06-19 12:55 ` [PATCH 6.6 207/267] dmaengine: axi-dmac: fix possible race in remove() Greg Kroah-Hartman
2024-06-19 12:55 ` [PATCH 6.6 208/267] remoteproc: k3-r5: Wait for core0 power-up before powering up core1 Greg Kroah-Hartman
2024-06-19 12:56 ` [PATCH 6.6 209/267] remoteproc: k3-r5: Do not allow core1 to power up before core0 via sysfs Greg Kroah-Hartman
2024-06-19 12:56 ` [PATCH 6.6 210/267] iio: adc: axi-adc: make sure AXI clock is enabled Greg Kroah-Hartman
2024-06-19 12:56 ` [PATCH 6.6 211/267] iio: invensense: fix interrupt timestamp alignment Greg Kroah-Hartman
2024-06-19 12:56 ` [PATCH 6.6 212/267] riscv: rewrite __kernel_map_pages() to fix sleeping in invalid context Greg Kroah-Hartman
2024-06-19 12:56 ` [PATCH 6.6 213/267] rtla/timerlat: Simplify "no value" printing on top Greg Kroah-Hartman
2024-06-19 12:56 ` [PATCH 6.6 214/267] rtla/auto-analysis: Replace \t with spaces Greg Kroah-Hartman
2024-06-19 12:56 ` [PATCH 6.6 215/267] drm/i915/gt: Disarm breadcrumbs if engines are already idle Greg Kroah-Hartman
2024-06-19 12:56 ` [PATCH 6.6 216/267] drm/shmem-helper: Fix BUG_ON() on mmap(PROT_WRITE, MAP_PRIVATE) Greg Kroah-Hartman
2024-06-19 12:56 ` [PATCH 6.6 217/267] drm/i915/dpt: Make DPT object unshrinkable Greg Kroah-Hartman
2024-06-19 12:56 ` [PATCH 6.6 218/267] drm/i915: Fix audio component initialization Greg Kroah-Hartman
2024-06-19 12:56 ` [PATCH 6.6 219/267] intel_th: pci: Add Granite Rapids support Greg Kroah-Hartman
2024-06-19 12:56 ` [PATCH 6.6 220/267] intel_th: pci: Add Granite Rapids SOC support Greg Kroah-Hartman
2024-06-19 12:56 ` [PATCH 6.6 221/267] intel_th: pci: Add Sapphire " Greg Kroah-Hartman
2024-06-19 12:56 ` [PATCH 6.6 222/267] intel_th: pci: Add Meteor Lake-S support Greg Kroah-Hartman
2024-06-19 12:56 ` [PATCH 6.6 223/267] intel_th: pci: Add Lunar Lake support Greg Kroah-Hartman
2024-06-19 12:56 ` [PATCH 6.6 224/267] pmdomain: ti-sci: Fix duplicate PD referrals Greg Kroah-Hartman
2024-06-19 12:56 ` [PATCH 6.6 225/267] btrfs: zoned: introduce a zone_info struct in btrfs_load_block_group_zone_info Greg Kroah-Hartman
2024-06-19 12:56 ` [PATCH 6.6 226/267] btrfs: zoned: factor out per-zone logic from btrfs_load_block_group_zone_info Greg Kroah-Hartman
2024-06-19 12:56 ` [PATCH 6.6 227/267] btrfs: zoned: factor out single bg handling " Greg Kroah-Hartman
2024-06-19 12:56 ` [PATCH 6.6 228/267] btrfs: zoned: factor out DUP " Greg Kroah-Hartman
2024-06-19 12:56 ` [PATCH 6.6 229/267] btrfs: zoned: fix use-after-free due to race with dev replace Greg Kroah-Hartman
2024-06-19 12:56 ` [PATCH 6.6 230/267] xfs: fix imprecise logic in xchk_btree_check_block_owner Greg Kroah-Hartman
2024-06-19 12:56 ` [PATCH 6.6 231/267] xfs: fix scrub stats file permissions Greg Kroah-Hartman
2024-06-19 12:56 ` [PATCH 6.6 232/267] xfs: fix SEEK_HOLE/DATA for regions with active COW extents Greg Kroah-Hartman
2024-06-19 12:56 ` [PATCH 6.6 233/267] xfs: shrink failure needs to hold AGI buffer Greg Kroah-Hartman
2024-06-19 12:56 ` [PATCH 6.6 234/267] xfs: ensure submit buffers on LSN boundaries in error handlers Greg Kroah-Hartman
2024-06-19 12:56 ` [PATCH 6.6 235/267] xfs: allow sunit mount option to repair bad primary sb stripe values Greg Kroah-Hartman
2024-06-19 12:56 ` [PATCH 6.6 236/267] xfs: dont use current->journal_info Greg Kroah-Hartman
2024-06-19 12:56 ` [PATCH 6.6 237/267] xfs: allow cross-linking special files without project quota Greg Kroah-Hartman
2024-06-19 12:56 ` [PATCH 6.6 238/267] swiotlb: Enforce page alignment in swiotlb_alloc() Greg Kroah-Hartman
2024-06-19 12:56 ` [PATCH 6.6 239/267] swiotlb: Reinstate page-alignment for mappings >= PAGE_SIZE Greg Kroah-Hartman
2024-06-19 12:56 ` [PATCH 6.6 240/267] swiotlb: extend buffer pre-padding to alloc_align_mask if necessary Greg Kroah-Hartman
2024-06-19 12:56 ` [PATCH 6.6 241/267] nilfs2: fix potential kernel bug due to lack of writeback flag waiting Greg Kroah-Hartman
2024-06-19 12:56 ` [PATCH 6.6 242/267] tick/nohz_full: Dont abuse smp_call_function_single() in tick_setup_device() Greg Kroah-Hartman
2024-06-19 12:56 ` [PATCH 6.6 243/267] mm/huge_memory: dont unpoison huge_zero_folio Greg Kroah-Hartman
2024-06-19 12:56 ` [PATCH 6.6 244/267] serial: 8250_pxa: Configure tx_loadsz to match FIFO IRQ level Greg Kroah-Hartman
2024-06-19 12:56 ` [PATCH 6.6 245/267] Revert "fork: defer linking file vma until vma is fully initialized" Greg Kroah-Hartman
2024-06-19 12:56 ` [PATCH 6.6 246/267] selftests/net: add lib.sh Greg Kroah-Hartman
2024-06-19 12:56 ` [PATCH 6.6 247/267] selftests/net: add variable NS_LIST for lib.sh Greg Kroah-Hartman
2024-06-19 12:56 ` [PATCH 6.6 248/267] selftests: forwarding: Avoid failures to source net/lib.sh Greg Kroah-Hartman
2024-06-19 12:56 ` [PATCH 6.6 249/267] remoteproc: k3-r5: Jump to error handling labels in start/stop errors Greg Kroah-Hartman
2024-06-19 12:56 ` [PATCH 6.6 250/267] cachefiles, erofs: Fix NULL deref in when cachefiles is not doing ondemand-mode Greg Kroah-Hartman
2024-06-19 12:56 ` [PATCH 6.6 251/267] selftests/net/lib: update busywait timeout value Greg Kroah-Hartman
2024-06-19 12:56 ` [PATCH 6.6 252/267] selftests/net/lib: no need to record ns name if it already exist Greg Kroah-Hartman
2024-06-19 12:56 ` [PATCH 6.6 253/267] selftests: net: lib: support errexit with busywait Greg Kroah-Hartman
2024-06-19 12:56 ` [PATCH 6.6 254/267] selftests: net: lib: avoid error removing empty netns name Greg Kroah-Hartman
2024-06-19 12:56 ` [PATCH 6.6 255/267] greybus: Fix use-after-free bug in gb_interface_release due to race condition Greg Kroah-Hartman
2024-06-19 12:56 ` [PATCH 6.6 256/267] ima: Fix use-after-free on a dentrys dname.name Greg Kroah-Hartman
2024-06-19 12:56 ` [PATCH 6.6 257/267] device property: Implement device_is_big_endian() Greg Kroah-Hartman
2024-06-19 12:56 ` [PATCH 6.6 258/267] serial: core: Add UPIO_UNKNOWN constant for unknown port type Greg Kroah-Hartman
2024-06-19 12:56 ` [PATCH 6.6 259/267] serial: port: Introduce a common helper to read properties Greg Kroah-Hartman
2024-06-19 12:56 ` [PATCH 6.6 260/267] serial: 8250_dw: Switch to use uart_read_port_properties() Greg Kroah-Hartman
2024-06-19 12:56 ` [PATCH 6.6 261/267] serial: 8250_dw: Replace ACPI device check by a quirk Greg Kroah-Hartman
2024-06-19 12:56 ` [PATCH 6.6 262/267] serial: 8250_dw: Dont use struct dw8250_data outside of 8250_dw Greg Kroah-Hartman
2024-06-19 12:56 ` [PATCH 6.6 263/267] usb-storage: alauda: Check whether the media is initialized Greg Kroah-Hartman
2024-06-19 12:56 ` [PATCH 6.6 264/267] misc: microchip: pci1xxxx: Fix a memory leak in the error handling of gp_aux_bus_probe() Greg Kroah-Hartman
2024-06-19 12:56 ` [PATCH 6.6 265/267] i2c: at91: Fix the functionality flags of the slave-only interface Greg Kroah-Hartman
2024-06-19 12:56 ` [PATCH 6.6 266/267] i2c: designware: " Greg Kroah-Hartman
2024-06-19 12:56 ` [PATCH 6.6 267/267] zap_pid_ns_processes: clear TIF_NOTIFY_SIGNAL along with TIF_SIGPENDING Greg Kroah-Hartman
2024-06-19 14:33 ` [PATCH 6.6 000/267] 6.6.35-rc1 review Florian Fainelli
2024-06-19 16:17 ` Harshit Mogalapalli
2024-06-19 17:07 ` SeongJae Park
2024-06-19 19:19 ` Jon Hunter
2024-06-19 21:11 ` Allen
2024-06-20 3:44 ` Kelsey Steele
2024-06-20 11:40 ` Mark Brown
2024-06-20 11:47 ` Takeshi Ogasawara
2024-06-20 14:26 ` Ron Economos
2024-06-20 16:40 ` Naresh Kamboju
2024-06-20 18:57 ` Peter Schneider
2024-06-20 21:35 ` Shuah Khan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240619125613.291071154@linuxfoundation.org \
--to=gregkh@linuxfoundation.org \
--cc=dave.anglin@bell.net \
--cc=deller@gmx.de \
--cc=patches@lists.linux.dev \
--cc=stable@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).