From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
stable@vger.kernel.org, Alastair DSilva <alastair@d-silva.org>,
Christophe Leroy <christophe.leroy@c-s.fr>,
Michael Ellerman <mpe@ellerman.id.au>,
Sasha Levin <sashal@kernel.org>
Subject: [PATCH 5.4 123/168] powerpc: Convert flush_icache_range & friends to C
Date: Tue, 10 Mar 2020 13:39:29 +0100 [thread overview]
Message-ID: <20200310123647.900429161@linuxfoundation.org> (raw)
In-Reply-To: <20200310123635.322799692@linuxfoundation.org>
From: Alastair D'Silva <alastair@d-silva.org>
[ Upstream commit 23eb7f560a2a6a1b0dbaaaae8685da75314347e4 ]
Similar to commit 22e9c88d486a
("powerpc/64: reuse PPC32 static inline flush_dcache_range()")
this patch converts the following ASM symbols to C:
flush_icache_range()
__flush_dcache_icache()
__flush_dcache_icache_phys()
This was done as we discovered a long-standing bug where the length of the
range was truncated due to using a 32 bit shift instead of a 64 bit one.
By converting these functions to C, it becomes easier to maintain.
flush_dcache_icache_phys() retains a critical assembler section as we must
ensure there are no memory accesses while the data MMU is disabled
(authored by Christophe Leroy). Since this has no external callers, it has
also been made static, allowing the compiler to inline it within
flush_dcache_icache_page().
Signed-off-by: Alastair D'Silva <alastair@d-silva.org>
Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
[mpe: Minor fixups, don't export __flush_dcache_icache()]
Link: https://lore.kernel.org/r/20191104023305.9581-5-alastair@au1.ibm.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
arch/powerpc/include/asm/cache.h | 26 ++---
arch/powerpc/include/asm/cacheflush.h | 24 ++---
arch/powerpc/kernel/misc_32.S | 120 ---------------------
arch/powerpc/kernel/misc_64.S | 102 ------------------
arch/powerpc/mm/mem.c | 150 +++++++++++++++++++++++++-
5 files changed, 170 insertions(+), 252 deletions(-)
diff --git a/arch/powerpc/include/asm/cache.h b/arch/powerpc/include/asm/cache.h
index afb88754e0e07..72b81015cebe9 100644
--- a/arch/powerpc/include/asm/cache.h
+++ b/arch/powerpc/include/asm/cache.h
@@ -96,22 +96,7 @@ static inline u32 l1_icache_bytes(void)
}
#endif
-#endif /* ! __ASSEMBLY__ */
-
-#if defined(__ASSEMBLY__)
-/*
- * For a snooping icache, we still need a dummy icbi to purge all the
- * prefetched instructions from the ifetch buffers. We also need a sync
- * before the icbi to order the the actual stores to memory that might
- * have modified instructions with the icbi.
- */
-#define PURGE_PREFETCHED_INS \
- sync; \
- icbi 0,r3; \
- sync; \
- isync
-#else
#define __read_mostly __attribute__((__section__(".data..read_mostly")))
#ifdef CONFIG_PPC_BOOK3S_32
@@ -145,6 +130,17 @@ static inline void dcbst(void *addr)
{
__asm__ __volatile__ ("dcbst 0, %0" : : "r"(addr) : "memory");
}
+
+static inline void icbi(void *addr)
+{
+ asm volatile ("icbi 0, %0" : : "r"(addr) : "memory");
+}
+
+static inline void iccci(void *addr)
+{
+ asm volatile ("iccci 0, %0" : : "r"(addr) : "memory");
+}
+
#endif /* !__ASSEMBLY__ */
#endif /* __KERNEL__ */
#endif /* _ASM_POWERPC_CACHE_H */
diff --git a/arch/powerpc/include/asm/cacheflush.h b/arch/powerpc/include/asm/cacheflush.h
index ed57843ef4524..4a1c9f0200e1b 100644
--- a/arch/powerpc/include/asm/cacheflush.h
+++ b/arch/powerpc/include/asm/cacheflush.h
@@ -42,24 +42,20 @@ extern void flush_dcache_page(struct page *page);
#define flush_dcache_mmap_lock(mapping) do { } while (0)
#define flush_dcache_mmap_unlock(mapping) do { } while (0)
-extern void flush_icache_range(unsigned long, unsigned long);
+void flush_icache_range(unsigned long start, unsigned long stop);
extern void flush_icache_user_range(struct vm_area_struct *vma,
struct page *page, unsigned long addr,
int len);
-extern void __flush_dcache_icache(void *page_va);
extern void flush_dcache_icache_page(struct page *page);
-#if defined(CONFIG_PPC32) && !defined(CONFIG_BOOKE)
-extern void __flush_dcache_icache_phys(unsigned long physaddr);
-#else
-static inline void __flush_dcache_icache_phys(unsigned long physaddr)
-{
- BUG();
-}
-#endif
-
-/*
- * Write any modified data cache blocks out to memory and invalidate them.
- * Does not invalidate the corresponding instruction cache blocks.
+void __flush_dcache_icache(void *page);
+
+/**
+ * flush_dcache_range(): Write any modified data cache blocks out to memory and
+ * invalidate them. Does not invalidate the corresponding instruction cache
+ * blocks.
+ *
+ * @start: the start address
+ * @stop: the stop address (exclusive)
*/
static inline void flush_dcache_range(unsigned long start, unsigned long stop)
{
diff --git a/arch/powerpc/kernel/misc_32.S b/arch/powerpc/kernel/misc_32.S
index 82df4b09e79f4..f4e4a1926a7a5 100644
--- a/arch/powerpc/kernel/misc_32.S
+++ b/arch/powerpc/kernel/misc_32.S
@@ -316,126 +316,6 @@ _GLOBAL(flush_instruction_cache)
EXPORT_SYMBOL(flush_instruction_cache)
#endif /* CONFIG_PPC_8xx */
-/*
- * Write any modified data cache blocks out to memory
- * and invalidate the corresponding instruction cache blocks.
- * This is a no-op on the 601.
- *
- * flush_icache_range(unsigned long start, unsigned long stop)
- */
-_GLOBAL(flush_icache_range)
-#if defined(CONFIG_PPC_BOOK3S_601) || defined(CONFIG_E200)
- PURGE_PREFETCHED_INS
- blr /* for 601 and e200, do nothing */
-#else
- rlwinm r3,r3,0,0,31 - L1_CACHE_SHIFT
- subf r4,r3,r4
- addi r4,r4,L1_CACHE_BYTES - 1
- srwi. r4,r4,L1_CACHE_SHIFT
- beqlr
- mtctr r4
- mr r6,r3
-1: dcbst 0,r3
- addi r3,r3,L1_CACHE_BYTES
- bdnz 1b
- sync /* wait for dcbst's to get to ram */
-#ifndef CONFIG_44x
- mtctr r4
-2: icbi 0,r6
- addi r6,r6,L1_CACHE_BYTES
- bdnz 2b
-#else
- /* Flash invalidate on 44x because we are passed kmapped addresses and
- this doesn't work for userspace pages due to the virtually tagged
- icache. Sigh. */
- iccci 0, r0
-#endif
- sync /* additional sync needed on g4 */
- isync
- blr
-#endif
-_ASM_NOKPROBE_SYMBOL(flush_icache_range)
-EXPORT_SYMBOL(flush_icache_range)
-
-/*
- * Flush a particular page from the data cache to RAM.
- * Note: this is necessary because the instruction cache does *not*
- * snoop from the data cache.
- * This is a no-op on the 601 and e200 which have a unified cache.
- *
- * void __flush_dcache_icache(void *page)
- */
-_GLOBAL(__flush_dcache_icache)
-#if defined(CONFIG_PPC_BOOK3S_601) || defined(CONFIG_E200)
- PURGE_PREFETCHED_INS
- blr
-#else
- rlwinm r3,r3,0,0,31-PAGE_SHIFT /* Get page base address */
- li r4,PAGE_SIZE/L1_CACHE_BYTES /* Number of lines in a page */
- mtctr r4
- mr r6,r3
-0: dcbst 0,r3 /* Write line to ram */
- addi r3,r3,L1_CACHE_BYTES
- bdnz 0b
- sync
-#ifdef CONFIG_44x
- /* We don't flush the icache on 44x. Those have a virtual icache
- * and we don't have access to the virtual address here (it's
- * not the page vaddr but where it's mapped in user space). The
- * flushing of the icache on these is handled elsewhere, when
- * a change in the address space occurs, before returning to
- * user space
- */
-BEGIN_MMU_FTR_SECTION
- blr
-END_MMU_FTR_SECTION_IFSET(MMU_FTR_TYPE_44x)
-#endif /* CONFIG_44x */
- mtctr r4
-1: icbi 0,r6
- addi r6,r6,L1_CACHE_BYTES
- bdnz 1b
- sync
- isync
- blr
-#endif
-
-#ifndef CONFIG_BOOKE
-/*
- * Flush a particular page from the data cache to RAM, identified
- * by its physical address. We turn off the MMU so we can just use
- * the physical address (this may be a highmem page without a kernel
- * mapping).
- *
- * void __flush_dcache_icache_phys(unsigned long physaddr)
- */
-_GLOBAL(__flush_dcache_icache_phys)
-#if defined(CONFIG_PPC_BOOK3S_601) || defined(CONFIG_E200)
- PURGE_PREFETCHED_INS
- blr /* for 601 and e200, do nothing */
-#else
- mfmsr r10
- rlwinm r0,r10,0,28,26 /* clear DR */
- mtmsr r0
- isync
- rlwinm r3,r3,0,0,31-PAGE_SHIFT /* Get page base address */
- li r4,PAGE_SIZE/L1_CACHE_BYTES /* Number of lines in a page */
- mtctr r4
- mr r6,r3
-0: dcbst 0,r3 /* Write line to ram */
- addi r3,r3,L1_CACHE_BYTES
- bdnz 0b
- sync
- mtctr r4
-1: icbi 0,r6
- addi r6,r6,L1_CACHE_BYTES
- bdnz 1b
- sync
- mtmsr r10 /* restore DR */
- isync
- blr
-#endif
-#endif /* CONFIG_BOOKE */
-
/*
* Copy a whole page. We use the dcbz instruction on the destination
* to reduce memory traffic (it eliminates the unnecessary reads of
diff --git a/arch/powerpc/kernel/misc_64.S b/arch/powerpc/kernel/misc_64.S
index 9bc0aa9aeb654..ff20c253f2737 100644
--- a/arch/powerpc/kernel/misc_64.S
+++ b/arch/powerpc/kernel/misc_64.S
@@ -49,108 +49,6 @@ _GLOBAL(call_do_irq)
mtlr r0
blr
- .section ".toc","aw"
-PPC64_CACHES:
- .tc ppc64_caches[TC],ppc64_caches
- .section ".text"
-
-/*
- * Write any modified data cache blocks out to memory
- * and invalidate the corresponding instruction cache blocks.
- *
- * flush_icache_range(unsigned long start, unsigned long stop)
- *
- * flush all bytes from start through stop-1 inclusive
- */
-
-_GLOBAL_TOC(flush_icache_range)
-BEGIN_FTR_SECTION
- PURGE_PREFETCHED_INS
- blr
-END_FTR_SECTION_IFSET(CPU_FTR_COHERENT_ICACHE)
-/*
- * Flush the data cache to memory
- *
- * Different systems have different cache line sizes
- * and in some cases i-cache and d-cache line sizes differ from
- * each other.
- */
- ld r10,PPC64_CACHES@toc(r2)
- lwz r7,DCACHEL1BLOCKSIZE(r10)/* Get cache block size */
- addi r5,r7,-1
- andc r6,r3,r5 /* round low to line bdy */
- subf r8,r6,r4 /* compute length */
- add r8,r8,r5 /* ensure we get enough */
- lwz r9,DCACHEL1LOGBLOCKSIZE(r10) /* Get log-2 of cache block size */
- srd. r8,r8,r9 /* compute line count */
- beqlr /* nothing to do? */
- mtctr r8
-1: dcbst 0,r6
- add r6,r6,r7
- bdnz 1b
- sync
-
-/* Now invalidate the instruction cache */
-
- lwz r7,ICACHEL1BLOCKSIZE(r10) /* Get Icache block size */
- addi r5,r7,-1
- andc r6,r3,r5 /* round low to line bdy */
- subf r8,r6,r4 /* compute length */
- add r8,r8,r5
- lwz r9,ICACHEL1LOGBLOCKSIZE(r10) /* Get log-2 of Icache block size */
- srd. r8,r8,r9 /* compute line count */
- beqlr /* nothing to do? */
- mtctr r8
-2: icbi 0,r6
- add r6,r6,r7
- bdnz 2b
- isync
- blr
-_ASM_NOKPROBE_SYMBOL(flush_icache_range)
-EXPORT_SYMBOL(flush_icache_range)
-
-/*
- * Flush a particular page from the data cache to RAM.
- * Note: this is necessary because the instruction cache does *not*
- * snoop from the data cache.
- *
- * void __flush_dcache_icache(void *page)
- */
-_GLOBAL(__flush_dcache_icache)
-/*
- * Flush the data cache to memory
- *
- * Different systems have different cache line sizes
- */
-
-BEGIN_FTR_SECTION
- PURGE_PREFETCHED_INS
- blr
-END_FTR_SECTION_IFSET(CPU_FTR_COHERENT_ICACHE)
-
-/* Flush the dcache */
- ld r7,PPC64_CACHES@toc(r2)
- clrrdi r3,r3,PAGE_SHIFT /* Page align */
- lwz r4,DCACHEL1BLOCKSPERPAGE(r7) /* Get # dcache blocks per page */
- lwz r5,DCACHEL1BLOCKSIZE(r7) /* Get dcache block size */
- mr r6,r3
- mtctr r4
-0: dcbst 0,r6
- add r6,r6,r5
- bdnz 0b
- sync
-
-/* Now invalidate the icache */
-
- lwz r4,ICACHEL1BLOCKSPERPAGE(r7) /* Get # icache blocks per page */
- lwz r5,ICACHEL1BLOCKSIZE(r7) /* Get icache block size */
- mtctr r4
-1: icbi 0,r3
- add r3,r3,r5
- bdnz 1b
- isync
- blr
-
_GLOBAL(__bswapdi2)
EXPORT_SYMBOL(__bswapdi2)
srdi r8,r3,32
diff --git a/arch/powerpc/mm/mem.c b/arch/powerpc/mm/mem.c
index 9f5b32163bda3..6612796ea69c2 100644
--- a/arch/powerpc/mm/mem.c
+++ b/arch/powerpc/mm/mem.c
@@ -348,6 +348,120 @@ void free_initmem(void)
free_initmem_default(POISON_FREE_INITMEM);
}
+/**
+ * flush_coherent_icache() - if a CPU has a coherent icache, flush it
+ * @addr: The base address to use (can be any valid address, the whole cache will be flushed)
+ * Return true if the cache was flushed, false otherwise
+ */
+static inline bool flush_coherent_icache(unsigned long addr)
+{
+ /*
+ * For a snooping icache, we still need a dummy icbi to purge all the
+ * prefetched instructions from the ifetch buffers. We also need a sync
+ * before the icbi to order the the actual stores to memory that might
+ * have modified instructions with the icbi.
+ */
+ if (cpu_has_feature(CPU_FTR_COHERENT_ICACHE)) {
+ mb(); /* sync */
+ icbi((void *)addr);
+ mb(); /* sync */
+ isync();
+ return true;
+ }
+
+ return false;
+}
+
+/**
+ * invalidate_icache_range() - Flush the icache by issuing icbi across an address range
+ * @start: the start address
+ * @stop: the stop address (exclusive)
+ */
+static void invalidate_icache_range(unsigned long start, unsigned long stop)
+{
+ unsigned long shift = l1_icache_shift();
+ unsigned long bytes = l1_icache_bytes();
+ char *addr = (char *)(start & ~(bytes - 1));
+ unsigned long size = stop - (unsigned long)addr + (bytes - 1);
+ unsigned long i;
+
+ for (i = 0; i < size >> shift; i++, addr += bytes)
+ icbi(addr);
+
+ mb(); /* sync */
+ isync();
+}
+
+/**
+ * flush_icache_range: Write any modified data cache blocks out to memory
+ * and invalidate the corresponding blocks in the instruction cache
+ *
+ * Generic code will call this after writing memory, before executing from it.
+ *
+ * @start: the start address
+ * @stop: the stop address (exclusive)
+ */
+void flush_icache_range(unsigned long start, unsigned long stop)
+{
+ if (flush_coherent_icache(start))
+ return;
+
+ clean_dcache_range(start, stop);
+
+ if (IS_ENABLED(CONFIG_44x)) {
+ /*
+ * Flash invalidate on 44x because we are passed kmapped
+ * addresses and this doesn't work for userspace pages due to
+ * the virtually tagged icache.
+ */
+ iccci((void *)start);
+ mb(); /* sync */
+ isync();
+ } else
+ invalidate_icache_range(start, stop);
+}
+EXPORT_SYMBOL(flush_icache_range);
+
+#if !defined(CONFIG_PPC_8xx) && !defined(CONFIG_PPC64)
+/**
+ * flush_dcache_icache_phys() - Flush a page by it's physical address
+ * @physaddr: the physical address of the page
+ */
+static void flush_dcache_icache_phys(unsigned long physaddr)
+{
+ unsigned long bytes = l1_dcache_bytes();
+ unsigned long nb = PAGE_SIZE / bytes;
+ unsigned long addr = physaddr & PAGE_MASK;
+ unsigned long msr, msr0;
+ unsigned long loop1 = addr, loop2 = addr;
+
+ msr0 = mfmsr();
+ msr = msr0 & ~MSR_DR;
+ /*
+ * This must remain as ASM to prevent potential memory accesses
+ * while the data MMU is disabled
+ */
+ asm volatile(
+ " mtctr %2;\n"
+ " mtmsr %3;\n"
+ " isync;\n"
+ "0: dcbst 0, %0;\n"
+ " addi %0, %0, %4;\n"
+ " bdnz 0b;\n"
+ " sync;\n"
+ " mtctr %2;\n"
+ "1: icbi 0, %1;\n"
+ " addi %1, %1, %4;\n"
+ " bdnz 1b;\n"
+ " sync;\n"
+ " mtmsr %5;\n"
+ " isync;\n"
+ : "+&r" (loop1), "+&r" (loop2)
+ : "r" (nb), "r" (msr), "i" (bytes), "r" (msr0)
+ : "ctr", "memory");
+}
+#endif // !defined(CONFIG_PPC_8xx) && !defined(CONFIG_PPC64)
+
/*
* This is called when a page has been modified by the kernel.
* It just marks the page as not i-cache clean. We do the i-cache
@@ -380,12 +494,46 @@ void flush_dcache_icache_page(struct page *page)
__flush_dcache_icache(start);
kunmap_atomic(start);
} else {
- __flush_dcache_icache_phys(page_to_pfn(page) << PAGE_SHIFT);
+ unsigned long addr = page_to_pfn(page) << PAGE_SHIFT;
+
+ if (flush_coherent_icache(addr))
+ return;
+ flush_dcache_icache_phys(addr);
}
#endif
}
EXPORT_SYMBOL(flush_dcache_icache_page);
+/**
+ * __flush_dcache_icache(): Flush a particular page from the data cache to RAM.
+ * Note: this is necessary because the instruction cache does *not*
+ * snoop from the data cache.
+ *
+ * @page: the address of the page to flush
+ */
+void __flush_dcache_icache(void *p)
+{
+ unsigned long addr = (unsigned long)p;
+
+ if (flush_coherent_icache(addr))
+ return;
+
+ clean_dcache_range(addr, addr + PAGE_SIZE);
+
+ /*
+ * We don't flush the icache on 44x. Those have a virtual icache and we
+ * don't have access to the virtual address here (it's not the page
+ * vaddr but where it's mapped in user space). The flushing of the
+ * icache on these is handled elsewhere, when a change in the address
+ * space occurs, before returning to user space.
+ */
+
+ if (cpu_has_feature(MMU_FTR_TYPE_44x))
+ return;
+
+ invalidate_icache_range(addr, addr + PAGE_SIZE);
+}
+
void clear_user_page(void *page, unsigned long vaddr, struct page *pg)
{
clear_page(page);
--
2.20.1
next prev parent reply other threads:[~2020-03-10 13:28 UTC|newest]
Thread overview: 177+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-03-10 12:37 [PATCH 5.4 000/168] 5.4.25-stable review Greg Kroah-Hartman
2020-03-10 12:37 ` [PATCH 5.4 001/168] block, bfq: get a ref to a group when adding it to a service tree Greg Kroah-Hartman
2020-03-10 12:37 ` [PATCH 5.4 002/168] block, bfq: get extra ref to prevent a queue from being freed during a group move Greg Kroah-Hartman
2020-03-10 12:37 ` [PATCH 5.4 003/168] block, bfq: do not insert oom queue into position tree Greg Kroah-Hartman
2020-03-10 12:37 ` [PATCH 5.4 004/168] ALSA: hda/realtek - Fix a regression for mute led on Lenovo Carbon X1 Greg Kroah-Hartman
2020-03-10 12:37 ` [PATCH 5.4 005/168] net: dsa: bcm_sf2: Forcibly configure IMP port for 1Gb/sec Greg Kroah-Hartman
2020-03-10 12:37 ` [PATCH 5.4 006/168] net: stmmac: fix notifier registration Greg Kroah-Hartman
2020-03-10 12:37 ` [PATCH 5.4 007/168] dm thin metadata: fix lockdep complaint Greg Kroah-Hartman
2020-03-10 12:37 ` [PATCH 5.4 008/168] RDMA/core: Fix pkey and port assignment in get_new_pps Greg Kroah-Hartman
2020-03-10 12:37 ` [PATCH 5.4 009/168] RDMA/core: Fix use of logical OR " Greg Kroah-Hartman
2020-03-10 12:37 ` [PATCH 5.4 010/168] kbuild: fix No such file or directory warning when cleaning Greg Kroah-Hartman
2020-03-10 12:37 ` [PATCH 5.4 011/168] kprobes: Fix optimize_kprobe()/unoptimize_kprobe() cancellation logic Greg Kroah-Hartman
2020-03-10 12:37 ` [PATCH 5.4 012/168] blktrace: fix dereference after null check Greg Kroah-Hartman
2020-03-10 12:37 ` [PATCH 5.4 013/168] ALSA: hda: do not override bus codec_mask in link_get() Greg Kroah-Hartman
2020-03-10 12:37 ` [PATCH 5.4 014/168] serial: ar933x_uart: set UART_CS_{RX,TX}_READY_ORIDE Greg Kroah-Hartman
2020-03-10 12:37 ` [PATCH 5.4 015/168] selftests: fix too long argument Greg Kroah-Hartman
2020-03-10 12:37 ` [PATCH 5.4 016/168] usb: gadget: composite: Support more than 500mA MaxPower Greg Kroah-Hartman
2020-03-10 12:37 ` [PATCH 5.4 017/168] usb: gadget: ffs: ffs_aio_cancel(): Save/restore IRQ flags Greg Kroah-Hartman
2020-03-10 12:37 ` [PATCH 5.4 018/168] usb: gadget: serial: fix Tx stall after buffer overflow Greg Kroah-Hartman
2020-03-10 12:37 ` [PATCH 5.4 019/168] habanalabs: halt the engines before hard-reset Greg Kroah-Hartman
2020-03-10 12:37 ` [PATCH 5.4 020/168] habanalabs: do not halt CoreSight during hard reset Greg Kroah-Hartman
2020-03-10 12:37 ` [PATCH 5.4 021/168] habanalabs: patched cb equals user cb in device memset Greg Kroah-Hartman
2020-03-10 12:37 ` [PATCH 5.4 022/168] drm/msm/mdp5: rate limit pp done timeout warnings Greg Kroah-Hartman
2020-03-10 12:37 ` [PATCH 5.4 023/168] drm: msm: Fix return type of dsi_mgr_connector_mode_valid for kCFI Greg Kroah-Hartman
2020-03-10 12:37 ` [PATCH 5.4 024/168] drm/modes: Make sure to parse valid rotation value from cmdline Greg Kroah-Hartman
2020-03-10 12:37 ` [PATCH 5.4 025/168] drm/modes: Allow DRM_MODE_ROTATE_0 when applying video mode parameters Greg Kroah-Hartman
2020-03-10 12:37 ` [PATCH 5.4 026/168] scsi: megaraid_sas: silence a warning Greg Kroah-Hartman
2020-03-10 12:37 ` [PATCH 5.4 027/168] drm/msm/dsi: save pll state before dsi host is powered off Greg Kroah-Hartman
2020-03-10 12:37 ` [PATCH 5.4 028/168] drm/msm/dsi/pll: call vco set rate explicitly Greg Kroah-Hartman
2020-03-10 12:37 ` [PATCH 5.4 029/168] selftests: forwarding: use proto icmp for {gretap, ip6gretap}_mac testing Greg Kroah-Hartman
2020-03-10 12:37 ` [PATCH 5.4 030/168] selftests: forwarding: vxlan_bridge_1d: fix tos value Greg Kroah-Hartman
2020-03-10 12:37 ` [PATCH 5.4 031/168] net: atlantic: check rpc result and wait for rpc address Greg Kroah-Hartman
2020-03-10 12:37 ` [PATCH 5.4 032/168] net: ks8851-ml: Remove 8-bit bus accessors Greg Kroah-Hartman
2020-03-10 12:37 ` [PATCH 5.4 033/168] net: ks8851-ml: Fix 16-bit data access Greg Kroah-Hartman
2020-03-10 12:38 ` [PATCH 5.4 034/168] net: ks8851-ml: Fix 16-bit IO operation Greg Kroah-Hartman
2020-03-10 12:38 ` [PATCH 5.4 035/168] net: ethernet: dm9000: Handle -EPROBE_DEFER in dm9000_parse_dt() Greg Kroah-Hartman
2020-03-10 12:38 ` [PATCH 5.4 036/168] watchdog: da9062: do not ping the hw during stop() Greg Kroah-Hartman
2020-03-10 12:38 ` [PATCH 5.4 037/168] s390/cio: cio_ignore_proc_seq_next should increase position index Greg Kroah-Hartman
2020-03-10 12:38 ` [PATCH 5.4 038/168] s390: make install not depend on vmlinux Greg Kroah-Hartman
2020-03-10 12:38 ` [PATCH 5.4 039/168] efi: Only print errors about failing to get certs if EFI vars are found Greg Kroah-Hartman
2020-03-10 12:38 ` [PATCH 5.4 040/168] net/mlx5: DR, Fix matching on vport gvmi Greg Kroah-Hartman
2020-03-10 12:38 ` [PATCH 5.4 041/168] iommu/amd: Disable IOMMU on Stoney Ridge systems Greg Kroah-Hartman
2020-03-10 12:38 ` [PATCH 5.4 042/168] nvme/pci: Add sleep quirk for Samsung and Toshiba drives Greg Kroah-Hartman
2020-03-10 12:38 ` [PATCH 5.4 043/168] nvme-pci: Use single IRQ vector for old Apple models Greg Kroah-Hartman
2020-03-10 12:38 ` [PATCH 5.4 044/168] x86/boot/compressed: Dont declare __force_order in kaslr_64.c Greg Kroah-Hartman
2020-03-10 12:38 ` [PATCH 5.4 045/168] s390/qdio: fill SL with absolute addresses Greg Kroah-Hartman
2020-03-10 12:38 ` [PATCH 5.4 046/168] nvme: Fix uninitialized-variable warning Greg Kroah-Hartman
2020-03-10 12:38 ` [PATCH 5.4 047/168] ice: Dont tell the OS that link is going down Greg Kroah-Hartman
2020-03-10 12:38 ` [PATCH 5.4 048/168] x86/xen: Distribute switch variables for initialization Greg Kroah-Hartman
2020-03-10 12:38 ` [PATCH 5.4 049/168] net: thunderx: workaround BGX TX Underflow issue Greg Kroah-Hartman
2020-03-10 12:38 ` [PATCH 5.4 050/168] csky/mm: Fixup export invalid_pte_table symbol Greg Kroah-Hartman
2020-03-10 12:38 ` [PATCH 5.4 051/168] csky: Set regs->usp to kernel sp, when the exception is from kernel Greg Kroah-Hartman
2020-03-10 12:38 ` [PATCH 5.4 052/168] csky/smp: Fixup boot failed when CONFIG_SMP Greg Kroah-Hartman
2020-03-10 12:38 ` [PATCH 5.4 053/168] csky: Fixup ftrace modify panic Greg Kroah-Hartman
2020-03-10 12:38 ` [PATCH 5.4 054/168] csky: Fixup compile warning for three unimplemented syscalls Greg Kroah-Hartman
2020-03-10 12:38 ` [PATCH 5.4 055/168] arch/csky: fix some Kconfig typos Greg Kroah-Hartman
2020-03-10 12:38 ` [PATCH 5.4 056/168] selftests: forwarding: vxlan_bridge_1d: use more proper tos value Greg Kroah-Hartman
2020-03-10 12:38 ` [PATCH 5.4 057/168] firmware: imx: scu: Ensure sequential TX Greg Kroah-Hartman
2020-03-10 12:38 ` [PATCH 5.4 058/168] binder: prevent UAF for binderfs devices Greg Kroah-Hartman
2020-03-10 12:38 ` [PATCH 5.4 059/168] binder: prevent UAF for binderfs devices II Greg Kroah-Hartman
2020-03-10 12:38 ` [PATCH 5.4 060/168] ALSA: hda/realtek - Add Headset Mic supported Greg Kroah-Hartman
2020-03-10 12:38 ` [PATCH 5.4 061/168] ALSA: hda/realtek - Add Headset Button supported for ThinkPad X1 Greg Kroah-Hartman
2020-03-10 12:38 ` [PATCH 5.4 062/168] ALSA: hda/realtek - Fix silent output on Gigabyte X570 Aorus Master Greg Kroah-Hartman
2020-03-10 12:38 ` [PATCH 5.4 063/168] ALSA: hda/realtek - Enable the headset of ASUS B9450FA with ALC294 Greg Kroah-Hartman
2020-03-10 12:38 ` [PATCH 5.4 064/168] cifs: dont leak -EAGAIN for stat() during reconnect Greg Kroah-Hartman
2020-03-10 12:38 ` [PATCH 5.4 065/168] cifs: fix rename() by ensuring source handle opened with DELETE bit Greg Kroah-Hartman
2020-03-10 12:38 ` [PATCH 5.4 066/168] usb: storage: Add quirk for Samsung Fit flash Greg Kroah-Hartman
2020-03-10 12:38 ` [PATCH 5.4 067/168] usb: quirks: add NO_LPM quirk for Logitech Screen Share Greg Kroah-Hartman
2020-03-10 12:38 ` [PATCH 5.4 068/168] usb: dwc3: gadget: Update chain bit correctly when using sg list Greg Kroah-Hartman
2020-03-10 12:38 ` [PATCH 5.4 069/168] usb: cdns3: gadget: link trb should point to next request Greg Kroah-Hartman
2020-03-10 12:38 ` [PATCH 5.4 070/168] usb: cdns3: gadget: toggle cycle bit before reset endpoint Greg Kroah-Hartman
2020-03-10 12:38 ` [PATCH 5.4 071/168] usb: core: hub: fix unhandled return by employing a void function Greg Kroah-Hartman
2020-03-10 12:38 ` [PATCH 5.4 072/168] usb: core: hub: do error out if usb_autopm_get_interface() fails Greg Kroah-Hartman
2020-03-10 12:38 ` [PATCH 5.4 073/168] usb: core: port: " Greg Kroah-Hartman
2020-03-10 12:38 ` [PATCH 5.4 074/168] vgacon: Fix a UAF in vgacon_invert_region Greg Kroah-Hartman
2020-03-10 12:38 ` [PATCH 5.4 075/168] mm, numa: fix bad pmd by atomically check for pmd_trans_huge when marking page tables prot_numa Greg Kroah-Hartman
2020-03-10 12:38 ` [PATCH 5.4 076/168] mm: fix possible PMD dirty bit lost in set_pmd_migration_entry() Greg Kroah-Hartman
2020-03-10 12:38 ` [PATCH 5.4 077/168] mm, hotplug: fix page online with DEBUG_PAGEALLOC compiled but not enabled Greg Kroah-Hartman
2020-03-10 12:38 ` [PATCH 5.4 078/168] fat: fix uninit-memory access for partial initialized inode Greg Kroah-Hartman
2020-03-10 12:38 ` [PATCH 5.4 079/168] btrfs: fix RAID direct I/O reads with alternate csums Greg Kroah-Hartman
2020-03-10 12:38 ` [PATCH 5.4 080/168] arm64: dts: socfpga: agilex: Fix gmac compatible Greg Kroah-Hartman
2020-03-10 12:38 ` [PATCH 5.4 081/168] arm: dts: dra76x: Fix mmc3 max-frequency Greg Kroah-Hartman
2020-03-10 12:38 ` [PATCH 5.4 082/168] tty:serial:mvebu-uart:fix a wrong return Greg Kroah-Hartman
2020-03-10 12:38 ` [PATCH 5.4 083/168] tty: serial: fsl_lpuart: free IDs allocated by IDA Greg Kroah-Hartman
2020-03-10 12:38 ` [PATCH 5.4 084/168] serial: 8250_exar: add support for ACCES cards Greg Kroah-Hartman
2020-03-10 12:38 ` [PATCH 5.4 085/168] vt: selection, close sel_buffer race Greg Kroah-Hartman
2020-03-10 12:38 ` [PATCH 5.4 086/168] vt: selection, push console lock down Greg Kroah-Hartman
2020-03-10 12:38 ` [PATCH 5.4 087/168] vt: selection, push sel_lock up Greg Kroah-Hartman
2020-03-10 12:38 ` [PATCH 5.4 088/168] media: hantro: Fix broken media controller links Greg Kroah-Hartman
2020-03-10 12:38 ` [PATCH 5.4 089/168] media: mc-entity.c: use & to check pad flags, not == Greg Kroah-Hartman
2020-03-10 12:38 ` [PATCH 5.4 090/168] media: vicodec: process all 4 components for RGB32 formats Greg Kroah-Hartman
2020-03-10 12:38 ` [PATCH 5.4 091/168] media: v4l2-mem2mem.c: fix broken links Greg Kroah-Hartman
2020-03-10 12:38 ` [PATCH 5.4 092/168] perf intel-pt: Fix endless record after being terminated Greg Kroah-Hartman
2020-03-10 12:38 ` [PATCH 5.4 093/168] perf intel-bts: " Greg Kroah-Hartman
2020-03-10 12:39 ` [PATCH 5.4 094/168] perf cs-etm: " Greg Kroah-Hartman
2020-03-10 12:39 ` [PATCH 5.4 095/168] perf arm-spe: " Greg Kroah-Hartman
2020-03-10 12:39 ` [PATCH 5.4 096/168] spi: spidev: Fix CS polarity if GPIO descriptors are used Greg Kroah-Hartman
2020-03-10 12:39 ` [PATCH 5.4 097/168] x86/pkeys: Manually set X86_FEATURE_OSPKE to preserve existing changes Greg Kroah-Hartman
2020-03-10 12:39 ` [PATCH 5.4 098/168] s390/pci: Fix unexpected write combine on resource Greg Kroah-Hartman
2020-03-10 12:39 ` [PATCH 5.4 099/168] s390/mm: fix panic in gup_fast on large pud Greg Kroah-Hartman
2020-03-10 12:39 ` [PATCH 5.4 100/168] dmaengine: imx-sdma: fix context cache Greg Kroah-Hartman
2020-03-10 12:39 ` [PATCH 5.4 101/168] dmaengine: imx-sdma: Fix the event id check to include RX event for UART6 Greg Kroah-Hartman
2020-03-10 12:39 ` [PATCH 5.4 102/168] dmaengine: tegra-apb: Fix use-after-free Greg Kroah-Hartman
2020-03-10 12:39 ` [PATCH 5.4 103/168] dmaengine: tegra-apb: Prevent race conditions of tasklet vs free list Greg Kroah-Hartman
2020-03-10 12:39 ` [PATCH 5.4 104/168] dm integrity: fix recalculation when moving from journal mode to bitmap mode Greg Kroah-Hartman
2020-03-10 12:39 ` [PATCH 5.4 105/168] dm integrity: fix a deadlock due to offloading to an incorrect workqueue Greg Kroah-Hartman
2020-03-10 12:39 ` [PATCH 5.4 106/168] dm integrity: fix invalid table returned due to argument count mismatch Greg Kroah-Hartman
2020-03-10 12:39 ` [PATCH 5.4 107/168] dm cache: fix a crash due to incorrect work item cancelling Greg Kroah-Hartman
2020-03-10 12:39 ` [PATCH 5.4 108/168] dm: report suspended device during destroy Greg Kroah-Hartman
2020-03-10 12:39 ` [PATCH 5.4 109/168] dm writecache: verify watermark during resume Greg Kroah-Hartman
2020-03-10 12:39 ` [PATCH 5.4 110/168] dm zoned: Fix reference counter initial value of chunk works Greg Kroah-Hartman
2020-03-10 12:39 ` [PATCH 5.4 111/168] dm: fix congested_fn for request-based device Greg Kroah-Hartman
2020-03-10 12:39 ` [PATCH 5.4 112/168] arm64: dts: meson-sm1-sei610: add missing interrupt-names Greg Kroah-Hartman
2020-03-10 12:39 ` [PATCH 5.4 113/168] ARM: dts: ls1021a: Restore MDIO compatible to gianfar Greg Kroah-Hartman
2020-03-10 12:39 ` [PATCH 5.4 114/168] spi: bcm63xx-hsspi: Really keep pll clk enabled Greg Kroah-Hartman
2020-03-10 12:39 ` [PATCH 5.4 115/168] drm/virtio: make resource id workaround runtime switchable Greg Kroah-Hartman
2020-03-10 12:39 ` [PATCH 5.4 116/168] drm/virtio: fix resource id creation race Greg Kroah-Hartman
2020-03-10 12:39 ` [PATCH 5.4 117/168] ASoC: topology: Fix memleak in soc_tplg_link_elems_load() Greg Kroah-Hartman
2020-03-10 12:39 ` [PATCH 5.4 118/168] ASoC: topology: Fix memleak in soc_tplg_manifest_load() Greg Kroah-Hartman
2020-03-10 12:39 ` [PATCH 5.4 119/168] ASoC: SOF: Fix snd_sof_ipc_stream_posn() Greg Kroah-Hartman
2020-03-10 12:39 ` [PATCH 5.4 120/168] ASoC: intel: skl: Fix pin debug prints Greg Kroah-Hartman
2020-03-10 12:39 ` [PATCH 5.4 121/168] ASoC: intel: skl: Fix possible buffer overflow in debug outputs Greg Kroah-Hartman
2020-03-10 12:39 ` [PATCH 5.4 122/168] powerpc: define helpers to get L1 icache sizes Greg Kroah-Hartman
2020-03-10 12:39 ` Greg Kroah-Hartman [this message]
2020-03-10 12:39 ` [PATCH 5.4 124/168] powerpc/mm: Fix missing KUAP disable in flush_coherent_icache() Greg Kroah-Hartman
2020-03-10 12:39 ` [PATCH 5.4 125/168] ASoC: pcm: Fix possible buffer overflow in dpcm state sysfs output Greg Kroah-Hartman
2020-03-10 12:39 ` [PATCH 5.4 126/168] ASoC: pcm512x: Fix unbalanced regulator enable call in probe error path Greg Kroah-Hartman
2020-03-10 12:39 ` [PATCH 5.4 127/168] ASoC: Intel: Skylake: Fix available clock counter incrementation Greg Kroah-Hartman
2020-03-10 12:39 ` [PATCH 5.4 128/168] ASoC: dapm: Correct DAPM handling of active widgets during shutdown Greg Kroah-Hartman
2020-03-10 12:39 ` [PATCH 5.4 129/168] spi: atmel-quadspi: fix possible MMIO window size overrun Greg Kroah-Hartman
2020-03-10 12:39 ` [PATCH 5.4 130/168] drm/panfrost: Dont try to map on error faults Greg Kroah-Hartman
2020-03-10 12:39 ` [PATCH 5.4 131/168] drm: kirin: Revert "Fix for hikey620 display offset problem" Greg Kroah-Hartman
2020-03-10 12:39 ` [PATCH 5.4 132/168] drm/sun4i: Add separate DE3 VI layer formats Greg Kroah-Hartman
2020-03-10 12:39 ` [PATCH 5.4 133/168] drm/sun4i: Fix DE2 VI layer format support Greg Kroah-Hartman
2020-03-10 12:39 ` [PATCH 5.4 134/168] drm/sun4i: de2/de3: Remove unsupported VI layer formats Greg Kroah-Hartman
2020-03-10 12:39 ` [PATCH 5.4 135/168] drm/i915: Program MBUS with rmw during initialization Greg Kroah-Hartman
2020-03-10 12:39 ` [PATCH 5.4 136/168] drm/i915/selftests: Fix return in assert_mmap_offset() Greg Kroah-Hartman
2020-03-10 12:39 ` [PATCH 5.4 137/168] phy: mapphone-mdm6600: Fix timeouts by adding wake-up handling Greg Kroah-Hartman
2020-03-10 12:39 ` [PATCH 5.4 138/168] phy: mapphone-mdm6600: Fix write timeouts with shorter GPIO toggle interval Greg Kroah-Hartman
2020-03-10 12:39 ` [PATCH 5.4 139/168] ARM: dts: imx6: phycore-som: fix emmc supply Greg Kroah-Hartman
2020-03-10 12:39 ` [PATCH 5.4 140/168] arm64: dts: imx8qxp-mek: Remove unexisting Ethernet PHY Greg Kroah-Hartman
2020-03-10 12:39 ` [PATCH 5.4 141/168] firmware: imx: misc: Align imx sc msg structs to 4 Greg Kroah-Hartman
2020-03-10 12:39 ` [PATCH 5.4 142/168] firmware: imx: scu-pd: " Greg Kroah-Hartman
2020-03-10 12:39 ` [PATCH 5.4 143/168] firmware: imx: Align imx_sc_msg_req_cpu_start " Greg Kroah-Hartman
2020-03-10 12:39 ` [PATCH 5.4 144/168] soc: imx-scu: Align imx sc msg structs " Greg Kroah-Hartman
2020-03-10 12:39 ` [PATCH 5.4 145/168] Revert "RDMA/cma: Simplify rdma_resolve_addr() error flow" Greg Kroah-Hartman
2020-03-10 12:39 ` [PATCH 5.4 146/168] RDMA/rw: Fix error flow during RDMA context initialization Greg Kroah-Hartman
2020-03-10 12:39 ` [PATCH 5.4 147/168] RDMA/nldev: Fix crash when set a QP to a new counter but QPN is missing Greg Kroah-Hartman
2020-03-10 12:39 ` [PATCH 5.4 148/168] RDMA/siw: Fix failure handling during device creation Greg Kroah-Hartman
2020-03-10 12:39 ` [PATCH 5.4 149/168] RDMA/iwcm: Fix iwcm work deallocation Greg Kroah-Hartman
2020-03-10 12:39 ` [PATCH 5.4 150/168] RDMA/core: Fix protection fault in ib_mr_pool_destroy Greg Kroah-Hartman
2020-03-10 12:39 ` [PATCH 5.4 151/168] regulator: stm32-vrefbuf: fix a possible overshoot when re-enabling Greg Kroah-Hartman
2020-03-10 12:39 ` [PATCH 5.4 152/168] RMDA/cm: Fix missing ib_cm_destroy_id() in ib_cm_insert_listen() Greg Kroah-Hartman
2020-03-10 12:39 ` [PATCH 5.4 153/168] IB/hfi1, qib: Ensure RCU is locked when accessing list Greg Kroah-Hartman
2020-03-10 12:40 ` [PATCH 5.4 154/168] ARM: imx: build v7_cpu_resume() unconditionally Greg Kroah-Hartman
2020-03-10 12:40 ` [PATCH 5.4 155/168] ARM: dts: am437x-idk-evm: Fix incorrect OPP node names Greg Kroah-Hartman
2020-03-10 12:40 ` [PATCH 5.4 156/168] ARM: dts: dra7xx-clocks: Fixup IPU1 mux clock parent source Greg Kroah-Hartman
2020-03-10 12:40 ` [PATCH 5.4 157/168] ARM: dts: imx6dl-colibri-eval-v3: fix sram compatible properties Greg Kroah-Hartman
2020-03-10 12:40 ` [PATCH 5.4 158/168] ARM: dts: imx7-colibri: Fix frequency for sd/mmc Greg Kroah-Hartman
2020-03-10 12:40 ` [PATCH 5.4 159/168] hwmon: (adt7462) Fix an error return in ADT7462_REG_VOLT() Greg Kroah-Hartman
2020-03-10 12:40 ` [PATCH 5.4 160/168] dma-buf: free dmabuf->name in dma_buf_release() Greg Kroah-Hartman
2020-03-10 12:40 ` [PATCH 5.4 161/168] dmaengine: coh901318: Fix a double lock bug in dma_tc_handle() Greg Kroah-Hartman
2020-03-10 12:40 ` [PATCH 5.4 162/168] arm64: dts: meson: fix gxm-khadas-vim2 wifi Greg Kroah-Hartman
2020-03-10 12:40 ` [PATCH 5.4 163/168] bus: ti-sysc: Fix 1-wire reset quirk Greg Kroah-Hartman
2020-03-10 12:40 ` [PATCH 5.4 164/168] EDAC/synopsys: Do not print an error with back-to-back snprintf() calls Greg Kroah-Hartman
2020-03-10 12:40 ` [PATCH 5.4 165/168] powerpc: fix hardware PMU exception bug on PowerVM compatibility mode systems Greg Kroah-Hartman
2020-03-10 12:40 ` [PATCH 5.4 166/168] efi/x86: Align GUIDs to their size in the mixed mode runtime wrapper Greg Kroah-Hartman
2020-03-10 12:40 ` [PATCH 5.4 167/168] efi/x86: Handle by-ref arguments covering multiple pages in mixed mode Greg Kroah-Hartman
2020-03-10 12:40 ` [PATCH 5.4 168/168] efi: READ_ONCE rng seed size before munmap Greg Kroah-Hartman
2020-03-10 14:02 ` [PATCH 5.4 000/168] 5.4.25-stable review Holger Hoffstätte
2020-03-10 14:35 ` Greg Kroah-Hartman
2020-03-10 14:51 ` Holger Hoffstätte
2020-03-10 14:57 ` Holger Hoffstätte
2020-03-10 15:00 ` Greg Kroah-Hartman
2020-03-10 15:07 ` Holger Hoffstätte
2020-03-11 18:09 ` Greg Kroah-Hartman
2020-03-11 7:52 ` Naresh Kamboju
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=20200310123647.900429161@linuxfoundation.org \
--to=gregkh@linuxfoundation.org \
--cc=alastair@d-silva.org \
--cc=christophe.leroy@c-s.fr \
--cc=linux-kernel@vger.kernel.org \
--cc=mpe@ellerman.id.au \
--cc=sashal@kernel.org \
--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).