Commit 5bbc2b785e63 ("selftests/mm: fix FORCE_READ to read input value correctly") modified FORCE_READ() to take a value instead of a pointer. It also changed most of the call sites accordingly, but missed many of them in cow.c. In those cases, we ended up with the pointer itself being read, not the memory it points to.
No failure occurred as a result, so it looks like the tests work just fine without faulting in. However, the huge_zeropage tests explicitly check that pages are populated, so those became skipped.
Convert all the remaining FORCE_READ() to fault in the mapped page, as was originally intended. This allows the huge_zeropage tests to run again (3 tests in total).
Fixes: 5bbc2b785e63 ("selftests/mm: fix FORCE_READ to read input value correctly") Signed-off-by: Kevin Brodsky kevin.brodsky@arm.com
Hi Kevin,
Thanks for the fix.
This was indeed an oversight on my part. When we previously discussed this refactoring with Ziyan and Lorenzo (and the community) regarding commit 3f6bfd4789a0 ("selftests/mm: reuse FORCE_READ to replace "asm volatile ("" : "+r" (XXX));""), the intention was to switch FORCE_READ to take a value. I clearly missed updating these specific call sites in cow.c during that transition.
Sorry for the trouble and the skipped tests. The changes look correct to me.
Reviewed-by: wang lian lianux.mm@gmail.com
-- Best Regards, wang lian