1/* 2 * Copyright (C) 2002 Jeff Dike (jdike@karaya.com) 3 * Licensed under the GPL 4 */ 5 6#include "linux/kernel.h" 7#include "asm/current.h" 8#include "asm/page.h" 9#include "asm/signal.h" 10#include "asm/ptrace.h" 11#include "asm/uaccess.h" 12#include "asm/mmu_context.h" 13#include "tlb.h" 14#include "skas.h" 15#include "um_mmu.h" 16#include "os.h" 17 18void flush_thread_skas(void) 19{ 20 void *data = NULL; 21 unsigned long end = proc_mm ? task_size : CONFIG_STUB_START; 22 int ret; 23 24 ret = unmap(¤t->mm->context.skas.id, 0, end, 1, &data); 25 if(ret){ 26 printk("flush_thread_skas - clearing address space failed, " 27 "err = %d\n", ret); 28 force_sig(SIGKILL, current); 29 } 30 31 switch_mm_skas(¤t->mm->context.skas.id); 32} 33 34void start_thread_skas(struct pt_regs *regs, unsigned long eip, 35 unsigned long esp) 36{ 37 set_fs(USER_DS); 38 PT_REGS_IP(regs) = eip; 39 PT_REGS_SP(regs) = esp; 40} 41