summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@ppc970.osdl.org>2004-09-02 17:54:12 -0700
committerLinus Torvalds <torvalds@ppc970.osdl.org>2004-09-02 17:54:12 -0700
commit25c2ccd7a712d2af8f4f40ef588ac2725494f449 (patch)
treebaad3088d2f6027a80efdb2183015100fd67b43f /include
parent3411df4ee64e032426f09392526ca74179aceee5 (diff)
parent4b0be4f75f903566f4058de03be7c8a37d0dd521 (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.h39
-rw-r--r--include/asm-ia64/page.h7
-rw-r--r--include/asm-ia64/sal.h10
-rw-r--r--include/asm-ia64/tlb.h1
-rw-r--r--include/asm-ia64/tlbflush.h7
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);