Name

syscall_rollback — roll back registers after an aborted system call

Synopsis

void syscall_rollback (struct task_struct * task,
 struct pt_regs * regs);
 

Arguments

task

task of interest, must be in system call exit tracing

regs

task_pt_regs of task

Description

It's only valid to call this when task is stopped for system call exit tracing (due to TIF_SYSCALL_TRACE or TIF_SYSCALL_AUDIT), after tracehook_report_syscall_entry returned nonzero to prevent the system call from taking place.

This rolls back the register state in regs so it's as if the system call instruction was a no-op. The registers containing the system call number and arguments are as they were before the system call instruction. This may not be the same as what the register state looked like at system call entry tracing.