restart_block
current->restart_block.fn = do_no_restart_syscall;
current->restart_block.fn = do_no_restart_syscall;
current->restart_block.fn = do_no_restart_syscall;
current->restart_block.fn = do_no_restart_syscall;
current->restart_block.fn = do_no_restart_syscall;
current->restart_block.fn = do_no_restart_syscall;
current->restart_block.fn = do_no_restart_syscall;
struct restart_block restart_block;
.restart_block = { \
current->restart_block.fn = do_no_restart_syscall;
current->restart_block.fn = do_no_restart_syscall;
current->restart_block.fn = do_no_restart_syscall;
current->restart_block.fn = do_no_restart_syscall;
current->restart_block.fn = do_no_restart_syscall;
current->restart_block.fn = do_no_restart_syscall;
current->restart_block.fn = do_no_restart_syscall;
current->restart_block.fn = do_no_restart_syscall;
current->restart_block.fn = do_no_restart_syscall;
current->restart_block.fn = do_no_restart_syscall;
current->restart_block.fn = do_no_restart_syscall;
current->restart_block.fn = do_no_restart_syscall;
current->restart_block.fn = do_no_restart_syscall;
current->restart_block.fn = do_no_restart_syscall;
current->restart_block.fn = do_no_restart_syscall;
current->restart_block.fn = do_no_restart_syscall;
p->restart_block.arch_data = 1;
current->restart_block.fn = do_no_restart_syscall;
current->restart_block.arch_data = regs->psw.addr;
if (nr == __NR_restart_syscall && !(current->restart_block.arch_data & 1)) {
regs->psw.addr = current->restart_block.arch_data;
current->restart_block.arch_data = 1;
current->restart_block.fn = do_no_restart_syscall;
current->restart_block.fn = do_no_restart_syscall;
current->restart_block.fn = do_no_restart_syscall;
current->restart_block.fn = do_no_restart_syscall;
current->restart_block.fn = do_no_restart_syscall;
current->restart_block.fn = do_no_restart_syscall;
if (current->restart_block.arch_data & TS_COMPAT)
current->restart_block.fn = do_no_restart_syscall;
current->restart_block.fn = do_no_restart_syscall;
current->restart_block.fn = do_no_restart_syscall;
current->restart_block.fn = do_no_restart_syscall;
static long do_restart_poll(struct restart_block *restart_block)
struct pollfd __user *ufds = restart_block->poll.ufds;
int nfds = restart_block->poll.nfds;
if (restart_block->poll.has_timeout)
to = &restart_block->poll.end_time;
ret = set_restart_fn(restart_block, do_restart_poll);
struct restart_block *restart_block;
restart_block = ¤t->restart_block;
restart_block->poll.ufds = ufds;
restart_block->poll.nfds = nfds;
restart_block->poll.end_time = end_time;
restart_block->poll.has_timeout = 1;
restart_block->poll.has_timeout = 0;
ret = set_restart_fn(restart_block, do_restart_poll);
extern int nanosleep_copyout(struct restart_block *, struct timespec64 *);
long (*fn)(struct restart_block *);
extern long do_no_restart_syscall(struct restart_block *parm);
struct restart_block restart_block;
static inline long set_restart_fn(struct restart_block *restart,
long (*fn)(struct restart_block *))
.restart_block = {
static long futex_wait_restart(struct restart_block *restart);
struct restart_block *restart;
restart = ¤t->restart_block;
static long futex_wait_restart(struct restart_block *restart)
struct restart_block *restart = ¤t->restart_block;
long do_no_restart_syscall(struct restart_block *param)
struct restart_block *restart;
restart = ¤t->restart_block;
static long __sched alarm_timer_nsleep_restart(struct restart_block *restart)
struct restart_block *restart = ¤t->restart_block;
int nanosleep_copyout(struct restart_block *restart, struct timespec64 *ts)
struct restart_block *restart;
restart = ¤t->restart_block;
static long __sched hrtimer_nanosleep_restart(struct restart_block *restart)
struct restart_block *restart;
restart = ¤t->restart_block;
current->restart_block.fn = do_no_restart_syscall;
current->restart_block.nanosleep.type = rmtp ? TT_NATIVE : TT_NONE;
current->restart_block.nanosleep.rmtp = rmtp;
current->restart_block.fn = do_no_restart_syscall;
current->restart_block.nanosleep.type = rmtp ? TT_COMPAT : TT_NONE;
current->restart_block.nanosleep.compat_rmtp = rmtp;
struct restart_block *restart;
restart = ¤t->restart_block;
static long posix_cpu_nsleep_restart(struct restart_block *restart_block);
struct restart_block *restart_block = ¤t->restart_block;
restart_block->nanosleep.clockid = which_clock;
set_restart_fn(restart_block, posix_cpu_nsleep_restart);
static long posix_cpu_nsleep_restart(struct restart_block *restart_block)
clockid_t which_clock = restart_block->nanosleep.clockid;
t = ktime_to_timespec64(restart_block->nanosleep.expires);
current->restart_block.fn = do_no_restart_syscall;
current->restart_block.nanosleep.type = rmtp ? TT_NATIVE : TT_NONE;
current->restart_block.nanosleep.rmtp = rmtp;
current->restart_block.fn = do_no_restart_syscall;
current->restart_block.nanosleep.type = rmtp ? TT_COMPAT : TT_NONE;
current->restart_block.nanosleep.compat_rmtp = rmtp;
current->restart_block.fn = do_no_restart_syscall;
current->restart_block.nanosleep.type = rmtp ? TT_NATIVE : TT_NONE;
current->restart_block.nanosleep.rmtp = rmtp;
current->restart_block.fn = do_no_restart_syscall;
current->restart_block.nanosleep.type = rmtp ? TT_COMPAT : TT_NONE;
current->restart_block.nanosleep.compat_rmtp = rmtp;