From: Mike Rapoport <rppt@kernel.org>
To: linux-kernel@vger.kernel.org
Cc: Andrew Morton <akpm@linux-foundation.org>,
Catalin Marinas <catalin.marinas@arm.com>,
Christophe Leroy <christophe.leroy@csgroup.eu>,
"David S. Miller" <davem@davemloft.net>,
Dinh Nguyen <dinguyen@kernel.org>,
Heiko Carstens <hca@linux.ibm.com>, Helge Deller <deller@gmx.de>,
Huacai Chen <chenhuacai@kernel.org>,
Kent Overstreet <kent.overstreet@linux.dev>,
Luis Chamberlain <mcgrof@kernel.org>,
Michael Ellerman <mpe@ellerman.id.au>,
Mike Rapoport <rppt@kernel.org>,
"Naveen N. Rao" <naveen.n.rao@linux.ibm.com>,
Palmer Dabbelt <palmer@dabbelt.com>,
Russell King <linux@armlinux.org.uk>, Song Liu <song@kernel.org>,
Steven Rostedt <rostedt@goodmis.org>,
Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
Thomas Gleixner <tglx@linutronix.de>,
Will Deacon <will@kernel.org>,
bpf@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
linux-mips@vger.kernel.org, linux-mm@kvack.org,
linux-modules@vger.kernel.org, linux-parisc@vger.kernel.org,
linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org,
linux-trace-kernel@vger.kernel.org,
linuxppc-dev@lists.ozlabs.org, loongarch@lists.linux.dev,
netdev@vger.kernel.org, sparclinux@vger.kernel.org,
x86@kernel.org
Subject: [PATCH 05/13] module, jitalloc: drop module_alloc
Date: Thu, 1 Jun 2023 13:12:49 +0300 [thread overview]
Message-ID: <20230601101257.530867-6-rppt@kernel.org> (raw)
In-Reply-To: <20230601101257.530867-1-rppt@kernel.org>
From: "Mike Rapoport (IBM)" <rppt@kernel.org>
Define default parameters for address range for code allocations
using the current values in module_alloc() and make jit_text_alloc() use
these defaults when an architecure does not supply its specific
parameters.
With this, jit_text_alloc() implements memory allocation in a way
compatible with module_alloc() and can be used as a replacement for
module_alloc().
Signed-off-by: Mike Rapoport (IBM) <rppt@kernel.org>
---
arch/arm64/kernel/module.c | 2 +-
arch/s390/kernel/module.c | 2 +-
arch/x86/kernel/module.c | 2 +-
include/linux/jitalloc.h | 8 ++++++++
include/linux/moduleloader.h | 12 ------------
kernel/module/main.c | 7 -------
mm/jitalloc.c | 31 +++++++++++++++++--------------
7 files changed, 28 insertions(+), 36 deletions(-)
diff --git a/arch/arm64/kernel/module.c b/arch/arm64/kernel/module.c
index ecf1f4030317..91ffcff5a44c 100644
--- a/arch/arm64/kernel/module.c
+++ b/arch/arm64/kernel/module.c
@@ -24,7 +24,7 @@
#include <asm/sections.h>
static struct jit_alloc_params jit_alloc_params = {
- .alignment = MODULE_ALIGN,
+ .alignment = JIT_ALLOC_ALIGN,
.flags = JIT_ALLOC_KASAN_SHADOW,
};
diff --git a/arch/s390/kernel/module.c b/arch/s390/kernel/module.c
index 0986a1a1b261..3f85cf1e7c4e 100644
--- a/arch/s390/kernel/module.c
+++ b/arch/s390/kernel/module.c
@@ -56,7 +56,7 @@ static unsigned long get_module_load_offset(void)
}
static struct jit_alloc_params jit_alloc_params = {
- .alignment = MODULE_ALIGN,
+ .alignment = JIT_ALLOC_ALIGN,
.flags = JIT_ALLOC_KASAN_SHADOW,
.text.pgprot = PAGE_KERNEL,
};
diff --git a/arch/x86/kernel/module.c b/arch/x86/kernel/module.c
index cce84b61a036..cacca613b8bd 100644
--- a/arch/x86/kernel/module.c
+++ b/arch/x86/kernel/module.c
@@ -67,7 +67,7 @@ static unsigned long int get_module_load_offset(void)
#endif
static struct jit_alloc_params jit_alloc_params = {
- .alignment = MODULE_ALIGN,
+ .alignment = JIT_ALLOC_ALIGN,
.flags = JIT_ALLOC_KASAN_SHADOW,
};
diff --git a/include/linux/jitalloc.h b/include/linux/jitalloc.h
index 34ee57795a18..823b13706a90 100644
--- a/include/linux/jitalloc.h
+++ b/include/linux/jitalloc.h
@@ -4,6 +4,14 @@
#include <linux/types.h>
+#if (defined(CONFIG_KASAN_GENERIC) || defined(CONFIG_KASAN_SW_TAGS)) && \
+ !defined(CONFIG_KASAN_VMALLOC)
+#include <linux/kasan.h>
+#define JIT_ALLOC_ALIGN (PAGE_SIZE << KASAN_SHADOW_SCALE_SHIFT)
+#else
+#define JIT_ALLOC_ALIGN PAGE_SIZE
+#endif
+
/**
* enum jit_alloc_flags - options for executable memory allocations
* @JIT_ALLOC_KASAN_SHADOW: allocate kasan shadow
diff --git a/include/linux/moduleloader.h b/include/linux/moduleloader.h
index b3374342f7af..4321682fe849 100644
--- a/include/linux/moduleloader.h
+++ b/include/linux/moduleloader.h
@@ -25,10 +25,6 @@ int module_frob_arch_sections(Elf_Ehdr *hdr,
/* Additional bytes needed by arch in front of individual sections */
unsigned int arch_mod_section_prepend(struct module *mod, unsigned int section);
-/* Allocator used for allocating struct module, core sections and init
- sections. Returns NULL on failure. */
-void *module_alloc(unsigned long size);
-
/* Determines if the section name is an init section (that is only used during
* module loading).
*/
@@ -113,12 +109,4 @@ void module_arch_cleanup(struct module *mod);
/* Any cleanup before freeing mod->module_init */
void module_arch_freeing_init(struct module *mod);
-#if (defined(CONFIG_KASAN_GENERIC) || defined(CONFIG_KASAN_SW_TAGS)) && \
- !defined(CONFIG_KASAN_VMALLOC)
-#include <linux/kasan.h>
-#define MODULE_ALIGN (PAGE_SIZE << KASAN_SHADOW_SCALE_SHIFT)
-#else
-#define MODULE_ALIGN PAGE_SIZE
-#endif
-
#endif
diff --git a/kernel/module/main.c b/kernel/module/main.c
index 51278c571bcb..dfb7fa109f1a 100644
--- a/kernel/module/main.c
+++ b/kernel/module/main.c
@@ -1600,13 +1600,6 @@ static void free_modinfo(struct module *mod)
}
}
-void * __weak module_alloc(unsigned long size)
-{
- return __vmalloc_node_range(size, 1, VMALLOC_START, VMALLOC_END,
- GFP_KERNEL, PAGE_KERNEL_EXEC, VM_FLUSH_RESET_PERMS,
- NUMA_NO_NODE, __builtin_return_address(0));
-}
-
bool __weak module_init_section(const char *name)
{
return strstarts(name, ".init");
diff --git a/mm/jitalloc.c b/mm/jitalloc.c
index 4e10af7803f7..221940e36b46 100644
--- a/mm/jitalloc.c
+++ b/mm/jitalloc.c
@@ -60,20 +60,16 @@ void jit_free(void *buf)
void *jit_text_alloc(size_t len)
{
- if (jit_alloc_params.text.start) {
- unsigned int align = jit_alloc_params.alignment;
- pgprot_t pgprot = jit_alloc_params.text.pgprot;
- unsigned long start = jit_alloc_params.text.start;
- unsigned long end = jit_alloc_params.text.end;
- unsigned long fallback_start = jit_alloc_params.text.fallback_start;
- unsigned long fallback_end = jit_alloc_params.text.fallback_end;
- bool kasan = jit_alloc_params.flags & JIT_ALLOC_KASAN_SHADOW;
-
- return jit_alloc(len, align, pgprot, start, end,
- fallback_start, fallback_end, kasan);
- }
-
- return module_alloc(len);
+ unsigned int align = jit_alloc_params.alignment;
+ pgprot_t pgprot = jit_alloc_params.text.pgprot;
+ unsigned long start = jit_alloc_params.text.start;
+ unsigned long end = jit_alloc_params.text.end;
+ unsigned long fallback_start = jit_alloc_params.text.fallback_start;
+ unsigned long fallback_end = jit_alloc_params.text.fallback_end;
+ bool kasan = jit_alloc_params.flags & JIT_ALLOC_KASAN_SHADOW;
+
+ return jit_alloc(len, align, pgprot, start, end,
+ fallback_start, fallback_end, kasan);
}
struct jit_alloc_params * __weak jit_alloc_arch_params(void)
@@ -101,5 +97,12 @@ void jit_alloc_init(void)
return;
jit_alloc_params = *p;
+ return;
}
+
+ /* defaults for architecures that don't need special handling */
+ jit_alloc_params.alignment = 1;
+ jit_alloc_params.text.pgprot = PAGE_KERNEL_EXEC;
+ jit_alloc_params.text.start = VMALLOC_START;
+ jit_alloc_params.text.end = VMALLOC_END;
}
--
2.35.1
WARNING: multiple messages have this Message-ID (diff)
From: Mike Rapoport <rppt@kernel.org>
To: linux-kernel@vger.kernel.org
Cc: Andrew Morton <akpm@linux-foundation.org>,
Catalin Marinas <catalin.marinas@arm.com>,
Christophe Leroy <christophe.leroy@csgroup.eu>,
"David S. Miller" <davem@davemloft.net>,
Dinh Nguyen <dinguyen@kernel.org>,
Heiko Carstens <hca@linux.ibm.com>, Helge Deller <deller@gmx.de>,
Huacai Chen <chenhuacai@kernel.org>,
Kent Overstreet <kent.overstreet@linux.dev>,
Luis Chamberlain <mcgrof@kernel.org>,
Michael Ellerman <mpe@ellerman.id.au>,
Mike Rapoport <rppt@kernel.org>,
"Naveen N. Rao" <naveen.n.rao@linux.ibm.com>,
Palmer Dabbelt <palmer@dabbelt.com>,
Russell King <linux@armlinux.org.uk>, Song Liu <song@kernel.org>,
Steven Rostedt <rostedt@goodmis.org>,
Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
Thomas Gleixner <tglx@linutronix.de>,
Will Deacon <will@kernel.org>,
bpf@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
linux-mips@vger.kernel.org, linux-mm@kvack.org,
linux-modules@vger.kernel.org, linux-parisc@vger.kernel.org,
linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org,
linux-trace-kernel@vger.kernel.org,
linuxppc-dev@lists.ozlabs.org, loongarch@lists.linux.dev,
netdev@vger.kernel.org, sparclinux@vger.kernel.org,
x86@kernel.org
Subject: [PATCH 05/13] module, jitalloc: drop module_alloc
Date: Thu, 1 Jun 2023 13:12:49 +0300 [thread overview]
Message-ID: <20230601101257.530867-6-rppt@kernel.org> (raw)
In-Reply-To: <20230601101257.530867-1-rppt@kernel.org>
From: "Mike Rapoport (IBM)" <rppt@kernel.org>
Define default parameters for address range for code allocations
using the current values in module_alloc() and make jit_text_alloc() use
these defaults when an architecure does not supply its specific
parameters.
With this, jit_text_alloc() implements memory allocation in a way
compatible with module_alloc() and can be used as a replacement for
module_alloc().
Signed-off-by: Mike Rapoport (IBM) <rppt@kernel.org>
---
arch/arm64/kernel/module.c | 2 +-
arch/s390/kernel/module.c | 2 +-
arch/x86/kernel/module.c | 2 +-
include/linux/jitalloc.h | 8 ++++++++
include/linux/moduleloader.h | 12 ------------
kernel/module/main.c | 7 -------
mm/jitalloc.c | 31 +++++++++++++++++--------------
7 files changed, 28 insertions(+), 36 deletions(-)
diff --git a/arch/arm64/kernel/module.c b/arch/arm64/kernel/module.c
index ecf1f4030317..91ffcff5a44c 100644
--- a/arch/arm64/kernel/module.c
+++ b/arch/arm64/kernel/module.c
@@ -24,7 +24,7 @@
#include <asm/sections.h>
static struct jit_alloc_params jit_alloc_params = {
- .alignment = MODULE_ALIGN,
+ .alignment = JIT_ALLOC_ALIGN,
.flags = JIT_ALLOC_KASAN_SHADOW,
};
diff --git a/arch/s390/kernel/module.c b/arch/s390/kernel/module.c
index 0986a1a1b261..3f85cf1e7c4e 100644
--- a/arch/s390/kernel/module.c
+++ b/arch/s390/kernel/module.c
@@ -56,7 +56,7 @@ static unsigned long get_module_load_offset(void)
}
static struct jit_alloc_params jit_alloc_params = {
- .alignment = MODULE_ALIGN,
+ .alignment = JIT_ALLOC_ALIGN,
.flags = JIT_ALLOC_KASAN_SHADOW,
.text.pgprot = PAGE_KERNEL,
};
diff --git a/arch/x86/kernel/module.c b/arch/x86/kernel/module.c
index cce84b61a036..cacca613b8bd 100644
--- a/arch/x86/kernel/module.c
+++ b/arch/x86/kernel/module.c
@@ -67,7 +67,7 @@ static unsigned long int get_module_load_offset(void)
#endif
static struct jit_alloc_params jit_alloc_params = {
- .alignment = MODULE_ALIGN,
+ .alignment = JIT_ALLOC_ALIGN,
.flags = JIT_ALLOC_KASAN_SHADOW,
};
diff --git a/include/linux/jitalloc.h b/include/linux/jitalloc.h
index 34ee57795a18..823b13706a90 100644
--- a/include/linux/jitalloc.h
+++ b/include/linux/jitalloc.h
@@ -4,6 +4,14 @@
#include <linux/types.h>
+#if (defined(CONFIG_KASAN_GENERIC) || defined(CONFIG_KASAN_SW_TAGS)) && \
+ !defined(CONFIG_KASAN_VMALLOC)
+#include <linux/kasan.h>
+#define JIT_ALLOC_ALIGN (PAGE_SIZE << KASAN_SHADOW_SCALE_SHIFT)
+#else
+#define JIT_ALLOC_ALIGN PAGE_SIZE
+#endif
+
/**
* enum jit_alloc_flags - options for executable memory allocations
* @JIT_ALLOC_KASAN_SHADOW: allocate kasan shadow
diff --git a/include/linux/moduleloader.h b/include/linux/moduleloader.h
index b3374342f7af..4321682fe849 100644
--- a/include/linux/moduleloader.h
+++ b/include/linux/moduleloader.h
@@ -25,10 +25,6 @@ int module_frob_arch_sections(Elf_Ehdr *hdr,
/* Additional bytes needed by arch in front of individual sections */
unsigned int arch_mod_section_prepend(struct module *mod, unsigned int section);
-/* Allocator used for allocating struct module, core sections and init
- sections. Returns NULL on failure. */
-void *module_alloc(unsigned long size);
-
/* Determines if the section name is an init section (that is only used during
* module loading).
*/
@@ -113,12 +109,4 @@ void module_arch_cleanup(struct module *mod);
/* Any cleanup before freeing mod->module_init */
void module_arch_freeing_init(struct module *mod);
-#if (defined(CONFIG_KASAN_GENERIC) || defined(CONFIG_KASAN_SW_TAGS)) && \
- !defined(CONFIG_KASAN_VMALLOC)
-#include <linux/kasan.h>
-#define MODULE_ALIGN (PAGE_SIZE << KASAN_SHADOW_SCALE_SHIFT)
-#else
-#define MODULE_ALIGN PAGE_SIZE
-#endif
-
#endif
diff --git a/kernel/module/main.c b/kernel/module/main.c
index 51278c571bcb..dfb7fa109f1a 100644
--- a/kernel/module/main.c
+++ b/kernel/module/main.c
@@ -1600,13 +1600,6 @@ static void free_modinfo(struct module *mod)
}
}
-void * __weak module_alloc(unsigned long size)
-{
- return __vmalloc_node_range(size, 1, VMALLOC_START, VMALLOC_END,
- GFP_KERNEL, PAGE_KERNEL_EXEC, VM_FLUSH_RESET_PERMS,
- NUMA_NO_NODE, __builtin_return_address(0));
-}
-
bool __weak module_init_section(const char *name)
{
return strstarts(name, ".init");
diff --git a/mm/jitalloc.c b/mm/jitalloc.c
index 4e10af7803f7..221940e36b46 100644
--- a/mm/jitalloc.c
+++ b/mm/jitalloc.c
@@ -60,20 +60,16 @@ void jit_free(void *buf)
void *jit_text_alloc(size_t len)
{
- if (jit_alloc_params.text.start) {
- unsigned int align = jit_alloc_params.alignment;
- pgprot_t pgprot = jit_alloc_params.text.pgprot;
- unsigned long start = jit_alloc_params.text.start;
- unsigned long end = jit_alloc_params.text.end;
- unsigned long fallback_start = jit_alloc_params.text.fallback_start;
- unsigned long fallback_end = jit_alloc_params.text.fallback_end;
- bool kasan = jit_alloc_params.flags & JIT_ALLOC_KASAN_SHADOW;
-
- return jit_alloc(len, align, pgprot, start, end,
- fallback_start, fallback_end, kasan);
- }
-
- return module_alloc(len);
+ unsigned int align = jit_alloc_params.alignment;
+ pgprot_t pgprot = jit_alloc_params.text.pgprot;
+ unsigned long start = jit_alloc_params.text.start;
+ unsigned long end = jit_alloc_params.text.end;
+ unsigned long fallback_start = jit_alloc_params.text.fallback_start;
+ unsigned long fallback_end = jit_alloc_params.text.fallback_end;
+ bool kasan = jit_alloc_params.flags & JIT_ALLOC_KASAN_SHADOW;
+
+ return jit_alloc(len, align, pgprot, start, end,
+ fallback_start, fallback_end, kasan);
}
struct jit_alloc_params * __weak jit_alloc_arch_params(void)
@@ -101,5 +97,12 @@ void jit_alloc_init(void)
return;
jit_alloc_params = *p;
+ return;
}
+
+ /* defaults for architecures that don't need special handling */
+ jit_alloc_params.alignment = 1;
+ jit_alloc_params.text.pgprot = PAGE_KERNEL_EXEC;
+ jit_alloc_params.text.start = VMALLOC_START;
+ jit_alloc_params.text.end = VMALLOC_END;
}
--
2.35.1
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
WARNING: multiple messages have this Message-ID (diff)
From: Mike Rapoport <rppt@kernel.org>
To: linux-kernel@vger.kernel.org
Cc: x86@kernel.org, Catalin Marinas <catalin.marinas@arm.com>,
Song Liu <song@kernel.org>,
sparclinux@vger.kernel.org, linux-riscv@lists.infradead.org,
Will Deacon <will@kernel.org>,
linux-s390@vger.kernel.org, Helge Deller <deller@gmx.de>,
Huacai Chen <chenhuacai@kernel.org>,
Russell King <linux@armlinux.org.uk>,
"Naveen N. Rao" <naveen.n.rao@linux.ibm.com>,
linux-trace-kernel@vger.kernel.org,
Heiko Carstens <hca@linux.ibm.com>,
Steven Rostedt <rostedt@goodmis.org>,
loongarch@lists.linux.dev, Thomas Gleixner <tglx@linutronix.de>,
Andrew Morton <akpm@linux-foundation.org>,
linux-arm-kernel@lists.infradead.org,
Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
linux-parisc@vger.kernel.org, linux-mm@kvack.org,
netdev@vger.kernel.org,
Kent Overstreet <kent.overstreet@linux.dev>,
linux-mips@vger.kernel.org, Dinh Nguyen <dinguyen@kernel.org>,
Luis Chamberlain <mcgrof@kernel.org>,
Palmer Dabbelt <palmer@dabbelt.com>,
linux-modules@vger.kernel.org, bpf@vger.kernel.org,
linuxppc-dev@lists.ozl abs.org,
"David S. Miller" <davem@davemloft.net>,
Mike Rapoport <rppt@kernel.org>
Subject: [PATCH 05/13] module, jitalloc: drop module_alloc
Date: Thu, 1 Jun 2023 13:12:49 +0300 [thread overview]
Message-ID: <20230601101257.530867-6-rppt@kernel.org> (raw)
In-Reply-To: <20230601101257.530867-1-rppt@kernel.org>
From: "Mike Rapoport (IBM)" <rppt@kernel.org>
Define default parameters for address range for code allocations
using the current values in module_alloc() and make jit_text_alloc() use
these defaults when an architecure does not supply its specific
parameters.
With this, jit_text_alloc() implements memory allocation in a way
compatible with module_alloc() and can be used as a replacement for
module_alloc().
Signed-off-by: Mike Rapoport (IBM) <rppt@kernel.org>
---
arch/arm64/kernel/module.c | 2 +-
arch/s390/kernel/module.c | 2 +-
arch/x86/kernel/module.c | 2 +-
include/linux/jitalloc.h | 8 ++++++++
include/linux/moduleloader.h | 12 ------------
kernel/module/main.c | 7 -------
mm/jitalloc.c | 31 +++++++++++++++++--------------
7 files changed, 28 insertions(+), 36 deletions(-)
diff --git a/arch/arm64/kernel/module.c b/arch/arm64/kernel/module.c
index ecf1f4030317..91ffcff5a44c 100644
--- a/arch/arm64/kernel/module.c
+++ b/arch/arm64/kernel/module.c
@@ -24,7 +24,7 @@
#include <asm/sections.h>
static struct jit_alloc_params jit_alloc_params = {
- .alignment = MODULE_ALIGN,
+ .alignment = JIT_ALLOC_ALIGN,
.flags = JIT_ALLOC_KASAN_SHADOW,
};
diff --git a/arch/s390/kernel/module.c b/arch/s390/kernel/module.c
index 0986a1a1b261..3f85cf1e7c4e 100644
--- a/arch/s390/kernel/module.c
+++ b/arch/s390/kernel/module.c
@@ -56,7 +56,7 @@ static unsigned long get_module_load_offset(void)
}
static struct jit_alloc_params jit_alloc_params = {
- .alignment = MODULE_ALIGN,
+ .alignment = JIT_ALLOC_ALIGN,
.flags = JIT_ALLOC_KASAN_SHADOW,
.text.pgprot = PAGE_KERNEL,
};
diff --git a/arch/x86/kernel/module.c b/arch/x86/kernel/module.c
index cce84b61a036..cacca613b8bd 100644
--- a/arch/x86/kernel/module.c
+++ b/arch/x86/kernel/module.c
@@ -67,7 +67,7 @@ static unsigned long int get_module_load_offset(void)
#endif
static struct jit_alloc_params jit_alloc_params = {
- .alignment = MODULE_ALIGN,
+ .alignment = JIT_ALLOC_ALIGN,
.flags = JIT_ALLOC_KASAN_SHADOW,
};
diff --git a/include/linux/jitalloc.h b/include/linux/jitalloc.h
index 34ee57795a18..823b13706a90 100644
--- a/include/linux/jitalloc.h
+++ b/include/linux/jitalloc.h
@@ -4,6 +4,14 @@
#include <linux/types.h>
+#if (defined(CONFIG_KASAN_GENERIC) || defined(CONFIG_KASAN_SW_TAGS)) && \
+ !defined(CONFIG_KASAN_VMALLOC)
+#include <linux/kasan.h>
+#define JIT_ALLOC_ALIGN (PAGE_SIZE << KASAN_SHADOW_SCALE_SHIFT)
+#else
+#define JIT_ALLOC_ALIGN PAGE_SIZE
+#endif
+
/**
* enum jit_alloc_flags - options for executable memory allocations
* @JIT_ALLOC_KASAN_SHADOW: allocate kasan shadow
diff --git a/include/linux/moduleloader.h b/include/linux/moduleloader.h
index b3374342f7af..4321682fe849 100644
--- a/include/linux/moduleloader.h
+++ b/include/linux/moduleloader.h
@@ -25,10 +25,6 @@ int module_frob_arch_sections(Elf_Ehdr *hdr,
/* Additional bytes needed by arch in front of individual sections */
unsigned int arch_mod_section_prepend(struct module *mod, unsigned int section);
-/* Allocator used for allocating struct module, core sections and init
- sections. Returns NULL on failure. */
-void *module_alloc(unsigned long size);
-
/* Determines if the section name is an init section (that is only used during
* module loading).
*/
@@ -113,12 +109,4 @@ void module_arch_cleanup(struct module *mod);
/* Any cleanup before freeing mod->module_init */
void module_arch_freeing_init(struct module *mod);
-#if (defined(CONFIG_KASAN_GENERIC) || defined(CONFIG_KASAN_SW_TAGS)) && \
- !defined(CONFIG_KASAN_VMALLOC)
-#include <linux/kasan.h>
-#define MODULE_ALIGN (PAGE_SIZE << KASAN_SHADOW_SCALE_SHIFT)
-#else
-#define MODULE_ALIGN PAGE_SIZE
-#endif
-
#endif
diff --git a/kernel/module/main.c b/kernel/module/main.c
index 51278c571bcb..dfb7fa109f1a 100644
--- a/kernel/module/main.c
+++ b/kernel/module/main.c
@@ -1600,13 +1600,6 @@ static void free_modinfo(struct module *mod)
}
}
-void * __weak module_alloc(unsigned long size)
-{
- return __vmalloc_node_range(size, 1, VMALLOC_START, VMALLOC_END,
- GFP_KERNEL, PAGE_KERNEL_EXEC, VM_FLUSH_RESET_PERMS,
- NUMA_NO_NODE, __builtin_return_address(0));
-}
-
bool __weak module_init_section(const char *name)
{
return strstarts(name, ".init");
diff --git a/mm/jitalloc.c b/mm/jitalloc.c
index 4e10af7803f7..221940e36b46 100644
--- a/mm/jitalloc.c
+++ b/mm/jitalloc.c
@@ -60,20 +60,16 @@ void jit_free(void *buf)
void *jit_text_alloc(size_t len)
{
- if (jit_alloc_params.text.start) {
- unsigned int align = jit_alloc_params.alignment;
- pgprot_t pgprot = jit_alloc_params.text.pgprot;
- unsigned long start = jit_alloc_params.text.start;
- unsigned long end = jit_alloc_params.text.end;
- unsigned long fallback_start = jit_alloc_params.text.fallback_start;
- unsigned long fallback_end = jit_alloc_params.text.fallback_end;
- bool kasan = jit_alloc_params.flags & JIT_ALLOC_KASAN_SHADOW;
-
- return jit_alloc(len, align, pgprot, start, end,
- fallback_start, fallback_end, kasan);
- }
-
- return module_alloc(len);
+ unsigned int align = jit_alloc_params.alignment;
+ pgprot_t pgprot = jit_alloc_params.text.pgprot;
+ unsigned long start = jit_alloc_params.text.start;
+ unsigned long end = jit_alloc_params.text.end;
+ unsigned long fallback_start = jit_alloc_params.text.fallback_start;
+ unsigned long fallback_end = jit_alloc_params.text.fallback_end;
+ bool kasan = jit_alloc_params.flags & JIT_ALLOC_KASAN_SHADOW;
+
+ return jit_alloc(len, align, pgprot, start, end,
+ fallback_start, fallback_end, kasan);
}
struct jit_alloc_params * __weak jit_alloc_arch_params(void)
@@ -101,5 +97,12 @@ void jit_alloc_init(void)
return;
jit_alloc_params = *p;
+ return;
}
+
+ /* defaults for architecures that don't need special handling */
+ jit_alloc_params.alignment = 1;
+ jit_alloc_params.text.pgprot = PAGE_KERNEL_EXEC;
+ jit_alloc_params.text.start = VMALLOC_START;
+ jit_alloc_params.text.end = VMALLOC_END;
}
--
2.35.1
WARNING: multiple messages have this Message-ID (diff)
From: Mike Rapoport <rppt@kernel.org>
To: linux-kernel@vger.kernel.org
Cc: Andrew Morton <akpm@linux-foundation.org>,
Catalin Marinas <catalin.marinas@arm.com>,
Christophe Leroy <christophe.leroy@csgroup.eu>,
"David S. Miller" <davem@davemloft.net>,
Dinh Nguyen <dinguyen@kernel.org>,
Heiko Carstens <hca@linux.ibm.com>, Helge Deller <deller@gmx.de>,
Huacai Chen <chenhuacai@kernel.org>,
Kent Overstreet <kent.overstreet@linux.dev>,
Luis Chamberlain <mcgrof@kernel.org>,
Michael Ellerman <mpe@ellerman.id.au>,
Mike Rapoport <rppt@kernel.org>,
"Naveen N. Rao" <naveen.n.rao@linux.ibm.com>,
Palmer Dabbelt <palmer@dabbelt.com>,
Russell King <linux@armlinux.org.uk>, Song Liu <song@kernel.org>,
Steven Rostedt <rostedt@goodmis.org>,
Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
Thomas Gleixner <tglx@linutronix.de>,
Will Deacon <will@kernel.org>,
bpf@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
linux-mips@vger.kernel.org, linux-mm@kvack.org,
linux-modules@vger.kernel.org, linux-parisc@vger.kernel.org,
linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org,
linux-trace-kernel@vger.kernel.org,
linuxppc-dev@lists.ozlabs.org, loongarch@lists.linux.dev,
netdev@vger.kernel.org, sparclinux@vger.kernel.org,
x86@kernel.org
Subject: [PATCH 05/13] module, jitalloc: drop module_alloc
Date: Thu, 1 Jun 2023 13:12:49 +0300 [thread overview]
Message-ID: <20230601101257.530867-6-rppt@kernel.org> (raw)
In-Reply-To: <20230601101257.530867-1-rppt@kernel.org>
From: "Mike Rapoport (IBM)" <rppt@kernel.org>
Define default parameters for address range for code allocations
using the current values in module_alloc() and make jit_text_alloc() use
these defaults when an architecure does not supply its specific
parameters.
With this, jit_text_alloc() implements memory allocation in a way
compatible with module_alloc() and can be used as a replacement for
module_alloc().
Signed-off-by: Mike Rapoport (IBM) <rppt@kernel.org>
---
arch/arm64/kernel/module.c | 2 +-
arch/s390/kernel/module.c | 2 +-
arch/x86/kernel/module.c | 2 +-
include/linux/jitalloc.h | 8 ++++++++
include/linux/moduleloader.h | 12 ------------
kernel/module/main.c | 7 -------
mm/jitalloc.c | 31 +++++++++++++++++--------------
7 files changed, 28 insertions(+), 36 deletions(-)
diff --git a/arch/arm64/kernel/module.c b/arch/arm64/kernel/module.c
index ecf1f4030317..91ffcff5a44c 100644
--- a/arch/arm64/kernel/module.c
+++ b/arch/arm64/kernel/module.c
@@ -24,7 +24,7 @@
#include <asm/sections.h>
static struct jit_alloc_params jit_alloc_params = {
- .alignment = MODULE_ALIGN,
+ .alignment = JIT_ALLOC_ALIGN,
.flags = JIT_ALLOC_KASAN_SHADOW,
};
diff --git a/arch/s390/kernel/module.c b/arch/s390/kernel/module.c
index 0986a1a1b261..3f85cf1e7c4e 100644
--- a/arch/s390/kernel/module.c
+++ b/arch/s390/kernel/module.c
@@ -56,7 +56,7 @@ static unsigned long get_module_load_offset(void)
}
static struct jit_alloc_params jit_alloc_params = {
- .alignment = MODULE_ALIGN,
+ .alignment = JIT_ALLOC_ALIGN,
.flags = JIT_ALLOC_KASAN_SHADOW,
.text.pgprot = PAGE_KERNEL,
};
diff --git a/arch/x86/kernel/module.c b/arch/x86/kernel/module.c
index cce84b61a036..cacca613b8bd 100644
--- a/arch/x86/kernel/module.c
+++ b/arch/x86/kernel/module.c
@@ -67,7 +67,7 @@ static unsigned long int get_module_load_offset(void)
#endif
static struct jit_alloc_params jit_alloc_params = {
- .alignment = MODULE_ALIGN,
+ .alignment = JIT_ALLOC_ALIGN,
.flags = JIT_ALLOC_KASAN_SHADOW,
};
diff --git a/include/linux/jitalloc.h b/include/linux/jitalloc.h
index 34ee57795a18..823b13706a90 100644
--- a/include/linux/jitalloc.h
+++ b/include/linux/jitalloc.h
@@ -4,6 +4,14 @@
#include <linux/types.h>
+#if (defined(CONFIG_KASAN_GENERIC) || defined(CONFIG_KASAN_SW_TAGS)) && \
+ !defined(CONFIG_KASAN_VMALLOC)
+#include <linux/kasan.h>
+#define JIT_ALLOC_ALIGN (PAGE_SIZE << KASAN_SHADOW_SCALE_SHIFT)
+#else
+#define JIT_ALLOC_ALIGN PAGE_SIZE
+#endif
+
/**
* enum jit_alloc_flags - options for executable memory allocations
* @JIT_ALLOC_KASAN_SHADOW: allocate kasan shadow
diff --git a/include/linux/moduleloader.h b/include/linux/moduleloader.h
index b3374342f7af..4321682fe849 100644
--- a/include/linux/moduleloader.h
+++ b/include/linux/moduleloader.h
@@ -25,10 +25,6 @@ int module_frob_arch_sections(Elf_Ehdr *hdr,
/* Additional bytes needed by arch in front of individual sections */
unsigned int arch_mod_section_prepend(struct module *mod, unsigned int section);
-/* Allocator used for allocating struct module, core sections and init
- sections. Returns NULL on failure. */
-void *module_alloc(unsigned long size);
-
/* Determines if the section name is an init section (that is only used during
* module loading).
*/
@@ -113,12 +109,4 @@ void module_arch_cleanup(struct module *mod);
/* Any cleanup before freeing mod->module_init */
void module_arch_freeing_init(struct module *mod);
-#if (defined(CONFIG_KASAN_GENERIC) || defined(CONFIG_KASAN_SW_TAGS)) && \
- !defined(CONFIG_KASAN_VMALLOC)
-#include <linux/kasan.h>
-#define MODULE_ALIGN (PAGE_SIZE << KASAN_SHADOW_SCALE_SHIFT)
-#else
-#define MODULE_ALIGN PAGE_SIZE
-#endif
-
#endif
diff --git a/kernel/module/main.c b/kernel/module/main.c
index 51278c571bcb..dfb7fa109f1a 100644
--- a/kernel/module/main.c
+++ b/kernel/module/main.c
@@ -1600,13 +1600,6 @@ static void free_modinfo(struct module *mod)
}
}
-void * __weak module_alloc(unsigned long size)
-{
- return __vmalloc_node_range(size, 1, VMALLOC_START, VMALLOC_END,
- GFP_KERNEL, PAGE_KERNEL_EXEC, VM_FLUSH_RESET_PERMS,
- NUMA_NO_NODE, __builtin_return_address(0));
-}
-
bool __weak module_init_section(const char *name)
{
return strstarts(name, ".init");
diff --git a/mm/jitalloc.c b/mm/jitalloc.c
index 4e10af7803f7..221940e36b46 100644
--- a/mm/jitalloc.c
+++ b/mm/jitalloc.c
@@ -60,20 +60,16 @@ void jit_free(void *buf)
void *jit_text_alloc(size_t len)
{
- if (jit_alloc_params.text.start) {
- unsigned int align = jit_alloc_params.alignment;
- pgprot_t pgprot = jit_alloc_params.text.pgprot;
- unsigned long start = jit_alloc_params.text.start;
- unsigned long end = jit_alloc_params.text.end;
- unsigned long fallback_start = jit_alloc_params.text.fallback_start;
- unsigned long fallback_end = jit_alloc_params.text.fallback_end;
- bool kasan = jit_alloc_params.flags & JIT_ALLOC_KASAN_SHADOW;
-
- return jit_alloc(len, align, pgprot, start, end,
- fallback_start, fallback_end, kasan);
- }
-
- return module_alloc(len);
+ unsigned int align = jit_alloc_params.alignment;
+ pgprot_t pgprot = jit_alloc_params.text.pgprot;
+ unsigned long start = jit_alloc_params.text.start;
+ unsigned long end = jit_alloc_params.text.end;
+ unsigned long fallback_start = jit_alloc_params.text.fallback_start;
+ unsigned long fallback_end = jit_alloc_params.text.fallback_end;
+ bool kasan = jit_alloc_params.flags & JIT_ALLOC_KASAN_SHADOW;
+
+ return jit_alloc(len, align, pgprot, start, end,
+ fallback_start, fallback_end, kasan);
}
struct jit_alloc_params * __weak jit_alloc_arch_params(void)
@@ -101,5 +97,12 @@ void jit_alloc_init(void)
return;
jit_alloc_params = *p;
+ return;
}
+
+ /* defaults for architecures that don't need special handling */
+ jit_alloc_params.alignment = 1;
+ jit_alloc_params.text.pgprot = PAGE_KERNEL_EXEC;
+ jit_alloc_params.text.start = VMALLOC_START;
+ jit_alloc_params.text.end = VMALLOC_END;
}
--
2.35.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2023-06-01 10:14 UTC|newest]
Thread overview: 220+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-06-01 10:12 [PATCH 00/13] mm: jit/text allocator Mike Rapoport
2023-06-01 10:12 ` Mike Rapoport
2023-06-01 10:12 ` Mike Rapoport
2023-06-01 10:12 ` Mike Rapoport
2023-06-01 10:12 ` [PATCH 01/13] nios2: define virtual address space for modules Mike Rapoport
2023-06-01 10:12 ` Mike Rapoport
2023-06-01 10:12 ` Mike Rapoport
2023-06-01 10:12 ` Mike Rapoport
2023-06-13 22:16 ` Dinh Nguyen
2023-06-13 22:16 ` Dinh Nguyen
2023-06-13 22:16 ` Dinh Nguyen
2023-06-13 22:16 ` Dinh Nguyen
2023-06-01 10:12 ` [PATCH 02/13] mm: introduce jit_text_alloc() and use it instead of module_alloc() Mike Rapoport
2023-06-01 10:12 ` Mike Rapoport
2023-06-01 10:12 ` Mike Rapoport
2023-06-01 10:12 ` Mike Rapoport
2023-06-01 10:12 ` [PATCH 03/13] mm/jitalloc, arch: convert simple overrides of module_alloc to jitalloc Mike Rapoport
2023-06-01 10:12 ` Mike Rapoport
2023-06-01 10:12 ` Mike Rapoport
2023-06-01 10:12 ` Mike Rapoport
2023-06-01 10:12 ` [PATCH 04/13] mm/jitalloc, arch: convert remaining " Mike Rapoport
2023-06-01 10:12 ` Mike Rapoport
2023-06-01 10:12 ` Mike Rapoport
2023-06-01 10:12 ` Mike Rapoport
2023-06-01 22:35 ` Song Liu
2023-06-01 22:35 ` Song Liu
2023-06-01 22:35 ` Song Liu
2023-06-01 22:35 ` Song Liu
2023-06-01 10:12 ` Mike Rapoport [this message]
2023-06-01 10:12 ` [PATCH 05/13] module, jitalloc: drop module_alloc Mike Rapoport
2023-06-01 10:12 ` Mike Rapoport
2023-06-01 10:12 ` Mike Rapoport
2023-06-01 10:12 ` [PATCH 06/13] mm/jitalloc: introduce jit_data_alloc() Mike Rapoport
2023-06-01 10:12 ` Mike Rapoport
2023-06-01 10:12 ` Mike Rapoport
2023-06-01 10:12 ` Mike Rapoport
2023-06-01 10:12 ` [PATCH 07/13] x86/ftrace: enable dynamic ftrace without CONFIG_MODULES Mike Rapoport
2023-06-01 10:12 ` Mike Rapoport
2023-06-01 10:12 ` Mike Rapoport
2023-06-01 10:12 ` Mike Rapoport
2023-06-01 10:12 ` [PATCH 08/13] arch: make jitalloc setup available regardless of CONFIG_MODULES Mike Rapoport
2023-06-01 10:12 ` Mike Rapoport
2023-06-01 10:12 ` Mike Rapoport
2023-06-01 10:12 ` Mike Rapoport
2023-06-01 10:12 ` [PATCH 09/13] kprobes: remove dependcy on CONFIG_MODULES Mike Rapoport
2023-06-01 10:12 ` Mike Rapoport
2023-06-01 10:12 ` Mike Rapoport
2023-06-01 10:12 ` Mike Rapoport
2023-06-01 10:12 ` [PATCH 10/13] modules, jitalloc: prepare to allocate executable memory as ROX Mike Rapoport
2023-06-01 10:12 ` Mike Rapoport
2023-06-01 10:12 ` Mike Rapoport
2023-06-01 10:12 ` Mike Rapoport
2023-06-01 10:12 ` [PATCH 11/13] ftrace: Add swap_func to ftrace_process_locs() Mike Rapoport
2023-06-01 10:12 ` Mike Rapoport
2023-06-01 10:12 ` Mike Rapoport
2023-06-01 10:12 ` Mike Rapoport
2023-06-01 10:12 ` [PATCH 12/13] x86/jitalloc: prepare to allocate exectuatble memory as ROX Mike Rapoport
2023-06-01 10:12 ` Mike Rapoport
2023-06-01 10:12 ` Mike Rapoport
2023-06-01 10:12 ` Mike Rapoport
2023-06-01 10:30 ` Peter Zijlstra
2023-06-01 10:30 ` Peter Zijlstra
2023-06-01 10:30 ` Peter Zijlstra
2023-06-01 10:30 ` Peter Zijlstra
2023-06-01 11:07 ` Mike Rapoport
2023-06-01 11:07 ` Mike Rapoport
2023-06-01 11:07 ` Mike Rapoport
2023-06-01 11:07 ` Mike Rapoport
2023-06-02 0:02 ` Song Liu
2023-06-02 0:02 ` Song Liu
2023-06-02 0:02 ` Song Liu
2023-06-02 0:02 ` Song Liu
2023-06-01 17:52 ` Kent Overstreet
2023-06-01 17:52 ` Kent Overstreet
2023-06-01 17:52 ` Kent Overstreet
2023-06-01 17:52 ` Kent Overstreet
2023-06-01 16:54 ` Edgecombe, Rick P
2023-06-01 16:54 ` Edgecombe, Rick P
2023-06-01 16:54 ` Edgecombe, Rick P
2023-06-01 16:54 ` Edgecombe, Rick P
2023-06-01 18:00 ` Kent Overstreet
2023-06-01 18:00 ` Kent Overstreet
2023-06-01 18:00 ` Kent Overstreet
2023-06-01 18:00 ` Kent Overstreet
2023-06-01 18:13 ` Edgecombe, Rick P
2023-06-01 18:13 ` Edgecombe, Rick P
2023-06-01 18:13 ` Edgecombe, Rick P
2023-06-01 18:13 ` Edgecombe, Rick P
2023-06-01 18:38 ` Kent Overstreet
2023-06-01 18:38 ` Kent Overstreet
2023-06-01 18:38 ` Kent Overstreet
2023-06-01 18:38 ` Kent Overstreet
2023-06-01 20:50 ` Edgecombe, Rick P
2023-06-01 20:50 ` Edgecombe, Rick P
2023-06-01 20:50 ` Edgecombe, Rick P
2023-06-01 20:50 ` Edgecombe, Rick P
2023-06-01 23:54 ` Nadav Amit
2023-06-01 23:54 ` Nadav Amit
2023-06-01 23:54 ` Nadav Amit
2023-06-01 23:54 ` Nadav Amit
2023-06-05 2:52 ` Steven Rostedt
2023-06-05 2:52 ` Steven Rostedt
2023-06-05 2:52 ` Steven Rostedt
2023-06-05 2:52 ` Steven Rostedt
2023-06-05 8:11 ` Mike Rapoport
2023-06-05 8:11 ` Mike Rapoport
2023-06-05 8:11 ` Mike Rapoport
2023-06-05 8:11 ` Mike Rapoport
2023-06-05 16:10 ` Edgecombe, Rick P
2023-06-05 16:10 ` Edgecombe, Rick P
2023-06-05 16:10 ` Edgecombe, Rick P
2023-06-05 16:10 ` Edgecombe, Rick P
2023-06-05 20:42 ` Mike Rapoport
2023-06-05 20:42 ` Mike Rapoport
2023-06-05 20:42 ` Mike Rapoport
2023-06-05 20:42 ` Mike Rapoport
2023-06-05 21:01 ` Edgecombe, Rick P
2023-06-05 21:01 ` Edgecombe, Rick P
2023-06-05 21:01 ` Edgecombe, Rick P
2023-06-05 21:01 ` Edgecombe, Rick P
2023-06-05 21:11 ` Nadav Amit
2023-06-05 21:11 ` Nadav Amit
2023-06-05 21:11 ` Nadav Amit
2023-06-05 21:11 ` Nadav Amit
2023-06-04 21:47 ` Kent Overstreet
2023-06-04 21:47 ` Kent Overstreet
2023-06-04 21:47 ` Kent Overstreet
2023-06-04 21:47 ` Kent Overstreet
2023-06-01 22:49 ` Song Liu
2023-06-01 22:49 ` Song Liu
2023-06-01 22:49 ` Song Liu
2023-06-01 22:49 ` Song Liu
2023-06-01 10:12 ` [PATCH 13/13] x86/jitalloc: make memory allocated for code ROX Mike Rapoport
2023-06-01 10:12 ` Mike Rapoport
2023-06-01 10:12 ` Mike Rapoport
2023-06-01 10:12 ` Mike Rapoport
2023-06-01 16:12 ` [PATCH 00/13] mm: jit/text allocator Mark Rutland
2023-06-01 16:12 ` Mark Rutland
2023-06-01 16:12 ` Mark Rutland
2023-06-01 16:12 ` Mark Rutland
2023-06-01 18:14 ` Kent Overstreet
2023-06-01 18:14 ` Kent Overstreet
2023-06-01 18:14 ` Kent Overstreet
2023-06-01 18:14 ` Kent Overstreet
2023-06-02 9:35 ` Mark Rutland
2023-06-02 9:35 ` Mark Rutland
2023-06-02 9:35 ` Mark Rutland
2023-06-02 9:35 ` Mark Rutland
2023-06-02 18:20 ` Song Liu
2023-06-02 18:20 ` Song Liu
2023-06-02 18:20 ` Song Liu
2023-06-02 18:20 ` Song Liu
2023-06-03 21:11 ` Puranjay Mohan
2023-06-03 21:11 ` Puranjay Mohan
2023-06-03 21:11 ` Puranjay Mohan
2023-06-03 21:11 ` Puranjay Mohan
2023-06-04 18:02 ` Kent Overstreet
2023-06-04 18:02 ` Kent Overstreet
2023-06-04 18:02 ` Kent Overstreet
2023-06-04 18:02 ` Kent Overstreet
2023-06-04 21:22 ` Song Liu
2023-06-04 21:22 ` Song Liu
2023-06-04 21:22 ` Song Liu
2023-06-04 21:22 ` Song Liu
2023-06-04 21:40 ` Kent Overstreet
2023-06-04 21:40 ` Kent Overstreet
2023-06-04 21:40 ` Kent Overstreet
2023-06-04 21:40 ` Kent Overstreet
2023-06-05 4:05 ` Song Liu
2023-06-05 4:05 ` Song Liu
2023-06-05 4:05 ` Song Liu
2023-06-05 4:05 ` Song Liu
2023-06-05 9:20 ` Mike Rapoport
2023-06-05 9:20 ` Mike Rapoport
2023-06-05 9:20 ` Mike Rapoport
2023-06-05 9:20 ` Mike Rapoport
2023-06-05 10:09 ` Mark Rutland
2023-06-05 10:09 ` Mark Rutland
2023-06-05 10:09 ` Mark Rutland
2023-06-05 10:09 ` Mark Rutland
2023-06-06 10:16 ` Mike Rapoport
2023-06-06 10:16 ` Mike Rapoport
2023-06-06 10:16 ` Mike Rapoport
2023-06-06 10:16 ` Mike Rapoport
2023-06-06 18:21 ` Song Liu
2023-06-06 18:21 ` Song Liu
2023-06-06 18:21 ` Song Liu
2023-06-06 18:21 ` Song Liu
2023-06-08 18:41 ` Mike Rapoport
2023-06-08 18:41 ` Mike Rapoport
2023-06-08 18:41 ` Mike Rapoport
2023-06-08 18:41 ` Mike Rapoport
2023-06-09 17:02 ` Song Liu
2023-06-09 17:02 ` Song Liu
2023-06-09 17:02 ` Song Liu
2023-06-09 17:02 ` Song Liu
2023-06-12 21:34 ` Mike Rapoport
2023-06-12 21:34 ` Mike Rapoport
2023-06-12 21:34 ` Mike Rapoport
2023-06-12 21:34 ` Mike Rapoport
2023-06-13 18:56 ` Kent Overstreet
2023-06-13 18:56 ` Kent Overstreet
2023-06-13 18:56 ` Kent Overstreet
2023-06-13 18:56 ` Kent Overstreet
2023-06-13 21:09 ` Mike Rapoport
2023-06-13 21:09 ` Mike Rapoport
2023-06-13 21:09 ` Mike Rapoport
2023-06-13 21:09 ` Mike Rapoport
2023-07-20 8:53 ` Mike Rapoport
2023-07-20 8:53 ` Mike Rapoport
2023-07-20 8:53 ` Mike Rapoport
2023-07-20 8:53 ` Mike Rapoport
2023-06-05 21:13 ` Kent Overstreet
2023-06-05 21:13 ` Kent Overstreet
2023-06-05 21:13 ` Kent Overstreet
2023-06-05 21:13 ` Kent Overstreet
2023-06-02 0:36 ` Song Liu
2023-06-02 0:36 ` Song Liu
2023-06-02 0:36 ` Song Liu
2023-06-02 0:36 ` Song Liu
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=20230601101257.530867-6-rppt@kernel.org \
--to=rppt@kernel.org \
--cc=akpm@linux-foundation.org \
--cc=bpf@vger.kernel.org \
--cc=catalin.marinas@arm.com \
--cc=chenhuacai@kernel.org \
--cc=christophe.leroy@csgroup.eu \
--cc=davem@davemloft.net \
--cc=deller@gmx.de \
--cc=dinguyen@kernel.org \
--cc=hca@linux.ibm.com \
--cc=kent.overstreet@linux.dev \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mips@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-modules@vger.kernel.org \
--cc=linux-parisc@vger.kernel.org \
--cc=linux-riscv@lists.infradead.org \
--cc=linux-s390@vger.kernel.org \
--cc=linux-trace-kernel@vger.kernel.org \
--cc=linux@armlinux.org.uk \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=loongarch@lists.linux.dev \
--cc=mcgrof@kernel.org \
--cc=mpe@ellerman.id.au \
--cc=naveen.n.rao@linux.ibm.com \
--cc=netdev@vger.kernel.org \
--cc=palmer@dabbelt.com \
--cc=rostedt@goodmis.org \
--cc=song@kernel.org \
--cc=sparclinux@vger.kernel.org \
--cc=tglx@linutronix.de \
--cc=tsbogend@alpha.franken.de \
--cc=will@kernel.org \
--cc=x86@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.