On Thu, Jan 18, 2018 at 8:38 AM, Christoph Hellwig <h...@infradead.org> wrote: > > > But there are about ~100 set_fs() calls in generic code, and some of > > those really are pretty fundamental. Doing things like "kernel_read()" > > without set_fs() is basically impossible. > > Not if we move to iov_iter or iov_iter-like behavior for all reads > and writes.
Not going to happen. Really. We have how many tens of thousands of drivers again, all doing "copy_to_user()". And the fact is, set_fs() really isn't even a problem for this. Never really has been. From a security standpoint, it would actually be *much* worse if we made those ten thousand places do "if (kernel_flag) memcpy() else copy_to_user()". We've had some issues with set_fs() being abused in interesting ways. But "kernel_read()" and friends is not it. Linus