On Thu, Jan 18, 2018 at 08:29:57AM -0800, Christoph Hellwig wrote: > > We could turn ->msg_control/->msg_controllen into another > > iov_iter, but seeing that we never do scatter-gather for those > > IMO that would be a massive overkill. A flag controlling whether > > ->msg_control is kernel or userland pointer would do, especially > > since we already have a flag for "do we want a native or compat > > layout for cmsg" in there. > > While your current hack seems like a nice short term improvement > I think we need an iov_iter or iov_iter-light there in the long run. For one caller in the entire history of the kernel? > Same for ioctl so that we can pass properly typed kernel or user > buffers through without all these set_fs hacks. Umm... Most of the PITA with ioctls is due to compat ones being reformatted for native and fed under set_fs(). I actually have a series dealing with most of such places for net ioctls. Sure, there's also ioctl_by_bdev(), but for those we might be better off exposing the things like ->get_last_session() and its ilk to filesystems that want to deal with cdroms... It's kernel_setsockopt() that is the real PITA...