Skip to contentSkip to conversation

FAILED: patch "[PATCH] selftests: secretmem: floor the memory size to the multiple" failed to apply to 6.1-stable tree

PATCH [email protected] 1 participant 1 message Jan 2, 2024

Subsystems (3)
lore
Share & tools
lore

[email protected]

author maintainer
#0 lore raw

The patch below does not apply to the 6.1-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.

To reproduce the conflict and resubmit, you may use the following commands:

git fetch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/ linux-6.1.y
git checkout FETCH_HEAD
git cherry-pick -x 0aac13add26d546ac74c89d2883b3a5f0fbea039
# <resolve conflicts, build, test, etc.>
git commit -s
git send-email --to '<[email protected]>' --in-reply-to '2024010232-imagines-collie-15cd@gregkh' --subject-prefix 'PATCH 6.1.y' HEAD^..

Possible dependencies:

0aac13add26d ("selftests: secretmem: floor the memory size to the multiple of page_size")

thanks,

greg k-h

------------------ original commit in Linus's tree ------------------

From 0aac13add26d546ac74c89d2883b3a5f0fbea039 Mon Sep 17 00:00:00 2001
From: Muhammad Usama Anjum <[email protected]>
Date: Thu, 14 Dec 2023 15:19:30 +0500
Subject: [PATCH] selftests: secretmem: floor the memory size to the multiple
of page_size

The "locked-in-memory size" limit per process can be non-multiple of page_size. The mmap() fails if we try to allocate locked-in-memory with same size as the allowed limit if it isn't multiple of the page_size because mmap() rounds off the memory size to be allocated to next multiple of page_size.

Fix this by flooring the length to be allocated with mmap() to the previous multiple of the page_size.

This was getting triggered on KernelCI regularly because of different ulimit settings which wasn't multiple of the page_size. Find logs
here: https://linux.kernelci.org/test/plan/id/657654bd8e81e654fae13532/
The bug in was present from the time test was first added.

Fixes 76fe17ef588a ("secretmem: test: add basic selftest for memfd_secret(2)")
Cc "James E.J. Bottomley" <[email protected]>
Cc Mike Rapoport (IBM) <[email protected]>
Cc Shuah Khan <[email protected]>
tools/testing/selftests/mm/memfd_secret.c +3 -0
index 957b9e18c729..9b298f6a04b3 100644
@@ -62,6 +62,9 @@ static void test_mlock_limit(int fd)
 	char *mem;
 
 	len = mlock_limit_cur;
+	if (len % page_size != 0)
+		len = (len/page_size) * page_size;
+
 	mem = mmap(NULL, len, prot, mode, fd, 0);
 	if (mem == MAP_FAILED) {
 		fail("unable to mmap secret memory\n");