select: Convert to scoped user access
Replace the open coded implementation with the scoped user access guard. No functional change intended. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Signed-off-by: Ingo Molnar <mingo@kernel.org> Reviewed-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> Link: https://patch.msgid.link/20251027083745.862419776@linutronix.depull/1354/merge
parent
e02718c986
commit
3ce17e6909
12
fs/select.c
12
fs/select.c
|
|
@ -776,17 +776,13 @@ static inline int get_sigset_argpack(struct sigset_argpack *to,
|
||||||
{
|
{
|
||||||
// the path is hot enough for overhead of copy_from_user() to matter
|
// the path is hot enough for overhead of copy_from_user() to matter
|
||||||
if (from) {
|
if (from) {
|
||||||
if (can_do_masked_user_access())
|
scoped_user_read_access(from, Efault) {
|
||||||
from = masked_user_access_begin(from);
|
unsafe_get_user(to->p, &from->p, Efault);
|
||||||
else if (!user_read_access_begin(from, sizeof(*from)))
|
unsafe_get_user(to->size, &from->size, Efault);
|
||||||
return -EFAULT;
|
}
|
||||||
unsafe_get_user(to->p, &from->p, Efault);
|
|
||||||
unsafe_get_user(to->size, &from->size, Efault);
|
|
||||||
user_read_access_end();
|
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
Efault:
|
Efault:
|
||||||
user_read_access_end();
|
|
||||||
return -EFAULT;
|
return -EFAULT;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue