Lines Matching refs:regs

69 static void warn_bad_vsyscall(const char *level, struct pt_regs *regs,  in warn_bad_vsyscall()  argument
77 message, regs->ip, regs->cs, in warn_bad_vsyscall()
78 regs->sp, regs->ax, regs->si, regs->di); in warn_bad_vsyscall()
123 bool emulate_vsyscall(struct pt_regs *regs, unsigned long address) in emulate_vsyscall() argument
136 WARN_ON_ONCE(address != regs->ip); in emulate_vsyscall()
139 warn_bad_vsyscall(KERN_INFO, regs, in emulate_vsyscall()
149 warn_bad_vsyscall(KERN_WARNING, regs, in emulate_vsyscall()
154 if (get_user(caller, (unsigned long __user *)regs->sp) != 0) { in emulate_vsyscall()
155 warn_bad_vsyscall(KERN_WARNING, regs, in emulate_vsyscall()
172 if (!write_ok_or_segv(regs->di, sizeof(struct timeval)) || in emulate_vsyscall()
173 !write_ok_or_segv(regs->si, sizeof(struct timezone))) { in emulate_vsyscall()
182 if (!write_ok_or_segv(regs->di, sizeof(time_t))) { in emulate_vsyscall()
191 if (!write_ok_or_segv(regs->di, sizeof(unsigned)) || in emulate_vsyscall()
192 !write_ok_or_segv(regs->si, sizeof(unsigned))) { in emulate_vsyscall()
208 regs->orig_ax = syscall_nr; in emulate_vsyscall()
209 regs->ax = -ENOSYS; in emulate_vsyscall()
211 if ((!tmp && regs->orig_ax != syscall_nr) || regs->ip != address) { in emulate_vsyscall()
212 warn_bad_vsyscall(KERN_DEBUG, regs, in emulate_vsyscall()
216 regs->orig_ax = -1; in emulate_vsyscall()
231 (struct timeval __user *)regs->di, in emulate_vsyscall()
232 (struct timezone __user *)regs->si); in emulate_vsyscall()
236 ret = sys_time((time_t __user *)regs->di); in emulate_vsyscall()
240 ret = sys_getcpu((unsigned __user *)regs->di, in emulate_vsyscall()
241 (unsigned __user *)regs->si, in emulate_vsyscall()
251 warn_bad_vsyscall(KERN_INFO, regs, in emulate_vsyscall()
265 regs->ax = ret; in emulate_vsyscall()
269 regs->ip = caller; in emulate_vsyscall()
270 regs->sp += 8; in emulate_vsyscall()