[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20231003101717.f57af0208431dba6dac0357e@linux-foundation.org>
Date: Tue, 3 Oct 2023 10:17:17 -0700
From: Andrew Morton <akpm@...ux-foundation.org>
To: "Arnd Bergmann" <arnd@...db.de>
Cc: "Gregory Price" <gourry.memverge@...il.com>, linux-mm@...ck.org,
linux-kernel@...r.kernel.org,
"Gregory Price" <gregory.price@...verge.com>
Subject: Re: [PATCH] mm/migrate: fix do_pages_move for compat pointers
On Tue, 03 Oct 2023 19:01:45 +0200 "Arnd Bergmann" <arnd@...db.de> wrote:
> On Tue, Oct 3, 2023, at 18:57, Arnd Bergmann wrote:
> > On Tue, Oct 3, 2023, at 18:49, Andrew Morton wrote:
> >> On Tue, 3 Oct 2023 10:48:56 -0400 Gregory Price
> >> <gourry.memverge@...il.com> wrote:
> >>
> >>> do_pages_move does not handle compat pointers for the page list.
> >>> correctly. Add in_compat_syscall check and appropriate get_user
> >>> fetch when iterating the page list.
> >>
> >> What are the userspace visible effects of this change?
> >
> > It makes the syscall in compat mode (32-bit userspace, 64-bit kernel)
> > work the same way as the native 32-bit syscall again, restoring the
> > behavior before my broken commit 5b1b561ba73c ("mm: simplify
> > compat_sys_move_pages").
>
> More specifically, my patch moved the parsing of the 'pages'
> array from the main entry point into do_pages_stat(), which left
> the syscall working correctly for the 'stat' operation (nodes = NULL),
> while the 'move' operation (nodes != NULL) is now missing
> the conversion and interprets 'pages' as an array of 64-bit
> pointers instead of the intended 32-bit userspace pointers.
>
Thanks. So is a cc:stable warranted?
Powered by blists - more mailing lists