On Thu, 27 Apr 2023 12:53:04 +0200 Heiko Carstens <hca@xxxxxxxxxxxxx> wrote: > On Wed, Apr 26, 2023 at 03:48:34PM +0200, Claudio Imbrenda wrote: > > This patch fixes a potential race in gmap_make_secure and removes the > > last user of follow_page without FOLL_GET. > > > > Signed-off-by: Claudio Imbrenda <imbrenda@xxxxxxxxxxxxx> > > Suggested-by: Jason Gunthorpe <jgg@xxxxxxxxxx> > > Fixes: 214d9bbcd3a6 ("s390/mm: provide memory management functions for protected KVM guests") > > --- > > arch/s390/kernel/uv.c | 32 +++++++++++--------------------- > > 1 file changed, 11 insertions(+), 21 deletions(-) > > It would be helpful if this would be a bit more descriptive. "Fix > race" is not very helpful :) > > What race does this fix? > When can this happen? > What are the consequences if the race window is being hit? We are locking something we don't have a reference to, and as explained by Jason and David in this thread <Y9J4P/RNvY1Ztn0Q@xxxxxxxxxx> it can lead to all kind of bad things, including the page getting unmapped (MADV_DONTNEED), freed, reallocated as a larger folio and the unlock_page() would target the wrong bit. Also there is another race with the FOLL_WRITE, which could race between the follow_page and the get_locked_pte. The main point of the patch is to remove the last follow_page without FOLL_GET or FOLL_PIN, removing the races can be considered a nice bonus.