x86/PVH: adjust function/data placement

Two of the variables can live in .init.data, allowing the open-coded
placing in .data to go away. Another "variable" is used to communicate a
size value only to very early assembly code, which hence can be both
const and live in .init.*. Additionally two functions were lacking
__init annotations.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Juergen Gross <jgross@suse.com>

Link: https://lore.kernel.org/r/3b0bb22e-43f4-e459-c5cb-169f996b5669@suse.com
Signed-off-by: Juergen Gross <jgross@suse.com>
This commit is contained in:
Jan Beulich 2021-09-30 14:20:42 +02:00 committed by Juergen Gross
parent 079c4baa2a
commit 59f7e53741

View File

@ -16,15 +16,15 @@
/* /*
* PVH variables. * PVH variables.
* *
* pvh_bootparams and pvh_start_info need to live in the data segment since * pvh_bootparams and pvh_start_info need to live in a data segment since
* they are used after startup_{32|64}, which clear .bss, are invoked. * they are used after startup_{32|64}, which clear .bss, are invoked.
*/ */
struct boot_params pvh_bootparams __section(".data"); struct boot_params __initdata pvh_bootparams;
struct hvm_start_info pvh_start_info __section(".data"); struct hvm_start_info __initdata pvh_start_info;
unsigned int pvh_start_info_sz = sizeof(pvh_start_info); const unsigned int __initconst pvh_start_info_sz = sizeof(pvh_start_info);
static u64 pvh_get_root_pointer(void) static u64 __init pvh_get_root_pointer(void)
{ {
return pvh_start_info.rsdp_paddr; return pvh_start_info.rsdp_paddr;
} }
@ -107,7 +107,7 @@ void __init __weak xen_pvh_init(struct boot_params *boot_params)
BUG(); BUG();
} }
static void hypervisor_specific_init(bool xen_guest) static void __init hypervisor_specific_init(bool xen_guest)
{ {
if (xen_guest) if (xen_guest)
xen_pvh_init(&pvh_bootparams); xen_pvh_init(&pvh_bootparams);