Archive-only list for patches
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: stable@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	patches@lists.linux.dev, Ard Biesheuvel <ardb@kernel.org>
Subject: [PATCH 6.1 121/128] efi: memmap: Move manipulation routines into x86 arch tree
Date: Tue,  2 Jul 2024 19:05:22 +0200	[thread overview]
Message-ID: <20240702170230.797685624@linuxfoundation.org> (raw)
In-Reply-To: <20240702170226.231899085@linuxfoundation.org>

6.1-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Ard Biesheuvel <ardb@kernel.org>

commit fdc6d38d64a20c542b1867ebeb8dd03b98829336 upstream.

The EFI memory map is a description of the memory layout as provided by
the firmware, and only x86 manipulates it in various different ways for
its own memory bookkeeping. So let's move the memmap routines that are
only used by x86 into the x86 arch tree.

Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 arch/x86/include/asm/efi.h     |   12 ++
 arch/x86/platform/efi/Makefile |    3 
 arch/x86/platform/efi/memmap.c |  236 ++++++++++++++++++++++++++++++++++++++++
 drivers/firmware/efi/memmap.c  |  240 +----------------------------------------
 include/linux/efi.h            |   10 -
 5 files changed, 261 insertions(+), 240 deletions(-)
 create mode 100644 arch/x86/platform/efi/memmap.c

--- a/arch/x86/include/asm/efi.h
+++ b/arch/x86/include/asm/efi.h
@@ -416,6 +416,18 @@ static inline void efi_fake_memmap_early
 }
 #endif
 
+extern int __init efi_memmap_alloc(unsigned int num_entries,
+				   struct efi_memory_map_data *data);
+extern void __efi_memmap_free(u64 phys, unsigned long size,
+			      unsigned long flags);
+#define __efi_memmap_free __efi_memmap_free
+
+extern int __init efi_memmap_install(struct efi_memory_map_data *data);
+extern int __init efi_memmap_split_count(efi_memory_desc_t *md,
+					 struct range *range);
+extern void __init efi_memmap_insert(struct efi_memory_map *old_memmap,
+				     void *buf, struct efi_mem_range *mem);
+
 #define arch_ima_efi_boot_mode	\
 	({ extern struct boot_params boot_params; boot_params.secure_boot; })
 
--- a/arch/x86/platform/efi/Makefile
+++ b/arch/x86/platform/efi/Makefile
@@ -2,5 +2,6 @@
 KASAN_SANITIZE := n
 GCOV_PROFILE := n
 
-obj-$(CONFIG_EFI) 		+= quirks.o efi.o efi_$(BITS).o efi_stub_$(BITS).o
+obj-$(CONFIG_EFI) 		+= memmap.o quirks.o efi.o efi_$(BITS).o \
+				   efi_stub_$(BITS).o
 obj-$(CONFIG_EFI_MIXED)		+= efi_thunk_$(BITS).o
--- /dev/null
+++ b/arch/x86/platform/efi/memmap.c
@@ -0,0 +1,236 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Common EFI memory map functions.
+ */
+
+#define pr_fmt(fmt) "efi: " fmt
+
+#include <linux/init.h>
+#include <linux/kernel.h>
+#include <linux/efi.h>
+#include <linux/io.h>
+#include <asm/early_ioremap.h>
+#include <asm/efi.h>
+#include <linux/memblock.h>
+#include <linux/slab.h>
+
+static phys_addr_t __init __efi_memmap_alloc_early(unsigned long size)
+{
+	return memblock_phys_alloc(size, SMP_CACHE_BYTES);
+}
+
+static phys_addr_t __init __efi_memmap_alloc_late(unsigned long size)
+{
+	unsigned int order = get_order(size);
+	struct page *p = alloc_pages(GFP_KERNEL, order);
+
+	if (!p)
+		return 0;
+
+	return PFN_PHYS(page_to_pfn(p));
+}
+
+void __init __efi_memmap_free(u64 phys, unsigned long size, unsigned long flags)
+{
+	if (flags & EFI_MEMMAP_MEMBLOCK) {
+		if (slab_is_available())
+			memblock_free_late(phys, size);
+		else
+			memblock_phys_free(phys, size);
+	} else if (flags & EFI_MEMMAP_SLAB) {
+		struct page *p = pfn_to_page(PHYS_PFN(phys));
+		unsigned int order = get_order(size);
+
+		free_pages((unsigned long) page_address(p), order);
+	}
+}
+
+/**
+ * efi_memmap_alloc - Allocate memory for the EFI memory map
+ * @num_entries: Number of entries in the allocated map.
+ * @data: efi memmap installation parameters
+ *
+ * Depending on whether mm_init() has already been invoked or not,
+ * either memblock or "normal" page allocation is used.
+ *
+ * Returns zero on success, a negative error code on failure.
+ */
+int __init efi_memmap_alloc(unsigned int num_entries,
+		struct efi_memory_map_data *data)
+{
+	/* Expect allocation parameters are zero initialized */
+	WARN_ON(data->phys_map || data->size);
+
+	data->size = num_entries * efi.memmap.desc_size;
+	data->desc_version = efi.memmap.desc_version;
+	data->desc_size = efi.memmap.desc_size;
+	data->flags &= ~(EFI_MEMMAP_SLAB | EFI_MEMMAP_MEMBLOCK);
+	data->flags |= efi.memmap.flags & EFI_MEMMAP_LATE;
+
+	if (slab_is_available()) {
+		data->flags |= EFI_MEMMAP_SLAB;
+		data->phys_map = __efi_memmap_alloc_late(data->size);
+	} else {
+		data->flags |= EFI_MEMMAP_MEMBLOCK;
+		data->phys_map = __efi_memmap_alloc_early(data->size);
+	}
+
+	if (!data->phys_map)
+		return -ENOMEM;
+	return 0;
+}
+
+/**
+ * efi_memmap_install - Install a new EFI memory map in efi.memmap
+ * @ctx: map allocation parameters (address, size, flags)
+ *
+ * Unlike efi_memmap_init_*(), this function does not allow the caller
+ * to switch from early to late mappings. It simply uses the existing
+ * mapping function and installs the new memmap.
+ *
+ * Returns zero on success, a negative error code on failure.
+ */
+int __init efi_memmap_install(struct efi_memory_map_data *data)
+{
+	efi_memmap_unmap();
+
+	return __efi_memmap_init(data);
+}
+
+/**
+ * efi_memmap_split_count - Count number of additional EFI memmap entries
+ * @md: EFI memory descriptor to split
+ * @range: Address range (start, end) to split around
+ *
+ * Returns the number of additional EFI memmap entries required to
+ * accommodate @range.
+ */
+int __init efi_memmap_split_count(efi_memory_desc_t *md, struct range *range)
+{
+	u64 m_start, m_end;
+	u64 start, end;
+	int count = 0;
+
+	start = md->phys_addr;
+	end = start + (md->num_pages << EFI_PAGE_SHIFT) - 1;
+
+	/* modifying range */
+	m_start = range->start;
+	m_end = range->end;
+
+	if (m_start <= start) {
+		/* split into 2 parts */
+		if (start < m_end && m_end < end)
+			count++;
+	}
+
+	if (start < m_start && m_start < end) {
+		/* split into 3 parts */
+		if (m_end < end)
+			count += 2;
+		/* split into 2 parts */
+		if (end <= m_end)
+			count++;
+	}
+
+	return count;
+}
+
+/**
+ * efi_memmap_insert - Insert a memory region in an EFI memmap
+ * @old_memmap: The existing EFI memory map structure
+ * @buf: Address of buffer to store new map
+ * @mem: Memory map entry to insert
+ *
+ * It is suggested that you call efi_memmap_split_count() first
+ * to see how large @buf needs to be.
+ */
+void __init efi_memmap_insert(struct efi_memory_map *old_memmap, void *buf,
+			      struct efi_mem_range *mem)
+{
+	u64 m_start, m_end, m_attr;
+	efi_memory_desc_t *md;
+	u64 start, end;
+	void *old, *new;
+
+	/* modifying range */
+	m_start = mem->range.start;
+	m_end = mem->range.end;
+	m_attr = mem->attribute;
+
+	/*
+	 * The EFI memory map deals with regions in EFI_PAGE_SIZE
+	 * units. Ensure that the region described by 'mem' is aligned
+	 * correctly.
+	 */
+	if (!IS_ALIGNED(m_start, EFI_PAGE_SIZE) ||
+	    !IS_ALIGNED(m_end + 1, EFI_PAGE_SIZE)) {
+		WARN_ON(1);
+		return;
+	}
+
+	for (old = old_memmap->map, new = buf;
+	     old < old_memmap->map_end;
+	     old += old_memmap->desc_size, new += old_memmap->desc_size) {
+
+		/* copy original EFI memory descriptor */
+		memcpy(new, old, old_memmap->desc_size);
+		md = new;
+		start = md->phys_addr;
+		end = md->phys_addr + (md->num_pages << EFI_PAGE_SHIFT) - 1;
+
+		if (m_start <= start && end <= m_end)
+			md->attribute |= m_attr;
+
+		if (m_start <= start &&
+		    (start < m_end && m_end < end)) {
+			/* first part */
+			md->attribute |= m_attr;
+			md->num_pages = (m_end - md->phys_addr + 1) >>
+				EFI_PAGE_SHIFT;
+			/* latter part */
+			new += old_memmap->desc_size;
+			memcpy(new, old, old_memmap->desc_size);
+			md = new;
+			md->phys_addr = m_end + 1;
+			md->num_pages = (end - md->phys_addr + 1) >>
+				EFI_PAGE_SHIFT;
+		}
+
+		if ((start < m_start && m_start < end) && m_end < end) {
+			/* first part */
+			md->num_pages = (m_start - md->phys_addr) >>
+				EFI_PAGE_SHIFT;
+			/* middle part */
+			new += old_memmap->desc_size;
+			memcpy(new, old, old_memmap->desc_size);
+			md = new;
+			md->attribute |= m_attr;
+			md->phys_addr = m_start;
+			md->num_pages = (m_end - m_start + 1) >>
+				EFI_PAGE_SHIFT;
+			/* last part */
+			new += old_memmap->desc_size;
+			memcpy(new, old, old_memmap->desc_size);
+			md = new;
+			md->phys_addr = m_end + 1;
+			md->num_pages = (end - m_end) >>
+				EFI_PAGE_SHIFT;
+		}
+
+		if ((start < m_start && m_start < end) &&
+		    (end <= m_end)) {
+			/* first part */
+			md->num_pages = (m_start - md->phys_addr) >>
+				EFI_PAGE_SHIFT;
+			/* latter part */
+			new += old_memmap->desc_size;
+			memcpy(new, old, old_memmap->desc_size);
+			md = new;
+			md->phys_addr = m_start;
+			md->num_pages = (end - md->phys_addr + 1) >>
+				EFI_PAGE_SHIFT;
+			md->attribute |= m_attr;
+		}
+	}
+}
--- a/drivers/firmware/efi/memmap.c
+++ b/drivers/firmware/efi/memmap.c
@@ -9,82 +9,15 @@
 #include <linux/kernel.h>
 #include <linux/efi.h>
 #include <linux/io.h>
-#include <asm/early_ioremap.h>
 #include <linux/memblock.h>
 #include <linux/slab.h>
 
-static phys_addr_t __init __efi_memmap_alloc_early(unsigned long size)
-{
-	return memblock_phys_alloc(size, SMP_CACHE_BYTES);
-}
-
-static phys_addr_t __init __efi_memmap_alloc_late(unsigned long size)
-{
-	unsigned int order = get_order(size);
-	struct page *p = alloc_pages(GFP_KERNEL, order);
-
-	if (!p)
-		return 0;
-
-	return PFN_PHYS(page_to_pfn(p));
-}
-
-void __init __efi_memmap_free(u64 phys, unsigned long size, unsigned long flags)
-{
-	if (flags & EFI_MEMMAP_MEMBLOCK) {
-		if (slab_is_available())
-			memblock_free_late(phys, size);
-		else
-			memblock_phys_free(phys, size);
-	} else if (flags & EFI_MEMMAP_SLAB) {
-		struct page *p = pfn_to_page(PHYS_PFN(phys));
-		unsigned int order = get_order(size);
-
-		free_pages((unsigned long) page_address(p), order);
-	}
-}
-
-static void __init efi_memmap_free(void)
-{
-	__efi_memmap_free(efi.memmap.phys_map,
-			efi.memmap.desc_size * efi.memmap.nr_map,
-			efi.memmap.flags);
-}
-
-/**
- * efi_memmap_alloc - Allocate memory for the EFI memory map
- * @num_entries: Number of entries in the allocated map.
- * @data: efi memmap installation parameters
- *
- * Depending on whether mm_init() has already been invoked or not,
- * either memblock or "normal" page allocation is used.
- *
- * Returns zero on success, a negative error code on failure.
- */
-int __init efi_memmap_alloc(unsigned int num_entries,
-		struct efi_memory_map_data *data)
-{
-	/* Expect allocation parameters are zero initialized */
-	WARN_ON(data->phys_map || data->size);
-
-	data->size = num_entries * efi.memmap.desc_size;
-	data->desc_version = efi.memmap.desc_version;
-	data->desc_size = efi.memmap.desc_size;
-	data->flags &= ~(EFI_MEMMAP_SLAB | EFI_MEMMAP_MEMBLOCK);
-	data->flags |= efi.memmap.flags & EFI_MEMMAP_LATE;
-
-	if (slab_is_available()) {
-		data->flags |= EFI_MEMMAP_SLAB;
-		data->phys_map = __efi_memmap_alloc_late(data->size);
-	} else {
-		data->flags |= EFI_MEMMAP_MEMBLOCK;
-		data->phys_map = __efi_memmap_alloc_early(data->size);
-	}
+#include <asm/early_ioremap.h>
+#include <asm/efi.h>
 
-	if (!data->phys_map)
-		return -ENOMEM;
-	return 0;
-}
+#ifndef __efi_memmap_free
+#define __efi_memmap_free(phys, size, flags) do { } while (0)
+#endif
 
 /**
  * __efi_memmap_init - Common code for mapping the EFI memory map
@@ -101,7 +34,7 @@ int __init efi_memmap_alloc(unsigned int
  *
  * Returns zero on success, a negative error code on failure.
  */
-static int __init __efi_memmap_init(struct efi_memory_map_data *data)
+int __init __efi_memmap_init(struct efi_memory_map_data *data)
 {
 	struct efi_memory_map map;
 	phys_addr_t phys_map;
@@ -121,8 +54,10 @@ static int __init __efi_memmap_init(stru
 		return -ENOMEM;
 	}
 
-	/* NOP if data->flags & (EFI_MEMMAP_MEMBLOCK | EFI_MEMMAP_SLAB) == 0 */
-	efi_memmap_free();
+	if (efi.memmap.flags & (EFI_MEMMAP_MEMBLOCK | EFI_MEMMAP_SLAB))
+		__efi_memmap_free(efi.memmap.phys_map,
+				  efi.memmap.desc_size * efi.memmap.nr_map,
+				  efi.memmap.flags);
 
 	map.phys_map = data->phys_map;
 	map.nr_map = data->size / data->desc_size;
@@ -220,158 +155,3 @@ int __init efi_memmap_init_late(phys_add
 
 	return __efi_memmap_init(&data);
 }
-
-/**
- * efi_memmap_install - Install a new EFI memory map in efi.memmap
- * @ctx: map allocation parameters (address, size, flags)
- *
- * Unlike efi_memmap_init_*(), this function does not allow the caller
- * to switch from early to late mappings. It simply uses the existing
- * mapping function and installs the new memmap.
- *
- * Returns zero on success, a negative error code on failure.
- */
-int __init efi_memmap_install(struct efi_memory_map_data *data)
-{
-	efi_memmap_unmap();
-
-	return __efi_memmap_init(data);
-}
-
-/**
- * efi_memmap_split_count - Count number of additional EFI memmap entries
- * @md: EFI memory descriptor to split
- * @range: Address range (start, end) to split around
- *
- * Returns the number of additional EFI memmap entries required to
- * accommodate @range.
- */
-int __init efi_memmap_split_count(efi_memory_desc_t *md, struct range *range)
-{
-	u64 m_start, m_end;
-	u64 start, end;
-	int count = 0;
-
-	start = md->phys_addr;
-	end = start + (md->num_pages << EFI_PAGE_SHIFT) - 1;
-
-	/* modifying range */
-	m_start = range->start;
-	m_end = range->end;
-
-	if (m_start <= start) {
-		/* split into 2 parts */
-		if (start < m_end && m_end < end)
-			count++;
-	}
-
-	if (start < m_start && m_start < end) {
-		/* split into 3 parts */
-		if (m_end < end)
-			count += 2;
-		/* split into 2 parts */
-		if (end <= m_end)
-			count++;
-	}
-
-	return count;
-}
-
-/**
- * efi_memmap_insert - Insert a memory region in an EFI memmap
- * @old_memmap: The existing EFI memory map structure
- * @buf: Address of buffer to store new map
- * @mem: Memory map entry to insert
- *
- * It is suggested that you call efi_memmap_split_count() first
- * to see how large @buf needs to be.
- */
-void __init efi_memmap_insert(struct efi_memory_map *old_memmap, void *buf,
-			      struct efi_mem_range *mem)
-{
-	u64 m_start, m_end, m_attr;
-	efi_memory_desc_t *md;
-	u64 start, end;
-	void *old, *new;
-
-	/* modifying range */
-	m_start = mem->range.start;
-	m_end = mem->range.end;
-	m_attr = mem->attribute;
-
-	/*
-	 * The EFI memory map deals with regions in EFI_PAGE_SIZE
-	 * units. Ensure that the region described by 'mem' is aligned
-	 * correctly.
-	 */
-	if (!IS_ALIGNED(m_start, EFI_PAGE_SIZE) ||
-	    !IS_ALIGNED(m_end + 1, EFI_PAGE_SIZE)) {
-		WARN_ON(1);
-		return;
-	}
-
-	for (old = old_memmap->map, new = buf;
-	     old < old_memmap->map_end;
-	     old += old_memmap->desc_size, new += old_memmap->desc_size) {
-
-		/* copy original EFI memory descriptor */
-		memcpy(new, old, old_memmap->desc_size);
-		md = new;
-		start = md->phys_addr;
-		end = md->phys_addr + (md->num_pages << EFI_PAGE_SHIFT) - 1;
-
-		if (m_start <= start && end <= m_end)
-			md->attribute |= m_attr;
-
-		if (m_start <= start &&
-		    (start < m_end && m_end < end)) {
-			/* first part */
-			md->attribute |= m_attr;
-			md->num_pages = (m_end - md->phys_addr + 1) >>
-				EFI_PAGE_SHIFT;
-			/* latter part */
-			new += old_memmap->desc_size;
-			memcpy(new, old, old_memmap->desc_size);
-			md = new;
-			md->phys_addr = m_end + 1;
-			md->num_pages = (end - md->phys_addr + 1) >>
-				EFI_PAGE_SHIFT;
-		}
-
-		if ((start < m_start && m_start < end) && m_end < end) {
-			/* first part */
-			md->num_pages = (m_start - md->phys_addr) >>
-				EFI_PAGE_SHIFT;
-			/* middle part */
-			new += old_memmap->desc_size;
-			memcpy(new, old, old_memmap->desc_size);
-			md = new;
-			md->attribute |= m_attr;
-			md->phys_addr = m_start;
-			md->num_pages = (m_end - m_start + 1) >>
-				EFI_PAGE_SHIFT;
-			/* last part */
-			new += old_memmap->desc_size;
-			memcpy(new, old, old_memmap->desc_size);
-			md = new;
-			md->phys_addr = m_end + 1;
-			md->num_pages = (end - m_end) >>
-				EFI_PAGE_SHIFT;
-		}
-
-		if ((start < m_start && m_start < end) &&
-		    (end <= m_end)) {
-			/* first part */
-			md->num_pages = (m_start - md->phys_addr) >>
-				EFI_PAGE_SHIFT;
-			/* latter part */
-			new += old_memmap->desc_size;
-			memcpy(new, old, old_memmap->desc_size);
-			md = new;
-			md->phys_addr = m_start;
-			md->num_pages = (end - md->phys_addr + 1) >>
-				EFI_PAGE_SHIFT;
-			md->attribute |= m_attr;
-		}
-	}
-}
--- a/include/linux/efi.h
+++ b/include/linux/efi.h
@@ -709,18 +709,10 @@ static inline efi_status_t efi_query_var
 #endif
 extern void __iomem *efi_lookup_mapped_addr(u64 phys_addr);
 
-extern int __init efi_memmap_alloc(unsigned int num_entries,
-				   struct efi_memory_map_data *data);
-extern void __efi_memmap_free(u64 phys, unsigned long size,
-			      unsigned long flags);
+extern int __init __efi_memmap_init(struct efi_memory_map_data *data);
 extern int __init efi_memmap_init_early(struct efi_memory_map_data *data);
 extern int __init efi_memmap_init_late(phys_addr_t addr, unsigned long size);
 extern void __init efi_memmap_unmap(void);
-extern int __init efi_memmap_install(struct efi_memory_map_data *data);
-extern int __init efi_memmap_split_count(efi_memory_desc_t *md,
-					 struct range *range);
-extern void __init efi_memmap_insert(struct efi_memory_map *old_memmap,
-				     void *buf, struct efi_mem_range *mem);
 
 #ifdef CONFIG_EFI_ESRT
 extern void __init efi_esrt_init(void);



  parent reply	other threads:[~2024-07-02 17:33 UTC|newest]

Thread overview: 145+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-07-02 17:03 [PATCH 6.1 000/128] 6.1.97-rc1 review Greg Kroah-Hartman
2024-07-02 17:03 ` [PATCH 6.1 001/128] usb: typec: ucsi: Never send a lone connector change ack Greg Kroah-Hartman
2024-07-02 17:03 ` [PATCH 6.1 002/128] usb: typec: ucsi: Ack also failed Get Error commands Greg Kroah-Hartman
2024-07-02 17:03 ` [PATCH 6.1 003/128] x86/mm/numa: Use NUMA_NO_NODE when calling memblock_set_node() Greg Kroah-Hartman
2024-07-03  6:41   ` Mike Rapoport
2024-07-02 17:03 ` [PATCH 6.1 004/128] ACPI: x86: utils: Add Picasso to the list for forcing StorageD3Enable Greg Kroah-Hartman
2024-07-02 17:03 ` [PATCH 6.1 005/128] ACPI: x86: Force StorageD3Enable on more products Greg Kroah-Hartman
2024-07-02 17:03 ` [PATCH 6.1 006/128] Input: ili210x - fix ili251x_read_touch_data() return value Greg Kroah-Hartman
2024-07-02 17:03 ` [PATCH 6.1 007/128] pinctrl: fix deadlock in create_pinctrl() when handling -EPROBE_DEFER Greg Kroah-Hartman
2024-07-02 17:03 ` [PATCH 6.1 008/128] pinctrl: rockchip: fix pinmux bits for RK3328 GPIO2-B pins Greg Kroah-Hartman
2024-07-02 17:03 ` [PATCH 6.1 009/128] pinctrl: rockchip: fix pinmux bits for RK3328 GPIO3-B pins Greg Kroah-Hartman
2024-07-02 17:03 ` [PATCH 6.1 010/128] pinctrl: rockchip: use dedicated pinctrl type for RK3328 Greg Kroah-Hartman
2024-07-02 17:03 ` [PATCH 6.1 011/128] pinctrl: rockchip: fix pinmux reset in rockchip_pmx_set Greg Kroah-Hartman
2024-07-02 17:03 ` [PATCH 6.1 012/128] MIPS: pci: lantiq: restore reset gpio polarity Greg Kroah-Hartman
2024-07-02 17:03 ` [PATCH 6.1 013/128] dt-bindings: i2c: Drop unneeded quotes Greg Kroah-Hartman
2024-07-02 17:03 ` [PATCH 6.1 014/128] dt-bindings: i2c: atmel,at91sam: correct path to i2c-controller schema Greg Kroah-Hartman
2024-07-02 17:03 ` [PATCH 6.1 015/128] netfilter: nf_tables: use timestamp to check for set element timeout Greg Kroah-Hartman
2024-07-02 17:03 ` [PATCH 6.1 016/128] ASoC: rockchip: i2s-tdm: Fix trcm mode by setting clock on right mclk Greg Kroah-Hartman
2024-07-02 17:03 ` [PATCH 6.1 017/128] s390/pci: Add missing virt_to_phys() for directed DIBV Greg Kroah-Hartman
2024-07-02 17:03 ` [PATCH 6.1 018/128] ASoC: amd: acp: remove i2s configuration check in acp_i2s_probe() Greg Kroah-Hartman
2024-07-02 17:03 ` [PATCH 6.1 019/128] ASoC: fsl-asoc-card: set priv->pdev before using it Greg Kroah-Hartman
2024-07-02 17:03 ` [PATCH 6.1 020/128] net: dsa: microchip: fix initial port flush problem Greg Kroah-Hartman
2024-07-02 17:03 ` [PATCH 6.1 021/128] mlxsw: spectrum_buffers: Fix memory corruptions on Spectrum-4 systems Greg Kroah-Hartman
2024-07-02 17:03 ` [PATCH 6.1 022/128] bpf: Fix overrunning reservations in ringbuf Greg Kroah-Hartman
2024-07-02 17:03 ` [PATCH 6.1 023/128] ibmvnic: Free any outstanding tx skbs during scrq reset Greg Kroah-Hartman
2024-07-02 17:03 ` [PATCH 6.1 024/128] net: phy: micrel: add Microchip KSZ 9477 to the device table Greg Kroah-Hartman
2024-07-02 17:03 ` [PATCH 6.1 025/128] net: dsa: microchip: use collision based back pressure mode Greg Kroah-Hartman
2024-07-02 17:03 ` [PATCH 6.1 026/128] xdp: Remove WARN() from __xdp_reg_mem_model() Greg Kroah-Hartman
2024-07-02 17:03 ` [PATCH 6.1 027/128] Fix race for duplicate reqsk on identical SYN Greg Kroah-Hartman
2024-07-02 17:03 ` [PATCH 6.1 028/128] net: dsa: microchip: fix wrong register write when masking interrupt Greg Kroah-Hartman
2024-07-02 17:03 ` [PATCH 6.1 029/128] sparc: fix old compat_sys_select() Greg Kroah-Hartman
2024-07-02 17:03 ` [PATCH 6.1 030/128] sparc: fix compat recv/recvfrom syscalls Greg Kroah-Hartman
2024-07-02 17:03 ` [PATCH 6.1 031/128] parisc: use correct " Greg Kroah-Hartman
2024-07-02 17:03 ` [PATCH 6.1 032/128] powerpc: restore some missing spu syscalls Greg Kroah-Hartman
2024-07-02 17:03 ` [PATCH 6.1 033/128] tcp: fix tcp_rcv_fastopen_synack() to enter TCP_CA_Loss for failed TFO Greg Kroah-Hartman
2024-07-02 17:03 ` [PATCH 6.1 034/128] netfilter: nf_tables: fully validate NFT_DATA_VALUE on store to data registers Greg Kroah-Hartman
2024-07-02 17:03 ` [PATCH 6.1 035/128] tracing/net_sched: NULL pointer dereference in perf_trace_qdisc_reset() Greg Kroah-Hartman
2024-07-02 18:36   ` Yunseong Kim
2024-07-02 17:03 ` [PATCH 6.1 036/128] bpf: Take return from set_memory_ro() into account with bpf_prog_lock_ro() Greg Kroah-Hartman
2024-07-02 17:03 ` [PATCH 6.1 037/128] drm/panel: ilitek-ili9881c: Fix warning with GPIO controllers that sleep Greg Kroah-Hartman
2024-07-02 17:03 ` [PATCH 6.1 038/128] vduse: validate block features only with block devices Greg Kroah-Hartman
2024-07-02 17:04 ` [PATCH 6.1 039/128] vduse: Temporarily fail if control queue feature requested Greg Kroah-Hartman
2024-07-02 17:04 ` [PATCH 6.1 040/128] x86/fpu: Fix AMD X86_BUG_FXSAVE_LEAK fixup Greg Kroah-Hartman
2024-07-02 17:04 ` [PATCH 6.1 041/128] mtd: partitions: redboot: Added conversion of operands to a larger type Greg Kroah-Hartman
2024-07-02 17:04 ` [PATCH 6.1 042/128] wifi: ieee80211: check for NULL in ieee80211_mle_size_ok() Greg Kroah-Hartman
2024-07-02 17:04 ` [PATCH 6.1 043/128] bpf: Add a check for struct bpf_fib_lookup size Greg Kroah-Hartman
2024-07-02 17:04 ` [PATCH 6.1 044/128] bpf: Mark bpf prog stack with kmsan_unposion_memory in interpreter mode Greg Kroah-Hartman
2024-07-02 17:04 ` [PATCH 6.1 045/128] RDMA/restrack: Fix potential invalid address access Greg Kroah-Hartman
2024-07-02 17:04 ` [PATCH 6.1 046/128] net/iucv: Avoid explicit cpumask var allocation on stack Greg Kroah-Hartman
2024-07-02 17:04 ` [PATCH 6.1 047/128] net/dpaa2: " Greg Kroah-Hartman
2024-07-02 17:04 ` [PATCH 6.1 048/128] crypto: ecdh - explicitly zeroize private_key Greg Kroah-Hartman
2024-07-02 17:04 ` [PATCH 6.1 049/128] ALSA: emux: improve patch ioctl data validation Greg Kroah-Hartman
2024-07-02 17:04 ` [PATCH 6.1 050/128] media: dvbdev: Initialize sbuf Greg Kroah-Hartman
2024-07-02 17:04 ` [PATCH 6.1 051/128] soc: ti: wkup_m3_ipc: Send NULL dummy message instead of pointer message Greg Kroah-Hartman
2024-07-02 17:04 ` [PATCH 6.1 052/128] drm/radeon/radeon_display: Decrease the size of allocated memory Greg Kroah-Hartman
2024-07-02 17:04 ` [PATCH 6.1 053/128] nvme: fixup comment for nvme RDMA Provider Type Greg Kroah-Hartman
2024-07-02 17:04 ` [PATCH 6.1 054/128] drm/panel: simple: Add missing display timing flags for KOE TX26D202VM0BWA Greg Kroah-Hartman
2024-07-02 17:04 ` [PATCH 6.1 055/128] gpio: davinci: Validate the obtained number of IRQs Greg Kroah-Hartman
2024-07-02 17:04 ` [PATCH 6.1 056/128] drm/amd/amdgpu: Fix style errors in amdgpu_drv.c & amdgpu_device.c Greg Kroah-Hartman
2024-07-02 17:04 ` [PATCH 6.1 057/128] drm/amdgpu: Fix pci state save during mode-1 reset Greg Kroah-Hartman
2024-07-02 17:04 ` [PATCH 6.1 058/128] riscv: stacktrace: convert arch_stack_walk() to noinstr Greg Kroah-Hartman
2024-07-02 17:04 ` [PATCH 6.1 059/128] gpiolib: cdev: Disallow reconfiguration without direction (uAPI v1) Greg Kroah-Hartman
2024-07-02 17:04 ` [PATCH 6.1 060/128] randomize_kstack: Remove non-functional per-arch entropy filtering Greg Kroah-Hartman
2024-07-02 17:04 ` [PATCH 6.1 061/128] ima: Fix use-after-free on a dentrys dname.name Greg Kroah-Hartman
2024-07-02 17:04 ` [PATCH 6.1 062/128] x86: stop playing stack games in profile_pc() Greg Kroah-Hartman
2024-07-02 17:04 ` [PATCH 6.1 063/128] parisc: use generic sys_fanotify_mark implementation Greg Kroah-Hartman
2024-07-02 17:04 ` [PATCH 6.1 064/128] Revert "MIPS: pci: lantiq: restore reset gpio polarity" Greg Kroah-Hartman
2024-07-02 17:04 ` [PATCH 6.1 065/128] pinctrl: qcom: spmi-gpio: drop broken pm8008 support Greg Kroah-Hartman
2024-07-02 17:04 ` [PATCH 6.1 066/128] ocfs2: fix DIO failure due to insufficient transaction credits Greg Kroah-Hartman
2024-07-02 17:04 ` [PATCH 6.1 067/128] nfs: drop the incorrect assertion in nfs_swap_rw() Greg Kroah-Hartman
2024-07-02 17:04 ` [PATCH 6.1 068/128] mmc: sdhci-brcmstb: check R1_STATUS for erase/trim/discard Greg Kroah-Hartman
2024-07-02 17:04 ` [PATCH 6.1 069/128] mmc: sdhci-pci: Convert PCIBIOS_* return codes to errnos Greg Kroah-Hartman
2024-07-02 17:04 ` [PATCH 6.1 070/128] mmc: sdhci: Do not invert write-protect twice Greg Kroah-Hartman
2024-07-02 17:04 ` [PATCH 6.1 071/128] mmc: sdhci: Do not lock spinlock around mmc_gpio_get_ro() Greg Kroah-Hartman
2024-07-02 17:04 ` [PATCH 6.1 072/128] iio: xilinx-ams: Dont include ams_ctrl_channels in scan_mask Greg Kroah-Hartman
2024-07-02 17:04 ` [PATCH 6.1 073/128] counter: ti-eqep: enable clock at probe Greg Kroah-Hartman
2024-07-02 17:04 ` [PATCH 6.1 074/128] i2c: testunit: dont erase registers after STOP Greg Kroah-Hartman
2024-07-02 17:04 ` [PATCH 6.1 075/128] i2c: testunit: discard write requests while old command is running Greg Kroah-Hartman
2024-07-02 17:04 ` [PATCH 6.1 076/128] iio: adc: ad7266: Fix variable checking bug Greg Kroah-Hartman
2024-07-02 17:04 ` [PATCH 6.1 077/128] iio: accel: fxls8962af: select IIO_BUFFER & IIO_KFIFO_BUF Greg Kroah-Hartman
2024-07-02 17:04 ` [PATCH 6.1 078/128] iio: chemical: bme680: Fix pressure value output Greg Kroah-Hartman
2024-07-02 17:04 ` [PATCH 6.1 079/128] iio: chemical: bme680: Fix calibration data variable Greg Kroah-Hartman
2024-07-02 17:04 ` [PATCH 6.1 080/128] iio: chemical: bme680: Fix overflows in compensate() functions Greg Kroah-Hartman
2024-07-02 17:04 ` [PATCH 6.1 081/128] iio: chemical: bme680: Fix sensor data read operation Greg Kroah-Hartman
2024-07-02 17:04 ` [PATCH 6.1 082/128] net: usb: ax88179_178a: improve link status logs Greg Kroah-Hartman
2024-07-02 17:04 ` [PATCH 6.1 083/128] usb: gadget: printer: SS+ support Greg Kroah-Hartman
2024-07-02 17:04 ` [PATCH 6.1 084/128] usb: gadget: printer: fix races against disable Greg Kroah-Hartman
2024-07-02 17:04 ` [PATCH 6.1 085/128] usb: musb: da8xx: fix a resource leak in probe() Greg Kroah-Hartman
2024-07-02 17:04 ` [PATCH 6.1 086/128] usb: atm: cxacru: fix endpoint checking in cxacru_bind() Greg Kroah-Hartman
2024-07-02 17:04 ` [PATCH 6.1 087/128] usb: dwc3: core: remove lock of otg mode during gadget suspend/resume to avoid deadlock Greg Kroah-Hartman
2024-07-02 17:04 ` [PATCH 6.1 088/128] usb: gadget: aspeed_udc: fix device address configuration Greg Kroah-Hartman
2024-07-02 17:04 ` [PATCH 6.1 089/128] usb: ucsi: stm32: fix command completion handling Greg Kroah-Hartman
2024-07-02 17:04 ` [PATCH 6.1 090/128] serial: 8250_omap: Implementation of Errata i2310 Greg Kroah-Hartman
2024-07-02 17:04 ` [PATCH 6.1 091/128] serial: imx: set receiver level before starting uart Greg Kroah-Hartman
2024-07-03  7:37   ` Stefan Eichenberger
2024-07-04  9:29     ` Greg Kroah-Hartman
2024-07-04  7:18   ` Francesco Dolcini
2024-07-04  7:43     ` Greg Kroah-Hartman
2024-07-02 17:04 ` [PATCH 6.1 092/128] ALSA: hda/realtek: fix mute/micmute LEDs dont work for EliteBook 645/665 G11 Greg Kroah-Hartman
2024-07-02 17:04 ` [PATCH 6.1 093/128] tty: mcf: MCF54418 has 10 UARTS Greg Kroah-Hartman
2024-07-02 17:04 ` [PATCH 6.1 094/128] net: can: j1939: Initialize unused data in j1939_send_one() Greg Kroah-Hartman
2024-07-02 17:04 ` [PATCH 6.1 095/128] net: can: j1939: recover socket queue on CAN bus error during BAM transmission Greg Kroah-Hartman
2024-07-02 17:04 ` [PATCH 6.1 096/128] net: can: j1939: enhanced error handling for tightly received RTS messages in xtp_rx_rts_session_new Greg Kroah-Hartman
2024-07-02 17:04 ` [PATCH 6.1 097/128] cpufreq: intel_pstate: Use HWP to initialize ITMT if CPPC is missing Greg Kroah-Hartman
2024-07-02 17:04 ` [PATCH 6.1 098/128] cpu/hotplug: Fix dynstate assignment in __cpuhp_setup_state_cpuslocked() Greg Kroah-Hartman
2024-07-02 17:05 ` [PATCH 6.1 099/128] irqchip/loongson-liointc: Set different ISRs for different cores Greg Kroah-Hartman
2024-07-02 17:05 ` [PATCH 6.1 100/128] kbuild: Install dtb files as 0644 in Makefile.dtbinst Greg Kroah-Hartman
2024-07-02 17:05 ` [PATCH 6.1 101/128] sh: rework sync_file_range ABI Greg Kroah-Hartman
2024-07-02 17:05 ` [PATCH 6.1 102/128] btrfs: zoned: fix initial free space detection Greg Kroah-Hartman
2024-07-02 17:05 ` [PATCH 6.1 103/128] csky, hexagon: fix broken sys_sync_file_range Greg Kroah-Hartman
2024-07-02 17:05 ` [PATCH 6.1 104/128] hexagon: fix fadvise64_64 calling conventions Greg Kroah-Hartman
2024-07-02 17:05 ` [PATCH 6.1 105/128] drm/nouveau/dispnv04: fix null pointer dereference in nv17_tv_get_ld_modes Greg Kroah-Hartman
2024-07-02 17:05 ` [PATCH 6.1 106/128] drm/amdgpu: avoid using null object of framebuffer Greg Kroah-Hartman
2024-07-02 17:05 ` [PATCH 6.1 107/128] drm/i915/gt: Fix potential UAF by revoke of fence registers Greg Kroah-Hartman
2024-07-02 17:05 ` [PATCH 6.1 108/128] drm/nouveau/dispnv04: fix null pointer dereference in nv17_tv_get_hd_modes Greg Kroah-Hartman
2024-07-02 17:05 ` [PATCH 6.1 109/128] drm/amdgpu/atomfirmware: fix parsing of vram_info Greg Kroah-Hartman
2024-07-02 17:05 ` [PATCH 6.1 110/128] batman-adv: Dont accept TT entries for out-of-spec VIDs Greg Kroah-Hartman
2024-07-02 17:05 ` [PATCH 6.1 111/128] can: mcp251xfd: fix infinite loop when xmit fails Greg Kroah-Hartman
2024-07-02 17:05 ` [PATCH 6.1 112/128] ata: ahci: Clean up sysfs file on error Greg Kroah-Hartman
2024-07-02 17:05 ` [PATCH 6.1 113/128] ata: libata-core: Fix double free " Greg Kroah-Hartman
2024-07-02 17:05 ` [PATCH 6.1 114/128] ftruncate: pass a signed offset Greg Kroah-Hartman
2024-07-02 17:05 ` [PATCH 6.1 115/128] syscalls: fix compat_sys_io_pgetevents_time64 usage Greg Kroah-Hartman
2024-07-02 17:05 ` [PATCH 6.1 116/128] syscalls: fix sys_fanotify_mark prototype Greg Kroah-Hartman
2024-07-02 17:05 ` [PATCH 6.1 117/128] pwm: stm32: Refuse too small period requests Greg Kroah-Hartman
2024-07-02 17:05 ` [PATCH 6.1 118/128] Revert "cpufreq: amd-pstate: Fix the inconsistency in max frequency units" Greg Kroah-Hartman
2024-07-02 17:05 ` [PATCH 6.1 119/128] mm/page_alloc: Separate THP PCP into movable and non-movable categories Greg Kroah-Hartman
2024-07-02 17:05 ` [PATCH 6.1 120/128] gfs2: Fix slab-use-after-free in gfs2_qd_dealloc Greg Kroah-Hartman
2024-07-02 17:05 ` Greg Kroah-Hartman [this message]
2024-07-02 17:05 ` [PATCH 6.1 122/128] efi: xen: Set EFI_PARAVIRT for Xen dom0 boot on all architectures Greg Kroah-Hartman
2024-07-02 17:05 ` [PATCH 6.1 123/128] efi/x86: Free EFI memory map only when installing a new one Greg Kroah-Hartman
2024-07-02 17:05 ` [PATCH 6.1 124/128] arm64: dts: rockchip: Fix SD NAND and eMMC init on rk3308-rock-pi-s Greg Kroah-Hartman
2024-07-02 17:05 ` [PATCH 6.1 125/128] arm64: dts: rockchip: Rename LED related pinctrl nodes " Greg Kroah-Hartman
2024-07-02 17:05 ` [PATCH 6.1 126/128] ARM: dts: rockchip: rk3066a: add #sound-dai-cells to hdmi node Greg Kroah-Hartman
2024-07-02 17:05 ` [PATCH 6.1 127/128] arm64: dts: rockchip: fix PMIC interrupt pin on ROCK Pi E Greg Kroah-Hartman
2024-07-02 17:05 ` [PATCH 6.1 128/128] arm64: dts: rockchip: Add sound-dai-cells for RK3368 Greg Kroah-Hartman
2024-07-02 19:18 ` [PATCH 6.1 000/128] 6.1.97-rc1 review SeongJae Park
2024-07-02 22:00 ` Mark Brown
2024-07-02 23:44 ` Shuah Khan
2024-07-03  2:01 ` Peter Schneider
2024-07-03  8:13 ` Jon Hunter
2024-07-03 16:48 ` Pavel Machek
2024-07-03 17:29 ` Kelsey Steele
2024-07-03 18:22 ` Naresh Kamboju
2024-07-03 21:19 ` Ron Economos
2024-07-04 14:58 ` Florian Fainelli

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=20240702170230.797685624@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=ardb@kernel.org \
    --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