https://github.com/torvalds/linux
Revision 573a259336f8c57739bdaf035aa7abbae7d9a713 authored by Axel Rasmussen on 06 December 2020, 06:15:05 UTC, committed by Linus Torvalds on 06 December 2020, 18:19:07 UTC
The error handling in hugetlb_allocate_area() was incorrect for the hugetlb_shared test case. Previously the behavior was: - mmap a hugetlb area - If this fails, set the pointer to NULL, and carry on - mmap an alias of the same hugetlb fd - If this fails, munmap the original area If the original mmap failed, it's likely the second one did too. If both failed, we'd blindly try to munmap a NULL pointer, causing a SIGSEGV. Instead, "goto fail" so we return before trying to mmap the alias. This issue can be hit "in real life" by forgetting to set /proc/sys/vm/nr_hugepages (leaving it at 0), and then trying to run the hugetlb_shared test. Another small improvement is, when the original mmap fails, don't just print "it failed": perror(), so we can see *why*. :) Signed-off-by: Axel Rasmussen <axelrasmussen@google.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Cc: Shuah Khan <shuah@kernel.org> Cc: Peter Xu <peterx@redhat.com> Cc: Joe Perches <joe@perches.com> Cc: Mike Rapoport <rppt@linux.vnet.ibm.com> Cc: Andrea Arcangeli <aarcange@redhat.com> Cc: David Alan Gilbert <dgilbert@redhat.com> Link: https://lkml.kernel.org/r/20201204203443.2714693-1-axelrasmussen@google.com Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
1 parent d8cbe8b
Tip revision: 573a259336f8c57739bdaf035aa7abbae7d9a713 authored by Axel Rasmussen on 06 December 2020, 06:15:05 UTC
userfaultfd: selftests: fix SIGSEGV if huge mmap fails
userfaultfd: selftests: fix SIGSEGV if huge mmap fails
Tip revision: 573a259
File | Mode | Size |
---|---|---|
fallbacks | ||
atomic-tbl.sh | -rwxr-xr-x | 3.3 KB |
atomics.tbl | -rwxr-xr-x | 1.1 KB |
check-atomics.sh | -rwxr-xr-x | 757 bytes |
gen-atomic-fallback.sh | -rwxr-xr-x | 5.2 KB |
gen-atomic-instrumented.sh | -rwxr-xr-x | 4.6 KB |
gen-atomic-long.sh | -rwxr-xr-x | 2.2 KB |
gen-atomics.sh | -rw-r--r-- | 680 bytes |
Computing file changes ...