https://github.com/torvalds/linux
Revision d172b1a3bd065dd89234eac547fc62cf80681631 authored by Nadav Amit on 11 July 2022, 16:59:06 UTC, committed by akpm on 27 July 2022, 01:25:01 UTC
Commit 824ddc601adc ("userfaultfd: provide unmasked address on page-fault") was introduced to fix an old bug, in which the offset in the address of a page-fault was masked. Concerns were raised - although were never backed by actual code - that some userspace code might break because the bug has been around for quite a while. To address these concerns a new flag was introduced, and only when this flag is set by the user, userfaultfd provides the exact address of the page-fault. The commit however had a bug, and if the flag is unset, the offset was always masked based on a base-page granularity. Yet, for huge-pages, the behavior prior to the commit was that the address is masked to the huge-page granulrity. While there are no reports on real breakage, fix this issue. If the flag is unset, use the address with the masking that was done before. Link: https://lkml.kernel.org/r/20220711165906.2682-1-namit@vmware.com Fixes: 824ddc601adc ("userfaultfd: provide unmasked address on page-fault") Signed-off-by: Nadav Amit <namit@vmware.com> Reported-by: James Houghton <jthoughton@google.com> Reviewed-by: Mike Rapoport <rppt@linux.ibm.com> Reviewed-by: Peter Xu <peterx@redhat.com> Reviewed-by: James Houghton <jthoughton@google.com> Cc: David Hildenbrand <david@redhat.com> Cc: Jan Kara <jack@suse.cz> Cc: Andrea Arcangeli <aarcange@redhat.com> Cc: <stable@vger.kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
1 parent c80af0c
Tip revision: d172b1a3bd065dd89234eac547fc62cf80681631 authored by Nadav Amit on 11 July 2022, 16:59:06 UTC
userfaultfd: provide properly masked address for huge-pages
userfaultfd: provide properly masked address for huge-pages
Tip revision: d172b1a
File | Mode | Size |
---|---|---|
bits.h | -rw-r--r-- | 171 bytes |
clocksource.h | -rw-r--r-- | 479 bytes |
const.h | -rw-r--r-- | 196 bytes |
datapage.h | -rw-r--r-- | 4.1 KB |
helpers.h | -rw-r--r-- | 1.3 KB |
jiffies.h | -rw-r--r-- | 298 bytes |
ktime.h | -rw-r--r-- | 454 bytes |
limits.h | -rw-r--r-- | 564 bytes |
math64.h | -rw-r--r-- | 468 bytes |
processor.h | -rw-r--r-- | 251 bytes |
time.h | -rw-r--r-- | 190 bytes |
time32.h | -rw-r--r-- | 274 bytes |
time64.h | -rw-r--r-- | 426 bytes |
vsyscall.h | -rw-r--r-- | 288 bytes |
Computing file changes ...