On Fri, May 01, 2020 at 09:26:39PM +0200, Christoph Hellwig wrote: > On Fri, May 01, 2020 at 01:50:49PM +0100, Al Viro wrote: > > On Fri, May 01, 2020 at 12:41:05PM +0200, Christoph Hellwig wrote: > > > Currently copy_string_kernel is just a wrapper around copy_strings that > > > simplifies the calling conventions and uses set_fs to allow passing a > > > kernel pointer. But due to the fact the we only need to handle a single > > > kernel argument pointer, the logic can be sigificantly simplified while > > > getting rid of the set_fs. > > > > I can live with that... BTW, why do we bother with flush_cache_page() (by > > way of get_arg_page()) here and in copy_strings()? How could *anything* > > have accessed that page by its address in new mm - what are we trying to > > flush here? > > s/get_arg_page/flush_arg_page/ ? of course - sorry... > No idea, what the use case is, but this comes from: > > commit b6a2fea39318e43fee84fa7b0b90d68bed92d2ba > Author: Ollie Wild <aaw@xxxxxxxxxx> > Date: Thu Jul 19 01:48:16 2007 -0700 > > mm: variable length argument support I know. And it comes with no explanations in there ;-/ AFAICS, back then the situation hadn't been any different - mm we are inserting the arg pages into is not active, so there shouldn't be anything in anyone's cache for that virtual address in that vma...