Re: [RFC PATCH v1 7/9] x86: Add unsafe_copy_from_user()
Yury Norov <[email protected]> Mon, 27 Apr 2026 18:30:16 -0400
| Newsgroups | org.kernel.vger.linux-x25,dev.linux.lists.linux-staging,dev.linux.lists.loongarch,dev.linux.lists.ocfs2-devel,org.freedesktop.lists.amd-gfx,org.freedesktop.lists.dri-devel,org.freedesktop.lists.intel-gfx,org.infradead.lists.linux-arm-kernel,org.infradead.lists.linux-riscv,org.infradead.lists.linux-snps-arc,org.infradead.lists.linux-um,org.kernel.vger.bpf,org.kernel.vger.dmaengine,org.kernel.vger.kvm,org.kernel.vger.linux-alpha,org.kernel.vger.linux-arch,org.kernel.vger.linux-csky,org.kernel.vger.linux-efi,org.kernel.vger.linux-fsdevel,org.kernel.vger.linux-hexagon,org.kernel.vger.linux-kernel,org.kernel.vger.linux-m68k,org.kernel.vger.linux-media,org.kernel.vger.linux-mips,org.kernel.vger.linux-openrisc,org.kernel.vger.linux-parisc,org.kernel.vger.linux-s390,org.kernel.vger.linux-serial,org.kernel.vger.linux-sh,org.kernel.vger.linux-sound,org.kernel.vger.linux-spi,org.kernel.vger.linux-usb,org.kernel.vger.linux-wireless,org.kernel.vger.linux-wpan,org.kernel.vger.netdev,org.kernel.vger.rust-for-linux,org.kernel.vger.sparclinux,org.kvack.linux-mm,org.ozlabs.lists.linuxppc-dev,org.xenproject.lists.xen-devel |
|---|---|
| Message-ID | <ae_jeJLlVWjJ4sOY@yury> |
On Mon, Apr 27, 2026 at 02:52:05PM -0700, Linus Torvalds wrote: > On Mon, 27 Apr 2026 at 12:19, Yury Norov <[email protected]> wrote: > > > > This is what Linus said when added x86 implementation for copy_from_user() > > in c512c69187197: > > Note that some things have happily changed in the six+ years since... > > > That's partly because we have no current users of it, but also partly > > because the copy_from_user() case is slightly different and cannot > > efficiently be implemented in terms of a unsafe_get_user() loop (because > > gcc can't do asm goto with outputs). > > now everybody can do asm goto with outputs. > > Yes, it's disabled on older versions, so it's not *always* available, > but all modern versions do it. And if you care about performance, you > won't be using an old compiler. The minimal GCC version is 8.1, and asm goto with outputs is supported since GCC-11. That would brake the build, if we just switch to using it without "CC_IS_GCC && (GCC_VERSION >= 110100)" guard. Is it worth to maintain 2 version of the function? I don't know... Thanks, Yury