Lines Matching refs:regs

73 static void warn_bad_vsyscall(const char *level, struct pt_regs *regs,
81 message, regs->ip, regs->cs,
82 regs->sp, regs->ax, regs->si, regs->di);
121 struct pt_regs *regs, unsigned long address)
142 warn_bad_vsyscall(KERN_INFO, regs, "vsyscall read attempt denied -- look up the vsyscall kernel parameter if you need a workaround");
151 WARN_ON_ONCE(address != regs->ip);
154 warn_bad_vsyscall(KERN_INFO, regs,
164 warn_bad_vsyscall(KERN_WARNING, regs,
169 if (get_user(caller, (unsigned long __user *)regs->sp) != 0) {
170 warn_bad_vsyscall(KERN_WARNING, regs,
187 if (!write_ok_or_segv(regs->di, sizeof(struct __kernel_old_timeval)) ||
188 !write_ok_or_segv(regs->si, sizeof(struct timezone))) {
197 if (!write_ok_or_segv(regs->di, sizeof(__kernel_old_time_t))) {
206 if (!write_ok_or_segv(regs->di, sizeof(unsigned)) ||
207 !write_ok_or_segv(regs->si, sizeof(unsigned))) {
217 * Handle seccomp. regs->ip must be the original value.
223 regs->orig_ax = syscall_nr;
224 regs->ax = -ENOSYS;
226 if ((!tmp && regs->orig_ax != syscall_nr) || regs->ip != address) {
227 warn_bad_vsyscall(KERN_DEBUG, regs,
231 regs->orig_ax = -1;
245 /* this decodes regs->di and regs->si on its own */
246 ret = __x64_sys_gettimeofday(regs);
250 /* this decodes regs->di on its own */
251 ret = __x64_sys_time(regs);
255 /* while we could clobber regs->dx, we didn't in the past... */
256 orig_dx = regs->dx;
257 regs->dx = 0;
258 /* this decodes regs->di, regs->si and regs->dx on its own */
259 ret = __x64_sys_getcpu(regs);
260 regs->dx = orig_dx;
269 warn_bad_vsyscall(KERN_INFO, regs,
283 regs->ax = ret;
287 regs->ip = caller;
288 regs->sp += 8;