]> xenbits.xensource.com Git - unikraft/unikraft.git/commitdiff
plat/kvm: Do not pass MEMRF_MAP when allocating memregs
authorMichalis Pappas <michalis@unikraft.io>
Sun, 22 Oct 2023 16:11:10 +0000 (18:11 +0200)
committerRazvan Deaconescu <razvan.deaconescu@upb.ro>
Mon, 3 Jun 2024 10:57:23 +0000 (13:57 +0300)
UKPLAT_MEMRF_MAP / UKPLAT_MEMRF_UNMAP mrd types have been obsoleted by
the reworked implementation of paged memory init.

Signed-off-by: Michalis Pappas <michalis@unikraft.io>
Reviewed-by: Sergiu Moga <sergiu@unikraft.io>
Reviewed-by: Serban Sorohan <serban.sorohan@gmail.com>
Approved-by: Razvan Deaconescu <razvand@unikraft.io>
GitHub-Closes: #1373

plat/kvm/arm/setup.c
plat/kvm/efi.c
plat/kvm/x86/lxboot.c
plat/kvm/x86/multiboot.c
plat/kvm/x86/setup.c

index 3afde2e825bdc4a4784e8ec562a78567f1b241a3..4d2b0656f876480e5a46e6b80b80c4f2d91bc036 100644 (file)
@@ -138,8 +138,7 @@ static inline int cmdline_init(struct ukplat_bootinfo *bi)
         */
        cmdline = ukplat_memregion_alloc(cmdline_len + 1, UKPLAT_MEMRT_KERNEL,
                                         UKPLAT_MEMRF_READ |
-                                        UKPLAT_MEMRF_WRITE |
-                                        UKPLAT_MEMRF_MAP);
+                                        UKPLAT_MEMRF_WRITE);
        if (unlikely(!cmdline))
                return -ENOMEM;
 
@@ -173,8 +172,7 @@ void __no_pauth _ukplat_entry(struct ukplat_bootinfo *bi)
        /* Allocate boot stack */
        bstack = ukplat_memregion_alloc(__STACK_SIZE, UKPLAT_MEMRT_STACK,
                                        UKPLAT_MEMRF_READ |
-                                       UKPLAT_MEMRF_WRITE |
-                                       UKPLAT_MEMRF_MAP);
+                                       UKPLAT_MEMRF_WRITE);
        if (unlikely(!bstack))
                UK_CRASH("Boot stack alloc failed\n");
        bstack = (void *)((__uptr)bstack + __STACK_SIZE);
index 63ba31d4c33b332757b62b6d28fd2708e08004ab..3987e7f6dbf9b9facf36597ffcf74ce957366b0d 100644 (file)
@@ -152,14 +152,12 @@ static int uk_efi_md_to_bi_mrd(struct uk_efi_mem_desc *const md,
        case UK_EFI_PAL_CODE:
        case UK_EFI_PERSISTENT_MEMORY:
                mrd->type = UKPLAT_MEMRT_RESERVED;
-               mrd->flags = UKPLAT_MEMRF_READ | UKPLAT_MEMRF_MAP;
-
+               mrd->flags = UKPLAT_MEMRF_READ;
                break;
        case UK_EFI_MEMORY_MAPPED_IO:
        case UK_EFI_MEMORY_MAPPED_IO_PORT_SPACE:
                mrd->type = UKPLAT_MEMRT_RESERVED;
-               mrd->flags = UKPLAT_MEMRF_READ | UKPLAT_MEMRF_WRITE |
-                            UKPLAT_MEMRF_MAP;
+               mrd->flags = UKPLAT_MEMRF_READ | UKPLAT_MEMRF_WRITE;
 
                break;
        case UK_EFI_RUNTIME_SERVICES_CODE:
@@ -179,8 +177,7 @@ static int uk_efi_md_to_bi_mrd(struct uk_efi_mem_desc *const md,
                 * permissions to avoid crashes generated by explicit firmware
                 * calls.
                 */
-               mrd->flags = UKPLAT_MEMRF_READ | UKPLAT_MEMRF_WRITE |
-                            UKPLAT_MEMRF_MAP;
+               mrd->flags = UKPLAT_MEMRF_READ | UKPLAT_MEMRF_WRITE;
 
                break;
        case UK_EFI_LOADER_CODE:
@@ -346,7 +343,7 @@ static void uk_efi_rt_md_to_bi_mrds(struct ukplat_memregion_desc **rt_mrds,
                rt_mrd->pg_count = mat_md->number_of_pages;
                rt_mrd->vbase = rt_mrd->pbase;
                rt_mrd->type = UKPLAT_MEMRT_RESERVED;
-               rt_mrd->flags = UKPLAT_MEMRF_MAP;
+               rt_mrd->flags = UKPLAT_MEMRF_READ;
                if (mat_md->attribute & UK_EFI_MEMORY_XP)
                        if (mat_md->attribute & UK_EFI_MEMORY_RO)
                                rt_mrd->flags |= UKPLAT_MEMRF_READ;
@@ -557,7 +554,7 @@ static void uk_efi_setup_bootinfo_cmdl(struct ukplat_bootinfo *bi)
        mrd.len = len;
        mrd.pg_count = PAGE_COUNT(len);
        mrd.type = UKPLAT_MEMRT_CMDLINE;
-       mrd.flags = UKPLAT_MEMRF_READ | UKPLAT_MEMRF_MAP;
+       mrd.flags = UKPLAT_MEMRF_READ;
        rc = ukplat_memregion_list_insert(&bi->mrds, &mrd);
        if (unlikely(rc < 0))
                UK_EFI_CRASH("Failed to insert cmdl mrd\n");
@@ -589,7 +586,7 @@ static void uk_efi_setup_bootinfo_initrd(struct ukplat_bootinfo *bi)
        mrd.len = len;
        mrd.pg_count = PAGE_COUNT(len);
        mrd.type = UKPLAT_MEMRT_INITRD;
-       mrd.flags = UKPLAT_MEMRF_READ | UKPLAT_MEMRF_MAP;
+       mrd.flags = UKPLAT_MEMRF_READ;
        rc = ukplat_memregion_list_insert(&bi->mrds, &mrd);
        if (unlikely(rc < 0))
                UK_EFI_CRASH("Failed to insert initrd mrd\n");
@@ -618,7 +615,7 @@ static void uk_efi_setup_bootinfo_dtb(struct ukplat_bootinfo *bi)
        mrd.len = len;
        mrd.pg_count = PAGE_COUNT(len);
        mrd.type = UKPLAT_MEMRT_DEVICETREE;
-       mrd.flags = UKPLAT_MEMRF_READ | UKPLAT_MEMRF_MAP;
+       mrd.flags = UKPLAT_MEMRF_READ;
        rc = ukplat_memregion_list_insert(&bi->mrds, &mrd);
        if (unlikely(rc < 0))
                UK_EFI_CRASH("Failed to insert dtb mrd\n");
index 08776d7fab9a3fa60f7c76a7a29dab06581b0938..49cfe1f296f3db8984d890f94fe3b81eedff16c0 100644 (file)
@@ -45,7 +45,7 @@ lxboot_init_cmdline(struct ukplat_bootinfo *bi, struct lxboot_params *bp)
        mrd.len = cmdline_size;
        mrd.pg_count = PAGE_COUNT(mrd.pg_off + mrd.len);
        mrd.type = UKPLAT_MEMRT_CMDLINE;
-       mrd.flags = UKPLAT_MEMRF_READ | UKPLAT_MEMRF_MAP;
+       mrd.flags = UKPLAT_MEMRF_READ;
 #ifdef CONFIG_UKPLAT_MEMRNAME
        memcpy(mrd.name, "cmdline", sizeof("cmdline"));
 #endif /* CONFIG_UKPLAT_MEMRNAME */
@@ -83,7 +83,7 @@ lxboot_init_initrd(struct ukplat_bootinfo *bi, struct lxboot_params *bp)
        mrd.len = initrd_size;
        mrd.type = UKPLAT_MEMRT_INITRD;
        mrd.pg_count = PAGE_COUNT(mrd.pg_off + initrd_size);
-       mrd.flags = UKPLAT_MEMRF_MAP | UKPLAT_MEMRF_READ;
+       mrd.flags = UKPLAT_MEMRF_READ;
 #ifdef CONFIG_UKPLAT_MEMRNAME
        memcpy(mrd.name, "initrd", sizeof("initrd"));
 #endif /* CONFIG_UKPLAT_MEMRNAME */
@@ -130,7 +130,7 @@ lxboot_init_mem(struct ukplat_bootinfo *bi, struct lxboot_params *bp)
                        mrd.len = PAGE_ALIGN_UP(mrd.len);
                } else {
                        mrd.type = UKPLAT_MEMRT_RESERVED;
-                       mrd.flags = UKPLAT_MEMRF_READ | UKPLAT_MEMRF_MAP;
+                       mrd.flags = UKPLAT_MEMRF_READ;
 
                        /* We assume that reserved regions cannot
                         * overlap with loaded modules.
index 59f3ee440cc24ebfc18a5eba6c4b4b3427f8fa1f..fb04950566df46c208a95a2cb12fa271976186f2 100644 (file)
@@ -71,6 +71,7 @@ void multiboot_entry(struct lcpu *lcpu, struct multiboot_info *mi)
        if (mi->flags & MULTIBOOT_INFO_CMDLINE) {
                if (mi->cmdline) {
                        cmdline_len = strlen((const char *)(__uptr)mi->cmdline);
+
                        /* 1:1 mapping */
                        mrd.pbase = PAGE_ALIGN_DOWN(mi->cmdline);
                        mrd.vbase = mrd.pbase;
@@ -78,7 +79,7 @@ void multiboot_entry(struct lcpu *lcpu, struct multiboot_info *mi)
                        mrd.len = cmdline_len;
                        mrd.pg_count = PAGE_COUNT(mrd.pg_off + cmdline_len);
                        mrd.type = UKPLAT_MEMRT_CMDLINE;
-                       mrd.flags = UKPLAT_MEMRF_READ | UKPLAT_MEMRF_MAP;
+                       mrd.flags = UKPLAT_MEMRF_READ;
 
                        mrd_insert(bi, &mrd);
 
@@ -108,7 +109,7 @@ void multiboot_entry(struct lcpu *lcpu, struct multiboot_info *mi)
                        mrd.len = mods[i].mod_end - mods[i].mod_start;
                        mrd.pg_count = PAGE_COUNT(mrd.pg_off + mrd.len);
                        mrd.type  = UKPLAT_MEMRT_INITRD;
-                       mrd.flags = UKPLAT_MEMRF_READ | UKPLAT_MEMRF_MAP;
+                       mrd.flags = UKPLAT_MEMRF_READ;
 
 #ifdef CONFIG_UKPLAT_MEMRNAME
                        strncpy(mrd.name, (char *)(__uptr)mods[i].cmdline,
@@ -156,8 +157,7 @@ void multiboot_entry(struct lcpu *lcpu, struct multiboot_info *mi)
                                mrd.len = PAGE_ALIGN_UP(mrd.len + mrd.pg_off);
                        } else {
                                mrd.type  = UKPLAT_MEMRT_RESERVED;
-                               mrd.flags = UKPLAT_MEMRF_READ |
-                                           UKPLAT_MEMRF_MAP;
+                               mrd.flags = UKPLAT_MEMRF_READ;
 
                                /* We assume that reserved regions cannot
                                 * overlap with loaded modules.
index e6b8ec72eed6438964dd66933f69a7e9866f0799..68b796253ec24e0fddca97099e5d6bdb76e4bbb7 100644 (file)
@@ -45,8 +45,7 @@ static inline int cmdline_init(struct ukplat_bootinfo *bi)
         */
        cmdline = ukplat_memregion_alloc(cmdline_len + 1, UKPLAT_MEMRT_KERNEL,
                                         UKPLAT_MEMRF_READ |
-                                        UKPLAT_MEMRF_WRITE |
-                                        UKPLAT_MEMRF_MAP);
+                                        UKPLAT_MEMRF_WRITE);
        if (unlikely(!cmdline))
                return -ENOMEM;
 
@@ -98,8 +97,7 @@ void _ukplat_entry(struct lcpu *lcpu, struct ukplat_bootinfo *bi)
        /* Allocate boot stack */
        bstack = ukplat_memregion_alloc(__STACK_SIZE, UKPLAT_MEMRT_STACK,
                                        UKPLAT_MEMRF_READ |
-                                       UKPLAT_MEMRF_WRITE |
-                                       UKPLAT_MEMRF_MAP);
+                                       UKPLAT_MEMRF_WRITE);
        if (unlikely(!bstack))
                UK_CRASH("Boot stack alloc failed\n");