diff mbox series

selftests/mm: Fixed incorrect buffer->mirror size in hmm2 double_map test

Message ID 20240927050752.51066-1-donettom@linux.ibm.com (mailing list archive)
State New
Headers show
Series selftests/mm: Fixed incorrect buffer->mirror size in hmm2 double_map test | expand

Commit Message

Donet Tom Sept. 27, 2024, 5:07 a.m. UTC
The hmm2 double_map test was failing due to an incorrect
buffer->mirror size. The buffer->mirror size was 6, while buffer->ptr
size was 6 * PAGE_SIZE. The test failed because the kernel's
copy_to_user function was attempting to copy a 6 * PAGE_SIZE buffer
to buffer->mirror. Since the size of buffer->mirror was incorrect,
copy_to_user failed.

This patch corrects the buffer->mirror size to 6 * PAGE_SIZE.

Test Result without this patch
==============================
 #  RUN           hmm2.hmm2_device_private.double_map ...
 # hmm-tests.c:1680:double_map:Expected ret (-14) == 0 (0)
 # double_map: Test terminated by assertion
 #          FAIL  hmm2.hmm2_device_private.double_map
 not ok 53 hmm2.hmm2_device_private.double_map

Test Result with this patch
===========================
 #  RUN           hmm2.hmm2_device_private.double_map ...
 #            OK  hmm2.hmm2_device_private.double_map
 ok 53 hmm2.hmm2_device_private.double_map

Signed-off-by: Donet Tom <donettom@linux.ibm.com>
---
 tools/testing/selftests/mm/hmm-tests.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Muhammad Usama Anjum Sept. 27, 2024, 7:18 a.m. UTC | #1
On 9/27/24 10:07 AM, Donet Tom wrote:
> The hmm2 double_map test was failing due to an incorrect
> buffer->mirror size. The buffer->mirror size was 6, while buffer->ptr
> size was 6 * PAGE_SIZE. The test failed because the kernel's
> copy_to_user function was attempting to copy a 6 * PAGE_SIZE buffer
> to buffer->mirror. Since the size of buffer->mirror was incorrect,
> copy_to_user failed.
> 
> This patch corrects the buffer->mirror size to 6 * PAGE_SIZE.
> 
> Test Result without this patch
> ==============================
>  #  RUN           hmm2.hmm2_device_private.double_map ...
>  # hmm-tests.c:1680:double_map:Expected ret (-14) == 0 (0)
>  # double_map: Test terminated by assertion
>  #          FAIL  hmm2.hmm2_device_private.double_map
>  not ok 53 hmm2.hmm2_device_private.double_map
> 
> Test Result with this patch
> ===========================
>  #  RUN           hmm2.hmm2_device_private.double_map ...
>  #            OK  hmm2.hmm2_device_private.double_map
>  ok 53 hmm2.hmm2_device_private.double_map
> 
> Signed-off-by: Donet Tom <donettom@linux.ibm.com>
Please add Fixes-by tag. Other than this, LGTM

Reviewed-by: Muhammad Usama Anjum <usama.anjum@collabora.com>

> ---
>  tools/testing/selftests/mm/hmm-tests.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/tools/testing/selftests/mm/hmm-tests.c b/tools/testing/selftests/mm/hmm-tests.c
> index d2cfc9b494a0..141bf63cbe05 100644
> --- a/tools/testing/selftests/mm/hmm-tests.c
> +++ b/tools/testing/selftests/mm/hmm-tests.c
> @@ -1657,7 +1657,7 @@ TEST_F(hmm2, double_map)
>  
>  	buffer->fd = -1;
>  	buffer->size = size;
> -	buffer->mirror = malloc(npages);
> +	buffer->mirror = malloc(size);
>  	ASSERT_NE(buffer->mirror, NULL);
>  
>  	/* Reserve a range of addresses. */
Donet Tom Sept. 27, 2024, 10:51 a.m. UTC | #2
On 9/27/24 12:48, Muhammad Usama Anjum wrote:
> On 9/27/24 10:07 AM, Donet Tom wrote:
>> The hmm2 double_map test was failing due to an incorrect
>> buffer->mirror size. The buffer->mirror size was 6, while buffer->ptr
>> size was 6 * PAGE_SIZE. The test failed because the kernel's
>> copy_to_user function was attempting to copy a 6 * PAGE_SIZE buffer
>> to buffer->mirror. Since the size of buffer->mirror was incorrect,
>> copy_to_user failed.
>>
>> This patch corrects the buffer->mirror size to 6 * PAGE_SIZE.
>>
>> Test Result without this patch
>> ==============================
>>   #  RUN           hmm2.hmm2_device_private.double_map ...
>>   # hmm-tests.c:1680:double_map:Expected ret (-14) == 0 (0)
>>   # double_map: Test terminated by assertion
>>   #          FAIL  hmm2.hmm2_device_private.double_map
>>   not ok 53 hmm2.hmm2_device_private.double_map
>>
>> Test Result with this patch
>> ===========================
>>   #  RUN           hmm2.hmm2_device_private.double_map ...
>>   #            OK  hmm2.hmm2_device_private.double_map
>>   ok 53 hmm2.hmm2_device_private.double_map
>>
>> Signed-off-by: Donet Tom <donettom@linux.ibm.com>
> Please add Fixes-by tag. Other than this, LGTM

Fixes-by : Donet Tom <donettom@linux.ibm.com>

I have added the Fixes-by tag here. Please let me know if you would prefer that I send a V2 with this tag.

>
> Reviewed-by: Muhammad Usama Anjum <usama.anjum@collabora.com>

Thank you
Donet

>
>> ---
>>   tools/testing/selftests/mm/hmm-tests.c | 2 +-
>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/tools/testing/selftests/mm/hmm-tests.c b/tools/testing/selftests/mm/hmm-tests.c
>> index d2cfc9b494a0..141bf63cbe05 100644
>> --- a/tools/testing/selftests/mm/hmm-tests.c
>> +++ b/tools/testing/selftests/mm/hmm-tests.c
>> @@ -1657,7 +1657,7 @@ TEST_F(hmm2, double_map)
>>   
>>   	buffer->fd = -1;
>>   	buffer->size = size;
>> -	buffer->mirror = malloc(npages);
>> +	buffer->mirror = malloc(size);
>>   	ASSERT_NE(buffer->mirror, NULL);
>>   
>>   	/* Reserve a range of addresses. */
Andrew Morton Sept. 27, 2024, 6:07 p.m. UTC | #3
On Fri, 27 Sep 2024 16:21:30 +0530 Donet Tom <donettom@linux.ibm.com> wrote:

> >> Test Result with this patch
> >> ===========================
> >>   #  RUN           hmm2.hmm2_device_private.double_map ...
> >>   #            OK  hmm2.hmm2_device_private.double_map
> >>   ok 53 hmm2.hmm2_device_private.double_map
> >>
> >> Signed-off-by: Donet Tom <donettom@linux.ibm.com>
> > Please add Fixes-by tag. Other than this, LGTM
> 
> Fixes-by : Donet Tom <donettom@linux.ibm.com>
> 
> I have added the Fixes-by tag here. Please let me know if you would prefer that I send a V2 with this tag.
> 

"Fixes:".  I added

Fixes: fee9f6d1b8df ("mm/hmm/test: add selftests for HMM")
Cc: <stable@vger.kernel.org>
diff mbox series

Patch

diff --git a/tools/testing/selftests/mm/hmm-tests.c b/tools/testing/selftests/mm/hmm-tests.c
index d2cfc9b494a0..141bf63cbe05 100644
--- a/tools/testing/selftests/mm/hmm-tests.c
+++ b/tools/testing/selftests/mm/hmm-tests.c
@@ -1657,7 +1657,7 @@  TEST_F(hmm2, double_map)
 
 	buffer->fd = -1;
 	buffer->size = size;
-	buffer->mirror = malloc(npages);
+	buffer->mirror = malloc(size);
 	ASSERT_NE(buffer->mirror, NULL);
 
 	/* Reserve a range of addresses. */