lkml.org 
[lkml]   [2007]   [Dec]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 6/21] [PATCH] move the definition of set_iopl_mask to common header
    Date
    This patch moves the definition of set_iopl_mask to processor.h,
    instead of letting it at processor_32.h.
    For x86_64, nothing is done, as we don't really need such a function.
    However, having it on both arches saves us from putting an ifdef in the
    pv_cpu_ops struct.

    Signed-off-by: Glauber de Oliveira Costa <gcosta@redhat.com>
    ---
    include/asm-x86/processor.h | 19 +++++++++++++++++++
    include/asm-x86/processor_32.h | 17 -----------------
    2 files changed, 19 insertions(+), 17 deletions(-)

    Index: linux-2.6-x86/include/asm-x86/processor.h
    ===================================================================
    --- linux-2.6-x86.orig/include/asm-x86/processor.h
    +++ linux-2.6-x86/include/asm-x86/processor.h
    @@ -78,6 +78,24 @@ static inline void native_set_debugreg(i
    }
    }

    +/*
    + * Set IOPL bits in EFLAGS from given mask
    + */
    +static inline void native_set_iopl_mask(unsigned mask)
    +{
    +#ifdef CONFIG_X86_32
    + unsigned int reg;
    + __asm__ __volatile__ ("pushfl;"
    + "popl %0;"
    + "andl %1, %0;"
    + "orl %2, %0;"
    + "pushl %0;"
    + "popfl"
    + : "=&r" (reg)
    + : "i" (~X86_EFLAGS_IOPL), "r" (mask));
    +#endif
    +}
    +

    #ifndef CONFIG_PARAVIRT
    #define __cpuid native_cpuid
    @@ -91,6 +109,7 @@ static inline void native_set_debugreg(i
    #define set_debugreg(value, register) \
    native_set_debugreg(register, value)

    +#define set_iopl_mask native_set_iopl_mask
    #endif /* CONFIG_PARAVIRT */

    /*
    Index: linux-2.6-x86/include/asm-x86/processor_32.h
    ===================================================================
    --- linux-2.6-x86.orig/include/asm-x86/processor_32.h
    +++ linux-2.6-x86/include/asm-x86/processor_32.h
    @@ -455,21 +455,6 @@ static inline void native_load_sp0(struc
    wrmsr(MSR_IA32_SYSENTER_CS, thread->sysenter_cs, 0);
    }
    }
    -/*
    - * Set IOPL bits in EFLAGS from given mask
    - */
    -static inline void native_set_iopl_mask(unsigned mask)
    -{
    - unsigned int reg;
    - __asm__ __volatile__ ("pushfl;"
    - "popl %0;"
    - "andl %1, %0;"
    - "orl %2, %0;"
    - "pushl %0;"
    - "popfl"
    - : "=&r" (reg)
    - : "i" (~X86_EFLAGS_IOPL), "r" (mask));
    -}

    #ifdef CONFIG_PARAVIRT
    #include <asm/paravirt.h>
    @@ -479,8 +464,6 @@ static inline void load_sp0(struct tss_s
    {
    native_load_sp0(tss, thread);
    }
    -
    -#define set_iopl_mask native_set_iopl_mask
    #endif /* CONFIG_PARAVIRT */

    /* generic versions from gas */

    \
     
     \ /
      Last update: 2007-12-18 02:43    [W:0.024 / U:0.180 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site