From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752826AbbCZXwU (ORCPT ); Thu, 26 Mar 2015 19:52:20 -0400 Received: from ozlabs.org ([103.22.144.67]:45229 "EHLO ozlabs.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752101AbbCZXwS (ORCPT ); Thu, 26 Mar 2015 19:52:18 -0400 Message-ID: <1427413936.23142.4.camel@ellerman.id.au> Subject: Re: [patch 2/2] mm, selftests: test return value of munmap for MAP_HUGETLB memory From: Michael Ellerman To: David Rientjes Cc: Andrew Morton , Jonathan Corbet , Davide Libenzi , Luiz Capitulino , Shuah Khan , Hugh Dickins , Andrea Arcangeli , Joern Engel , Jianguo Wu , Eric B Munson , linux-mm@kvack.org, linux-kernel@vger.kernel.org, linux-api@vger.kernel.org, linux-doc@vger.kernel.org Date: Fri, 27 Mar 2015 10:52:16 +1100 In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.12.10-0ubuntu1~14.10.1 Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, 2015-03-26 at 16:23 -0700, David Rientjes wrote: > When MAP_HUGETLB memory is unmapped, the length must be hugepage aligned, > otherwise it fails with -EINVAL. > > All tests currently behave correctly, but it's better to explcitly test > the return value for completeness and document the requirement, > especially if users copy map_hugetlb.c as a sample implementation. > > Signed-off-by: David Rientjes > --- > tools/testing/selftests/powerpc/mm/hugetlb_vs_thp_test.c | 8 ++++++-- > > diff --git a/tools/testing/selftests/powerpc/mm/hugetlb_vs_thp_test.c b/tools/testing/selftests/powerpc/mm/hugetlb_vs_thp_test.c > --- a/tools/testing/selftests/powerpc/mm/hugetlb_vs_thp_test.c > +++ b/tools/testing/selftests/powerpc/mm/hugetlb_vs_thp_test.c > @@ -21,9 +21,13 @@ static int test_body(void) > * Typically the mmap will fail because no huge pages are > * allocated on the system. But if there are huge pages > * allocated the mmap will succeed. That's fine too, we just > - * munmap here before continuing. > + * munmap here before continuing. munmap() length of > + * MAP_HUGETLB memory must be hugepage aligned. > */ > - munmap(addr, SIZE); > + if (munmap(addr, SIZE)) { > + perror("munmap"); > + return 1; > + } > } > > p = mmap(addr, SIZE, PROT_READ | PROT_WRITE, Acked-by: Michael Ellerman cheers