Lines Matching refs:fi
137 struct faultinfo *fi = UPT_FAULTINFO(regs); in show_segv_info() local
147 tsk->comm, task_pid_nr(tsk), FAULT_ADDRESS(*fi), in show_segv_info()
149 fi->error_code); in show_segv_info()
155 static void bad_segv(struct faultinfo fi, unsigned long ip) in bad_segv() argument
157 current->thread.arch.faultinfo = fi; in bad_segv()
158 force_sig_fault(SIGSEGV, SEGV_ACCERR, (void __user *) FAULT_ADDRESS(fi)); in bad_segv()
185 struct faultinfo * fi = UPT_FAULTINFO(regs); in segv_handler() local
187 if (UPT_IS_USER(regs) && !SEGV_IS_FIXABLE(fi)) { in segv_handler()
189 bad_segv(*fi, UPT_IP(regs)); in segv_handler()
192 segv(*fi, UPT_IP(regs), UPT_IS_USER(regs), regs); in segv_handler()
201 unsigned long segv(struct faultinfo fi, unsigned long ip, int is_user, in segv() argument
207 int is_write = FAULT_WRITE(fi); in segv()
208 unsigned long address = FAULT_ADDRESS(fi); in segv()
227 if (SEGV_IS_FIXABLE(&fi)) in segv()
261 current->thread.arch.faultinfo = fi; in segv()
265 current->thread.arch.faultinfo = fi; in segv()
294 struct faultinfo *fi = UPT_FAULTINFO(regs); in relay_signal() local
295 current->thread.arch.faultinfo = *fi; in relay_signal()
296 force_sig_fault(sig, code, (void __user *)FAULT_ADDRESS(*fi)); in relay_signal()