Commit bd4370a0 authored by Linus Torvalds's avatar Linus Torvalds

Merge master.kernel.org:/home/davem/BK/sparc-2.5

into home.transmeta.com:/home/torvalds/v2.5/linux
parents 4c7f178f 925aba56
...@@ -43,7 +43,7 @@ do { unsigned int *dest = &(__elf_regs[0]); \ ...@@ -43,7 +43,7 @@ do { unsigned int *dest = &(__elf_regs[0]); \
dest[34] = (unsigned int) src->tnpc; \ dest[34] = (unsigned int) src->tnpc; \
dest[35] = src->y; \ dest[35] = src->y; \
dest[36] = dest[37] = 0; /* XXX */ \ dest[36] = dest[37] = 0; /* XXX */ \
} while(0) } while(0);
typedef struct { typedef struct {
union { union {
......
...@@ -424,10 +424,10 @@ void flush_thread(void) ...@@ -424,10 +424,10 @@ void flush_thread(void)
struct thread_info *t = current_thread_info(); struct thread_info *t = current_thread_info();
if (t->task->mm) { if (t->task->mm) {
unsigned long pgd_cache = 0UL;
if (test_thread_flag(TIF_32BIT)) { if (test_thread_flag(TIF_32BIT)) {
struct mm_struct *mm = t->task->mm; struct mm_struct *mm = t->task->mm;
pgd_t *pgd0 = &mm->pgd[0]; pgd_t *pgd0 = &mm->pgd[0];
unsigned long pgd_cache;
if (pgd_none(*pgd0)) { if (pgd_none(*pgd0)) {
pmd_t *page = pmd_alloc_one_fast(NULL, 0); pmd_t *page = pmd_alloc_one_fast(NULL, 0);
...@@ -436,13 +436,13 @@ void flush_thread(void) ...@@ -436,13 +436,13 @@ void flush_thread(void)
pgd_set(pgd0, page); pgd_set(pgd0, page);
} }
pgd_cache = pgd_val(*pgd0) << 11UL; pgd_cache = pgd_val(*pgd0) << 11UL;
__asm__ __volatile__("stxa %0, [%1] %2\n\t"
"membar #Sync"
: /* no outputs */
: "r" (pgd_cache),
"r" (TSB_REG),
"i" (ASI_DMMU));
} }
__asm__ __volatile__("stxa %0, [%1] %2\n\t"
"membar #Sync"
: /* no outputs */
: "r" (pgd_cache),
"r" (TSB_REG),
"i" (ASI_DMMU));
} }
set_thread_wsaved(0); set_thread_wsaved(0);
......
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
*/ */
#include <linux/sched.h> #include <linux/sched.h>
#include <linux/errno.h>
/* /*
* Atomically update sem->count. * Atomically update sem->count.
......
...@@ -10,6 +10,7 @@ ...@@ -10,6 +10,7 @@
#include <linux/types.h> #include <linux/types.h>
#include <linux/sched.h> #include <linux/sched.h>
#include <linux/errno.h>
#include <asm/fpumacro.h> #include <asm/fpumacro.h>
#include <asm/ptrace.h> #include <asm/ptrace.h>
......
...@@ -48,6 +48,8 @@ extern void flush_cache_range(struct vm_area_struct *, unsigned long, unsigned l ...@@ -48,6 +48,8 @@ extern void flush_cache_range(struct vm_area_struct *, unsigned long, unsigned l
flush_cache_mm((vma)->vm_mm) flush_cache_mm((vma)->vm_mm)
struct page;
/* /*
* On spitfire, the icache doesn't snoop local stores and we don't * On spitfire, the icache doesn't snoop local stores and we don't
* use block commit stores (which invalidate icache lines) during * use block commit stores (which invalidate icache lines) during
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment