[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <f81fab20-5d01-e782-d45e-c65f3e51beec@nvidia.com>
Date: Mon, 27 Jan 2020 13:32:12 -0800
From: John Hubbard <jhubbard@...dia.com>
To: Nathan Chancellor <natechancellor@...il.com>
CC: Andrew Morton <akpm@...ux-foundation.org>,
Al Viro <viro@...iv.linux.org.uk>,
Christoph Hellwig <hch@...radead.org>,
Dan Williams <dan.j.williams@...el.com>,
Dave Chinner <david@...morbit.com>,
Ira Weiny <ira.weiny@...el.com>, Jan Kara <jack@...e.cz>,
Jason Gunthorpe <jgg@...pe.ca>,
Jonathan Corbet <corbet@....net>,
Jérôme Glisse <jglisse@...hat.com>,
"Kirill A . Shutemov" <kirill@...temov.name>,
Michal Hocko <mhocko@...e.com>,
Mike Kravetz <mike.kravetz@...cle.com>,
Shuah Khan <shuah@...nel.org>,
Vlastimil Babka <vbabka@...e.cz>, <linux-doc@...r.kernel.org>,
<linux-fsdevel@...r.kernel.org>, <linux-kselftest@...r.kernel.org>,
<linux-rdma@...r.kernel.org>, <linux-mm@...ck.org>,
LKML <linux-kernel@...r.kernel.org>,
<clang-built-linux@...glegroups.com>
Subject: Re: [PATCH 2/3] mm/gup_benchmark: support pin_user_pages() and
related calls
On 1/27/20 12:52 PM, Nathan Chancellor wrote:
...
>> --- a/mm/gup_benchmark.c
>> +++ b/mm/gup_benchmark.c
>> @@ -8,6 +8,8 @@
>> #define GUP_FAST_BENCHMARK _IOWR('g', 1, struct gup_benchmark)
>> #define GUP_LONGTERM_BENCHMARK _IOWR('g', 2, struct gup_benchmark)
>> #define GUP_BENCHMARK _IOWR('g', 3, struct gup_benchmark)
>> +#define PIN_FAST_BENCHMARK _IOWR('g', 4, struct gup_benchmark)
>> +#define PIN_BENCHMARK _IOWR('g', 5, struct gup_benchmark)
>>
>> struct gup_benchmark {
>> __u64 get_delta_usec;
>> @@ -19,6 +21,47 @@ struct gup_benchmark {
>> __u64 expansion[10]; /* For future use */
>> };
>>
>> +static void put_back_pages(int cmd, struct page **pages, unsigned long nr_pages)
>
> We received a Clang build report on this patch because the use of
> PIN_FAST_BENCHMARK and PIN_BENCHMARK in the switch statement below will
> overflow int; this should be unsigned int to match the cmd parameter in
> the ioctls.
Thanks for the report! Yes, that should have been "unsigned int cmd", to match the
one in the ioctls, just as you said.
I'll apply this diff, for the next version of the series:
diff --git a/mm/gup_benchmark.c b/mm/gup_benchmark.c
index 3d5fb765e4e6..7d5573083ab3 100644
--- a/mm/gup_benchmark.c
+++ b/mm/gup_benchmark.c
@@ -21,7 +21,8 @@ struct gup_benchmark {
__u64 expansion[10]; /* For future use */
};
-static void put_back_pages(int cmd, struct page **pages, unsigned long nr_pages)
+static void put_back_pages(unsigned int cmd, struct page **pages,
+ unsigned long nr_pages)
{
int i;
@@ -40,7 +41,7 @@ static void put_back_pages(int cmd, struct page **pages, unsigned long nr_pages)
}
}
-static void verify_dma_pinned(int cmd, struct page **pages,
+static void verify_dma_pinned(unsigned int cmd, struct page **pages,
unsigned long nr_pages)
{
int i;
thanks,
--
John Hubbard
NVIDIA
Powered by blists - more mailing lists