diff options
Diffstat (limited to 'arch/parisc')
-rw-r--r-- | arch/parisc/include/asm/tlbflush.h | 5 | ||||
-rw-r--r-- | arch/parisc/kernel/signal.c | 2 |
2 files changed, 5 insertions, 2 deletions
diff --git a/arch/parisc/include/asm/tlbflush.h b/arch/parisc/include/asm/tlbflush.h index b72ec66db699..1f6fd4fc05b9 100644 --- a/arch/parisc/include/asm/tlbflush.h +++ b/arch/parisc/include/asm/tlbflush.h | |||
@@ -44,9 +44,12 @@ static inline void flush_tlb_mm(struct mm_struct *mm) | |||
44 | { | 44 | { |
45 | BUG_ON(mm == &init_mm); /* Should never happen */ | 45 | BUG_ON(mm == &init_mm); /* Should never happen */ |
46 | 46 | ||
47 | #ifdef CONFIG_SMP | 47 | #if 1 || defined(CONFIG_SMP) |
48 | flush_tlb_all(); | 48 | flush_tlb_all(); |
49 | #else | 49 | #else |
50 | /* FIXME: currently broken, causing space id and protection ids | ||
51 | * to go out of sync, resulting in faults on userspace accesses. | ||
52 | */ | ||
50 | if (mm) { | 53 | if (mm) { |
51 | if (mm->context != 0) | 54 | if (mm->context != 0) |
52 | free_sid(mm->context); | 55 | free_sid(mm->context); |
diff --git a/arch/parisc/kernel/signal.c b/arch/parisc/kernel/signal.c index 06213d1d6d95..f82544225e8e 100644 --- a/arch/parisc/kernel/signal.c +++ b/arch/parisc/kernel/signal.c | |||
@@ -182,7 +182,7 @@ give_sigsegv: | |||
182 | si.si_errno = 0; | 182 | si.si_errno = 0; |
183 | si.si_code = SI_KERNEL; | 183 | si.si_code = SI_KERNEL; |
184 | si.si_pid = task_pid_vnr(current); | 184 | si.si_pid = task_pid_vnr(current); |
185 | si.si_uid = current->uid; | 185 | si.si_uid = current_uid(); |
186 | si.si_addr = &frame->uc; | 186 | si.si_addr = &frame->uc; |
187 | force_sig_info(SIGSEGV, &si, current); | 187 | force_sig_info(SIGSEGV, &si, current); |
188 | return; | 188 | return; |