akpm: > Can we lose __HAVE_ARCH_MM_LIFETIME? Just define these (preferably in C, > not in cpp) in the appropriate include/asm-foo/ files? Signed-off-by: Jeremy Fitzhardinge Cc: linux-arch@vger.kernel.org --- include/asm-alpha/mmu_context.h | 9 +++++++++ include/asm-arm/mmu_context.h | 9 +++++++++ include/asm-arm26/mmu_context.h | 9 +++++++++ include/asm-avr32/mmu_context.h | 9 +++++++++ include/asm-cris/mmu_context.h | 8 ++++++++ include/asm-frv/mmu_context.h | 8 ++++++++ include/asm-h8300/mmu_context.h | 8 ++++++++ include/asm-i386/mmu_context.h | 2 +- include/asm-i386/paravirt.h | 18 +++++++++++++++--- include/asm-ia64/mmu_context.h | 8 ++++++++ include/asm-m32r/mmu_context.h | 8 ++++++++ include/asm-m68k/mmu_context.h | 8 ++++++++ include/asm-m68knommu/mmu_context.h | 8 ++++++++ include/asm-mips/mmu_context.h | 8 ++++++++ include/asm-parisc/mmu_context.h | 9 +++++++++ include/asm-powerpc/mmu_context.h | 10 ++++++++++ include/asm-ppc/mmu_context.h | 9 +++++++++ include/asm-s390/mmu_context.h | 8 ++++++++ include/asm-sh/mmu_context.h | 8 ++++++++ include/asm-sh64/mmu_context.h | 8 ++++++++ include/asm-sparc/mmu_context.h | 8 ++++++++ include/asm-sparc64/mmu_context.h | 8 ++++++++ include/asm-um/mmu_context.h | 8 ++++++++ include/asm-v850/mmu_context.h | 8 ++++++++ include/asm-x86_64/mmu_context.h | 8 ++++++++ include/asm-xtensa/mmu_context.h | 9 +++++++++ include/linux/sched.h | 6 ------ mm/mmap.c | 1 + 28 files changed, 218 insertions(+), 10 deletions(-) =================================================================== --- a/include/asm-alpha/mmu_context.h +++ b/include/asm-alpha/mmu_context.h @@ -256,4 +256,13 @@ enter_lazy_tlb(struct mm_struct *mm, str #undef __MMU_EXTERN_INLINE #endif +static inline void arch_dup_mmap(struct mm_struct *oldmm, + struct mm_struct *mm) +{ +} + +static inline void arch_exit_mmap(struct mm_struct *mm) +{ +} + #endif /* __ALPHA_MMU_CONTEXT_H */ =================================================================== --- a/include/asm-arm/mmu_context.h +++ b/include/asm-arm/mmu_context.h @@ -108,4 +108,13 @@ switch_mm(struct mm_struct *prev, struct #define deactivate_mm(tsk,mm) do { } while (0) #define activate_mm(prev,next) switch_mm(prev, next, NULL) +static inline void arch_dup_mmap(struct mm_struct *oldmm, + struct mm_struct *mm) +{ +} + +static inline void arch_exit_mmap(struct mm_struct *mm) +{ +} + #endif =================================================================== --- a/include/asm-arm26/mmu_context.h +++ b/include/asm-arm26/mmu_context.h @@ -48,4 +48,13 @@ static inline void activate_mm(struct mm cpu_switch_mm(next->pgd, next); } +static inline void arch_dup_mmap(struct mm_struct *oldmm, + struct mm_struct *mm) +{ +} + +static inline void arch_exit_mmap(struct mm_struct *mm) +{ +} + #endif =================================================================== --- a/include/asm-avr32/mmu_context.h +++ b/include/asm-avr32/mmu_context.h @@ -145,4 +145,13 @@ static inline void disable_mmu(void) sysreg_write(MMUCR, SYSREG_BIT(MMUCR_S)); } +static inline void arch_dup_mmap(struct mm_struct *oldmm, + struct mm_struct *mm) +{ +} + +static inline void arch_exit_mmap(struct mm_struct *mm) +{ +} + #endif /* __ASM_AVR32_MMU_CONTEXT_H */ =================================================================== --- a/include/asm-cris/mmu_context.h +++ b/include/asm-cris/mmu_context.h @@ -21,4 +21,12 @@ static inline void enter_lazy_tlb(struct { } +static inline void arch_dup_mmap(struct mm_struct *oldmm, + struct mm_struct *mm) +{ +} + +static inline void arch_exit_mmap(struct mm_struct *mm) +{ +} #endif =================================================================== --- a/include/asm-frv/mmu_context.h +++ b/include/asm-frv/mmu_context.h @@ -46,4 +46,12 @@ do { \ do { \ } while(0) +static inline void arch_dup_mmap(struct mm_struct *oldmm, + struct mm_struct *mm) +{ +} + +static inline void arch_exit_mmap(struct mm_struct *mm) +{ +} #endif =================================================================== --- a/include/asm-h8300/mmu_context.h +++ b/include/asm-h8300/mmu_context.h @@ -28,4 +28,12 @@ static inline void activate_mm(struct mm { } +static inline void arch_dup_mmap(struct mm_struct *oldmm, + struct mm_struct *mm) +{ +} + +static inline void arch_exit_mmap(struct mm_struct *mm) +{ +} #endif =================================================================== --- a/include/asm-i386/mmu_context.h +++ b/include/asm-i386/mmu_context.h @@ -68,7 +68,7 @@ static inline void switch_mm(struct mm_s #define activate_mm(prev, next) \ do { \ - arch_activate_mm(prev, next); \ + paravirt_activate_mm(prev, next); \ switch_mm((prev),(next),NULL); \ } while(0); =================================================================== --- a/include/asm-i386/paravirt.h +++ b/include/asm-i386/paravirt.h @@ -432,9 +432,8 @@ static inline void startup_ipi_hook(int } #endif -#define __HAVE_ARCH_MM_LIFETIME -static inline void arch_activate_mm(struct mm_struct *prev, - struct mm_struct *next) +static inline void paravirt_activate_mm(struct mm_struct *prev, + struct mm_struct *next) { paravirt_ops.activate_mm(prev, next); } @@ -695,5 +694,18 @@ static inline void paravirt_pagetable_se #endif } +static inline void paravirt_activate_mm(struct mm_struct *prev, + struct mm_struct *next) +{ +} + +static inline void arch_dup_mmap(struct mm_struct *oldmm, + struct mm_struct *mm) +{ +} + +static inline void arch_exit_mmap(struct mm_struct *mm) +{ +} #endif /* CONFIG_PARAVIRT */ #endif /* __ASM_PARAVIRT_H */ =================================================================== --- a/include/asm-ia64/mmu_context.h +++ b/include/asm-ia64/mmu_context.h @@ -197,5 +197,13 @@ activate_mm (struct mm_struct *prev, str #define switch_mm(prev_mm,next_mm,next_task) activate_mm(prev_mm, next_mm) +static inline void arch_dup_mmap(struct mm_struct *oldmm, + struct mm_struct *mm) +{ +} + +static inline void arch_exit_mmap(struct mm_struct *mm) +{ +} # endif /* ! __ASSEMBLY__ */ #endif /* _ASM_IA64_MMU_CONTEXT_H */ =================================================================== --- a/include/asm-m32r/mmu_context.h +++ b/include/asm-m32r/mmu_context.h @@ -157,6 +157,14 @@ static inline void switch_mm(struct mm_s #define enter_lazy_tlb(mm,tsk) do { } while (0) #endif /* not CONFIG_MMU */ +static inline void arch_dup_mmap(struct mm_struct *oldmm, + struct mm_struct *mm) +{ +} + +static inline void arch_exit_mmap(struct mm_struct *mm) +{ +} #endif /* not __ASSEMBLY__ */ #endif /* __KERNEL__ */ =================================================================== --- a/include/asm-m68k/mmu_context.h +++ b/include/asm-m68k/mmu_context.h @@ -149,5 +149,13 @@ static inline void activate_mm(struct mm activate_context(next_mm); } +static inline void arch_dup_mmap(struct mm_struct *oldmm, + struct mm_struct *mm) +{ +} + +static inline void arch_exit_mmap(struct mm_struct *mm) +{ +} #endif #endif =================================================================== --- a/include/asm-m68knommu/mmu_context.h +++ b/include/asm-m68knommu/mmu_context.h @@ -29,4 +29,12 @@ static inline void activate_mm(struct mm { } +static inline void arch_dup_mmap(struct mm_struct *oldmm, + struct mm_struct *mm) +{ +} + +static inline void arch_exit_mmap(struct mm_struct *mm) +{ +} #endif =================================================================== --- a/include/asm-mips/mmu_context.h +++ b/include/asm-mips/mmu_context.h @@ -293,4 +293,12 @@ drop_mmu_context(struct mm_struct *mm, u local_irq_restore(flags); } +static inline void arch_dup_mmap(struct mm_struct *oldmm, + struct mm_struct *mm) +{ +} + +static inline void arch_exit_mmap(struct mm_struct *mm) +{ +} #endif /* _ASM_MMU_CONTEXT_H */ =================================================================== --- a/include/asm-parisc/mmu_context.h +++ b/include/asm-parisc/mmu_context.h @@ -70,4 +70,13 @@ static inline void activate_mm(struct mm switch_mm(prev,next,current); } + +static inline void arch_dup_mmap(struct mm_struct *oldmm, + struct mm_struct *mm) +{ +} + +static inline void arch_exit_mmap(struct mm_struct *mm) +{ +} #endif =================================================================== --- a/include/asm-powerpc/mmu_context.h +++ b/include/asm-powerpc/mmu_context.h @@ -80,5 +80,15 @@ static inline void activate_mm(struct mm } #endif /* CONFIG_PPC64 */ + +static inline void arch_dup_mmap(struct mm_struct *oldmm, + struct mm_struct *mm) +{ +} + +static inline void arch_exit_mmap(struct mm_struct *mm) +{ +} + #endif /* __KERNEL__ */ #endif /* __ASM_POWERPC_MMU_CONTEXT_H */ =================================================================== --- a/include/asm-ppc/mmu_context.h +++ b/include/asm-ppc/mmu_context.h @@ -197,5 +197,14 @@ static inline void switch_mm(struct mm_s extern void mmu_context_init(void); +static inline void arch_dup_mmap(struct mm_struct *oldmm, + struct mm_struct *mm) +{ +} + +static inline void arch_exit_mmap(struct mm_struct *mm) +{ +} + #endif /* __PPC_MMU_CONTEXT_H */ #endif /* __KERNEL__ */ =================================================================== --- a/include/asm-s390/mmu_context.h +++ b/include/asm-s390/mmu_context.h @@ -67,4 +67,12 @@ static inline void activate_mm(struct mm set_fs(current->thread.mm_segment); } +static inline void arch_dup_mmap(struct mm_struct *oldmm, + struct mm_struct *mm) +{ +} + +static inline void arch_exit_mmap(struct mm_struct *mm) +{ +} #endif /* __S390_MMU_CONTEXT_H */ =================================================================== --- a/include/asm-sh/mmu_context.h +++ b/include/asm-sh/mmu_context.h @@ -214,5 +214,13 @@ static inline void disable_mmu(void) #define disable_mmu() do { BUG(); } while (0) #endif +static inline void arch_dup_mmap(struct mm_struct *oldmm, + struct mm_struct *mm) +{ +} + +static inline void arch_exit_mmap(struct mm_struct *mm) +{ +} #endif /* __KERNEL__ */ #endif /* __ASM_SH_MMU_CONTEXT_H */ =================================================================== --- a/include/asm-sh64/mmu_context.h +++ b/include/asm-sh64/mmu_context.h @@ -203,6 +203,14 @@ enter_lazy_tlb(struct mm_struct *mm, str { } +static inline void arch_dup_mmap(struct mm_struct *oldmm, + struct mm_struct *mm) +{ +} + +static inline void arch_exit_mmap(struct mm_struct *mm) +{ +} #endif /* __ASSEMBLY__ */ #endif /* __ASM_SH64_MMU_CONTEXT_H */ =================================================================== --- a/include/asm-sparc/mmu_context.h +++ b/include/asm-sparc/mmu_context.h @@ -35,6 +35,14 @@ BTFIXUPDEF_CALL(void, switch_mm, struct /* Activate a new MM instance for the current task. */ #define activate_mm(active_mm, mm) switch_mm((active_mm), (mm), NULL) +static inline void arch_dup_mmap(struct mm_struct *oldmm, + struct mm_struct *mm) +{ +} + +static inline void arch_exit_mmap(struct mm_struct *mm) +{ +} #endif /* !(__ASSEMBLY__) */ #endif /* !(__SPARC_MMU_CONTEXT_H) */ =================================================================== --- a/include/asm-sparc64/mmu_context.h +++ b/include/asm-sparc64/mmu_context.h @@ -147,6 +147,14 @@ static inline void activate_mm(struct mm spin_unlock_irqrestore(&mm->context.lock, flags); } +static inline void arch_dup_mmap(struct mm_struct *oldmm, + struct mm_struct *mm) +{ +} + +static inline void arch_exit_mmap(struct mm_struct *mm) +{ +} #endif /* !(__ASSEMBLY__) */ #endif /* !(__SPARC64_MMU_CONTEXT_H) */ =================================================================== --- a/include/asm-um/mmu_context.h +++ b/include/asm-um/mmu_context.h @@ -74,6 +74,14 @@ static inline void destroy_context(struc CHOOSE_MODE((void) 0, destroy_context_skas(mm)); } +static inline void arch_dup_mmap(struct mm_struct *oldmm, + struct mm_struct *mm) +{ +} + +static inline void arch_exit_mmap(struct mm_struct *mm) +{ +} #endif /* =================================================================== --- a/include/asm-v850/mmu_context.h +++ b/include/asm-v850/mmu_context.h @@ -8,4 +8,12 @@ #define activate_mm(prev,next) ((void)0) #define enter_lazy_tlb(mm,tsk) ((void)0) +static inline void arch_dup_mmap(struct mm_struct *oldmm, + struct mm_struct *mm) +{ +} + +static inline void arch_exit_mmap(struct mm_struct *mm) +{ +} #endif /* __V850_MMU_CONTEXT_H__ */ =================================================================== --- a/include/asm-x86_64/mmu_context.h +++ b/include/asm-x86_64/mmu_context.h @@ -69,5 +69,13 @@ static inline void switch_mm(struct mm_s #define activate_mm(prev, next) \ switch_mm((prev),(next),NULL) +static inline void arch_dup_mmap(struct mm_struct *oldmm, + struct mm_struct *mm) +{ +} + +static inline void arch_exit_mmap(struct mm_struct *mm) +{ +} #endif =================================================================== --- a/include/asm-xtensa/mmu_context.h +++ b/include/asm-xtensa/mmu_context.h @@ -131,4 +131,13 @@ static inline void enter_lazy_tlb(struct } +static inline void arch_dup_mmap(struct mm_struct *oldmm, + struct mm_struct *mm) +{ +} + +static inline void arch_exit_mmap(struct mm_struct *mm) +{ +} + #endif /* _XTENSA_MMU_CONTEXT_H */ =================================================================== --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -374,12 +374,6 @@ struct mm_struct { rwlock_t ioctx_list_lock; struct kioctx *ioctx_list; }; - -#ifndef __HAVE_ARCH_MM_LIFETIME -#define arch_activate_mm(prev, next) do {} while(0) -#define arch_dup_mmap(oldmm, mm) do {} while(0) -#define arch_exit_mmap(mm) do {} while(0) -#endif struct sighand_struct { atomic_t count; =================================================================== --- a/mm/mmap.c +++ b/mm/mmap.c @@ -29,6 +29,7 @@ #include #include #include +#include #ifndef arch_mmap_check #define arch_mmap_check(addr, len, flags) (0) -- - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/