diff options
author | Claudio Imbrenda <imbrenda@linux.ibm.com> | 2023-04-28 12:27:53 +0300 |
---|---|---|
committer | Claudio Imbrenda <imbrenda@linux.ibm.com> | 2023-05-04 19:26:27 +0300 |
commit | c148dc8e2fa403be501612ee409db866eeed35c0 (patch) | |
tree | 7f2c58e528c596849603797177ba515c69bbacf3 /tools/perf/scripts/python/flamegraph.py | |
parent | 292a7d6fca33df70ca4b8e9b0d0e74adf87582dc (diff) | |
download | linux-c148dc8e2fa403be501612ee409db866eeed35c0.tar.xz |
KVM: s390: fix race in gmap_make_secure()
Fix a potential race in gmap_make_secure() and remove the last user of
follow_page() without FOLL_GET.
The old code is locking something it doesn't have a reference to, and
as explained by Jason and David in this discussion:
https://lore.kernel.org/linux-mm/Y9J4P%2FRNvY1Ztn0Q@nvidia.com/
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.
There is also another race with the FOLL_WRITE, which could race
between the follow_page() and the get_locked_pte().
The main point is to remove the last use of follow_page() without
FOLL_GET or FOLL_PIN, removing the races can be considered a nice
bonus.
Link: https://lore.kernel.org/linux-mm/Y9J4P%2FRNvY1Ztn0Q@nvidia.com/
Suggested-by: Jason Gunthorpe <jgg@nvidia.com>
Fixes: 214d9bbcd3a6 ("s390/mm: provide memory management functions for protected KVM guests")
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>
Signed-off-by: Claudio Imbrenda <imbrenda@linux.ibm.com>
Message-Id: <20230428092753.27913-2-imbrenda@linux.ibm.com>
Diffstat (limited to 'tools/perf/scripts/python/flamegraph.py')
0 files changed, 0 insertions, 0 deletions