diff options
| author | Linus Torvalds <torvalds@ppc970.osdl.org> | 2004-09-02 17:54:12 -0700 |
|---|---|---|
| committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2004-09-02 17:54:12 -0700 |
| commit | 25c2ccd7a712d2af8f4f40ef588ac2725494f449 (patch) | |
| tree | baad3088d2f6027a80efdb2183015100fd67b43f /include | |
| parent | 3411df4ee64e032426f09392526ca74179aceee5 (diff) | |
| parent | 4b0be4f75f903566f4058de03be7c8a37d0dd521 (diff) | |
Merge http://lia64.bkbits.net/linux-ia64-release-2.6.9
into ppc970.osdl.org:/home/torvalds/v2.6/linux
Diffstat (limited to 'include')
| -rw-r--r-- | include/asm-ia64/mmu_context.h | 39 | ||||
| -rw-r--r-- | include/asm-ia64/page.h | 7 | ||||
| -rw-r--r-- | include/asm-ia64/sal.h | 10 | ||||
| -rw-r--r-- | include/asm-ia64/tlb.h | 1 | ||||
| -rw-r--r-- | include/asm-ia64/tlbflush.h | 7 |
5 files changed, 21 insertions, 43 deletions
diff --git a/include/asm-ia64/mmu_context.h b/include/asm-ia64/mmu_context.h index 51558c0f0243..04ec302e9aa1 100644 --- a/include/asm-ia64/mmu_context.h +++ b/include/asm-ia64/mmu_context.h @@ -28,36 +28,6 @@ #include <asm/processor.h> -#define MMU_CONTEXT_DEBUG 0 - -#if MMU_CONTEXT_DEBUG - -#include <ia64intrin.h> - -extern struct mmu_trace_entry { - char op; - u8 cpu; - u32 context; - void *mm; -} mmu_tbuf[1024]; - -extern volatile int mmu_tbuf_index; - -# define MMU_TRACE(_op,_cpu,_mm,_ctx) \ -do { \ - int i = __sync_fetch_and_add(&mmu_tbuf_index, 1) % ARRAY_SIZE(mmu_tbuf); \ - struct mmu_trace_entry e; \ - e.op = (_op); \ - e.cpu = (_cpu); \ - e.mm = (_mm); \ - e.context = (_ctx); \ - mmu_tbuf[i] = e; \ -} while (0) - -#else -# define MMU_TRACE(op,cpu,mm,ctx) do { ; } while (0) -#endif - struct ia64_ctx { spinlock_t lock; unsigned int next; /* next context number to use */ @@ -123,7 +93,6 @@ get_mmu_context (struct mm_struct *mm) static inline int init_new_context (struct task_struct *p, struct mm_struct *mm) { - MMU_TRACE('N', smp_processor_id(), mm, 0); mm->context = 0; return 0; } @@ -132,7 +101,6 @@ static inline void destroy_context (struct mm_struct *mm) { /* Nothing to do. */ - MMU_TRACE('D', smp_processor_id(), mm, mm->context); } static inline void @@ -171,19 +139,14 @@ activate_context (struct mm_struct *mm) do { context = get_mmu_context(mm); - MMU_TRACE('A', smp_processor_id(), mm, context); if (!cpu_isset(smp_processor_id(), mm->cpu_vm_mask)) cpu_set(smp_processor_id(), mm->cpu_vm_mask); reload_context(context); - MMU_TRACE('a', smp_processor_id(), mm, context); /* in the unlikely event of a TLB-flush by another thread, redo the load: */ } while (unlikely(context != mm->context)); } -#define deactivate_mm(tsk,mm) \ -do { \ - MMU_TRACE('d', smp_processor_id(), mm, mm->context); \ -} while (0) +#define deactivate_mm(tsk,mm) do { } while (0) /* * Switch from address space PREV to address space NEXT. diff --git a/include/asm-ia64/page.h b/include/asm-ia64/page.h index 315a8631068f..b5b278f584d2 100644 --- a/include/asm-ia64/page.h +++ b/include/asm-ia64/page.h @@ -84,6 +84,13 @@ extern int ia64_pfn_valid (unsigned long pfn); #endif #ifndef CONFIG_DISCONTIGMEM +# ifdef CONFIG_VIRTUAL_MEM_MAP +extern struct page *vmem_map; +# define pfn_valid(pfn) (((pfn) < max_mapnr) && ia64_pfn_valid(pfn)) +# define page_to_pfn(page) ((unsigned long) (page - vmem_map)) +# define pfn_to_page(pfn) (vmem_map + (pfn)) +# endif +#else /* !CONFIG_VIRTUAL_MEM_MAP */ #define pfn_valid(pfn) (((pfn) < max_mapnr) && ia64_pfn_valid(pfn)) #define page_to_pfn(page) ((unsigned long) (page - mem_map)) #define pfn_to_page(pfn) (mem_map + (pfn)) diff --git a/include/asm-ia64/sal.h b/include/asm-ia64/sal.h index 6ff4a4e83b4e..f468596f495e 100644 --- a/include/asm-ia64/sal.h +++ b/include/asm-ia64/sal.h @@ -819,6 +819,16 @@ struct sal_ret_values { long r8; long r9; long r10; long r11; }; +#define IA64_SAL_OEMFUNC_MIN 0x02000000 +#define IA64_SAL_OEMFUNC_MAX 0x03ffffff + +extern int ia64_sal_oemcall(struct ia64_sal_retval *, u64, u64, u64, u64, u64, + u64, u64, u64); +extern int ia64_sal_oemcall_nolock(struct ia64_sal_retval *, u64, u64, u64, + u64, u64, u64, u64, u64); +extern int ia64_sal_oemcall_reentrant(struct ia64_sal_retval *, u64, u64, u64, + u64, u64, u64, u64, u64); + #endif /* __ASSEMBLY__ */ #endif /* _ASM_IA64_SAL_H */ diff --git a/include/asm-ia64/tlb.h b/include/asm-ia64/tlb.h index 6019e2376b5c..aefe2e87b41c 100644 --- a/include/asm-ia64/tlb.h +++ b/include/asm-ia64/tlb.h @@ -39,6 +39,7 @@ */ #include <linux/config.h> #include <linux/mm.h> +#include <linux/pagemap.h> #include <linux/swap.h> #include <asm/pgalloc.h> diff --git a/include/asm-ia64/tlbflush.h b/include/asm-ia64/tlbflush.h index 049c69845b23..b65c62702724 100644 --- a/include/asm-ia64/tlbflush.h +++ b/include/asm-ia64/tlbflush.h @@ -48,22 +48,19 @@ local_finish_flush_tlb_mm (struct mm_struct *mm) static inline void flush_tlb_mm (struct mm_struct *mm) { - MMU_TRACE('F', smp_processor_id(), mm, mm->context); if (!mm) - goto out; + return; mm->context = 0; if (atomic_read(&mm->mm_users) == 0) - goto out; /* happens as a result of exit_mmap() */ + return; /* happens as a result of exit_mmap() */ #ifdef CONFIG_SMP smp_flush_tlb_mm(mm); #else local_finish_flush_tlb_mm(mm); #endif - out: - MMU_TRACE('f', smp_processor_id(), mm, mm->context); } extern void flush_tlb_range (struct vm_area_struct *vma, unsigned long start, unsigned long end); |
