lkml.org 
[lkml]   [2021]   [Sep]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Subject[PATCH v2 9/9] xen/x86: adjust data placement
    From
    Date
    Both xen_pvh and xen_start_flags get written just once early during
    init. Using the respective annotation then allows the open-coded placing
    in .data to go away.

    Additionally the former, like the latter, wants exporting, or else
    xen_pvh_domain() can't be used from modules.

    Signed-off-by: Jan Beulich <jbeulich@suse.com>
    ---
    I have to admit that it is completely unclear to me which form of
    exporting I should have used: xen_domain_type is GPL-only while
    xen_start_flags is not, yet both are used in similar ways, extending to
    xen_pvh. Picking the GPL version was suggested by Jürgen.
    ---
    v2: Use EXPORT_SYMBOL_GPL().

    --- a/arch/x86/xen/enlighten.c
    +++ b/arch/x86/xen/enlighten.c
    @@ -75,7 +75,7 @@ EXPORT_SYMBOL_GPL(xen_have_vector_callba
    */
    enum xen_domain_type __ro_after_init xen_domain_type = XEN_NATIVE;
    EXPORT_SYMBOL_GPL(xen_domain_type);
    -uint32_t xen_start_flags __section(".data") = 0;
    +uint32_t __ro_after_init xen_start_flags;
    EXPORT_SYMBOL(xen_start_flags);

    /*
    --- a/arch/x86/xen/enlighten_pvh.c
    +++ b/arch/x86/xen/enlighten_pvh.c
    @@ -1,5 +1,6 @@
    // SPDX-License-Identifier: GPL-2.0
    #include <linux/acpi.h>
    +#include <linux/export.h>

    #include <xen/hvc-console.h>

    @@ -18,10 +19,11 @@
    /*
    * PVH variables.
    *
    - * The variable xen_pvh needs to live in the data segment since it is used
    + * The variable xen_pvh needs to live in a data segment since it is used
    * after startup_{32|64} is invoked, which will clear the .bss segment.
    */
    -bool xen_pvh __section(".data") = 0;
    +bool __ro_after_init xen_pvh;
    +EXPORT_SYMBOL_GPL(xen_pvh);

    void __init xen_pvh_init(struct boot_params *boot_params)
    {
    \
     
     \ /
      Last update: 2021-09-30 14:22    [W:5.614 / U:0.084 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site