Commit 1954c4f01220 for kernel

commit 1954c4f012206147c34acda8da04f827aa7d3ee3
Author: Eric Dumazet <edumazet@google.com>
Date:   Sat Mar 7 20:07:15 2026 +0000

    eventpoll: Convert epoll_put_uevent() to scoped user access

    Saves two function calls, and one stac/clac pair.

    stac/clac is rather expensive on older cpus like Zen 2.

    A synthetic network stress test gives a ~1.5% increase of pps
    on AMD Zen 2.

    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Cc: Christophe Leroy <christophe.leroy@csgroup.eu>
    Cc: Dave Hansen <dave.hansen@intel.com>
    Cc: Kuniyuki Iwashima <kuniyu@google.com>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

diff --git a/include/linux/eventpoll.h b/include/linux/eventpoll.h
index ccb478eb174b..ea9ca0e4172a 100644
--- a/include/linux/eventpoll.h
+++ b/include/linux/eventpoll.h
@@ -82,11 +82,14 @@ static inline struct epoll_event __user *
 epoll_put_uevent(__poll_t revents, __u64 data,
 		 struct epoll_event __user *uevent)
 {
-	if (__put_user(revents, &uevent->events) ||
-	    __put_user(data, &uevent->data))
-		return NULL;
-
+	scoped_user_write_access_size(uevent, sizeof(*uevent), efault) {
+		unsafe_put_user(revents, &uevent->events, efault);
+		unsafe_put_user(data, &uevent->data, efault);
+	}
 	return uevent+1;
+
+efault:
+	return NULL;
 }
 #endif