Re: get rid of the address_space override in setsockopt
'Christoph Hellwig' <[email protected]>
| Newsgroups | org.kernel.vger.dccp,dev.linux.lists.bridge,dev.linux.lists.mptcp,org.kernel.vger.bpf,org.kernel.vger.linux-bluetooth,org.kernel.vger.linux-can,org.kernel.vger.linux-crypto,org.kernel.vger.linux-hams,org.kernel.vger.linux-kernel,org.kernel.vger.linux-s390,org.kernel.vger.linux-sctp,org.kernel.vger.linux-wpan,org.kernel.vger.linux-x25,org.kernel.vger.lvs-devel,org.kernel.vger.netdev,org.kernel.vger.netfilter-devel |
|---|---|
| Message-ID | <[email protected]> |
On Tue, Jul 21, 2020 at 10:26:58AM +0000, David Laight wrote: > From: Christoph Hellwig > > Sent: 20 July 2020 13:47 > > > > setsockopt is the last place in architecture-independ code that still > > uses set_fs to force the uaccess routines to operate on kernel pointers. > > > > This series adds a new sockptr_t type that can contained either a kernel > > or user pointer, and which has accessors that do the right thing, and > > then uses it for setsockopt, starting by refactoring some low-level > > helpers and moving them over to it before finally doing the main > > setsockopt method. > > Another 'gotcha' ... > > On an least some architectures (possibly only m68k) IIRC all structures > are actually passed by reference. > (This used to be true for sparc - but it may have changed in the > last 30 years.) Tough luck for ABIs wit suboptimal calling conventions. At least we can do the right thing for those that do not have the problem.