Thread (22 messages) 22 messages, 3 authors, 2021-06-08

Re: [PATCH v3 resend 01/15] mm: add setup_initial_init_mm() helper

From: Souptick Joarder <hidden>
Date: 2021-06-08 14:53:56
Also in: linux-arm-kernel, linux-m68k, linux-riscv, linux-s390, linux-sh, linuxppc-dev, lkml

On Tue, Jun 8, 2021 at 1:56 PM Kefeng Wang [off-list ref] wrote:
quoted hunk ↗ jump to hunk
Add setup_initial_init_mm() helper to setup kernel text,
data and brk.

Cc: linux-snps-arc@lists.infradead.org
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-csky@vger.kernel.org
Cc: uclinux-h8-devel@lists.sourceforge.jp
Cc: linux-m68k@lists.linux-m68k.org
Cc: openrisc@lists.librecores.org
Cc: linuxppc-dev@lists.ozlabs.org
Cc: linux-riscv@lists.infradead.org
Cc: linux-sh@vger.kernel.org
Cc: linux-s390@vger.kernel.org
Cc: x86@kernel.org
Signed-off-by: Kefeng Wang <redacted>
---
 include/linux/mm.h | 3 +++
 mm/init-mm.c       | 9 +++++++++
 2 files changed, 12 insertions(+)
diff --git a/include/linux/mm.h b/include/linux/mm.h
index c274f75efcf9..02aa057540b7 100644
--- a/include/linux/mm.h
+++ b/include/linux/mm.h
@@ -244,6 +244,9 @@ int __add_to_page_cache_locked(struct page *page, struct address_space *mapping,

 #define lru_to_page(head) (list_entry((head)->prev, struct page, lru))

+void setup_initial_init_mm(void *start_code, void *end_code,
+                          void *end_data, void *brk);
+
Gentle query -> is there any limitation to add inline functions in
setup_arch() functions ?
quoted hunk ↗ jump to hunk
 /*
  * Linux kernel virtual memory manager primitives.
  * The idea being to have a "virtual" mm in the same way
diff --git a/mm/init-mm.c b/mm/init-mm.c
index 153162669f80..b4a6f38fb51d 100644
--- a/mm/init-mm.c
+++ b/mm/init-mm.c
@@ -40,3 +40,12 @@ struct mm_struct init_mm = {
        .cpu_bitmap     = CPU_BITS_NONE,
        INIT_MM_CONTEXT(init_mm)
 };
+
+void setup_initial_init_mm(void *start_code, void *end_code,
+                          void *end_data, void *brk)
+{
+       init_mm.start_code = (unsigned long)start_code;
+       init_mm.end_code = (unsigned long)end_code;
+       init_mm.end_data = (unsigned long)end_data;
+       init_mm.brk = (unsigned long)brk;
+}
--
2.26.2
  
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help