lkml.org 
[lkml]   [2008]   [Jun]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Subject[PATCH 11 of 36] x86: unify mmu_context.h
    Date
    From
    Some amount of asm-x86/mmu_context.h can be unified, including
    activate_mm paravirt hook.

    Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
    ---
    include/asm-x86/mmu_context.h | 32 ++++++++++++++++++++++++++++++++
    include/asm-x86/mmu_context_32.h | 28 ----------------------------
    include/asm-x86/mmu_context_64.h | 18 ------------------
    3 files changed, 32 insertions(+), 46 deletions(-)

    diff --git a/include/asm-x86/mmu_context.h b/include/asm-x86/mmu_context.h
    --- a/include/asm-x86/mmu_context.h
    +++ b/include/asm-x86/mmu_context.h
    @@ -1,5 +1,37 @@
    +#ifndef __ASM_X86_MMU_CONTEXT_H
    +#define __ASM_X86_MMU_CONTEXT_H
    +
    +#include <asm/desc.h>
    +#include <asm/atomic.h>
    +#include <asm/pgalloc.h>
    +#include <asm/tlbflush.h>
    +#include <asm/paravirt.h>
    +#ifndef CONFIG_PARAVIRT
    +#include <asm-generic/mm_hooks.h>
    +
    +static inline void paravirt_activate_mm(struct mm_struct *prev,
    + struct mm_struct *next)
    +{
    +}
    +#endif /* !CONFIG_PARAVIRT */
    +
    +/*
    + * Used for LDT copy/destruction.
    + */
    +int init_new_context(struct task_struct *tsk, struct mm_struct *mm);
    +void destroy_context(struct mm_struct *mm);
    +
    #ifdef CONFIG_X86_32
    # include "mmu_context_32.h"
    #else
    # include "mmu_context_64.h"
    #endif
    +
    +#define activate_mm(prev, next) \
    +do { \
    + paravirt_activate_mm((prev), (next)); \
    + switch_mm((prev), (next), NULL); \
    +} while (0);
    +
    +
    +#endif /* __ASM_X86_MMU_CONTEXT_H */
    diff --git a/include/asm-x86/mmu_context_32.h b/include/asm-x86/mmu_context_32.h
    --- a/include/asm-x86/mmu_context_32.h
    +++ b/include/asm-x86/mmu_context_32.h
    @@ -1,27 +1,5 @@
    #ifndef __I386_SCHED_H
    #define __I386_SCHED_H
    -
    -#include <asm/desc.h>
    -#include <asm/atomic.h>
    -#include <asm/pgalloc.h>
    -#include <asm/tlbflush.h>
    -#include <asm/paravirt.h>
    -#ifndef CONFIG_PARAVIRT
    -#include <asm-generic/mm_hooks.h>
    -
    -static inline void paravirt_activate_mm(struct mm_struct *prev,
    - struct mm_struct *next)
    -{
    -}
    -#endif /* !CONFIG_PARAVIRT */
    -
    -
    -/*
    - * Used for LDT copy/destruction.
    - */
    -int init_new_context(struct task_struct *tsk, struct mm_struct *mm);
    -void destroy_context(struct mm_struct *mm);
    -

    static inline void enter_lazy_tlb(struct mm_struct *mm, struct task_struct *tsk)
    {
    @@ -75,10 +53,4 @@
    #define deactivate_mm(tsk, mm) \
    asm("movl %0,%%gs": :"r" (0));

    -#define activate_mm(prev, next) \
    -do { \
    - paravirt_activate_mm((prev), (next)); \
    - switch_mm((prev), (next), NULL); \
    -} while (0);
    -
    #endif
    diff --git a/include/asm-x86/mmu_context_64.h b/include/asm-x86/mmu_context_64.h
    --- a/include/asm-x86/mmu_context_64.h
    +++ b/include/asm-x86/mmu_context_64.h
    @@ -1,21 +1,7 @@
    #ifndef __X86_64_MMU_CONTEXT_H
    #define __X86_64_MMU_CONTEXT_H

    -#include <asm/desc.h>
    -#include <asm/atomic.h>
    -#include <asm/pgalloc.h>
    #include <asm/pda.h>
    -#include <asm/pgtable.h>
    -#include <asm/tlbflush.h>
    -#ifndef CONFIG_PARAVIRT
    -#include <asm-generic/mm_hooks.h>
    -#endif
    -
    -/*
    - * possibly do the LDT unload here?
    - */
    -int init_new_context(struct task_struct *tsk, struct mm_struct *mm);
    -void destroy_context(struct mm_struct *mm);

    static inline void enter_lazy_tlb(struct mm_struct *mm, struct task_struct *tsk)
    {
    @@ -65,8 +51,4 @@
    asm volatile("movl %0,%%fs"::"r"(0)); \
    } while (0)

    -#define activate_mm(prev, next) \
    - switch_mm((prev), (next), NULL)
    -
    -
    #endif



    \
     
     \ /
      Last update: 2008-06-25 06:55    [W:2.536 / U:0.044 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site