Skip to content
  • Rusty Russell's avatar
    [PATCH] paravirt: header and stubs for paravirtualisation · d3561b7f
    Rusty Russell authored
    
    
    Create a paravirt.h header for all the critical operations which need to be
    replaced with hypervisor calls, and include that instead of defining native
    operations, when CONFIG_PARAVIRT.
    
    This patch does the dumbest possible replacement of paravirtualized
    instructions: calls through a "paravirt_ops" structure.  Currently these are
    function implementations of native hardware: hypervisors will override the ops
    structure with their own variants.
    
    All the pv-ops functions are declared "fastcall" so that a specific
    register-based ABI is used, to make inlining assember easier.
    
    And:
    
    +From: Andy Whitcroft <apw@shadowen.org>
    
    The paravirt ops introduce a 'weak' attribute onto memory_setup().
    Code ordering leads to the following warnings on x86:
    
        arch/i386/kernel/setup.c:651: warning: weak declaration of
                    `memory_setup' after first use results in unspecified behavior
    
    Move memory_setup() to avoid this.
    
    Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
    Signed-off-by: default avatarChris Wright <chrisw@sous-sol.org>
    Signed-off-by: default avatarAndi Kleen <ak@suse.de>
    Cc: Jeremy Fitzhardinge <jeremy@goop.org>
    Cc: Zachary Amsden <zach@vmware.com>
    Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
    Signed-off-by: default avatarAndy Whitcroft <apw@shadowen.org>
    d3561b7f