Message ID | 20191016142324.52250-1-vincenzo.frascino@arm.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | hugetlb: Fix clang compilation warning | expand |
On 10/16/19 7:23 AM, Vincenzo Frascino wrote: > Building the kernel with a recent version of clang I noticed the warning > below: > > mm/hugetlb.c:4055:40: warning: expression does not compute the number of > elements in this array; element type is 'unsigned long', not 'u32' > (aka 'unsigned int') [-Wsizeof-array-div] > hash = jhash2((u32 *)&key, sizeof(key)/sizeof(u32), 0); > ~~~ ^ > mm/hugetlb.c:4049:16: note: array 'key' declared here > unsigned long key[2]; > ^ > mm/hugetlb.c:4055:40: note: place parentheses around the 'sizeof(u32)' > expression to silence this warning > hash = jhash2((u32 *)&key, sizeof(key)/sizeof(u32), 0); > ^ CC fs/ext4/ialloc.o > > Fix the warning adding parentheses around the sizeof(u32) expression. > > Cc: Mike Kravetz <mike.kravetz@oracle.com> > Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com> Thanks, However, this is already addressed in Andrew's tree. https://ozlabs.org/~akpm/mmotm/broken-out/hugetlbfs-hugetlb_fault_mutex_hash-cleanup.patch
Hi Mike, On 10/16/19 4:21 PM, Mike Kravetz wrote: > On 10/16/19 7:23 AM, Vincenzo Frascino wrote: >> Building the kernel with a recent version of clang I noticed the warning >> below: >> >> mm/hugetlb.c:4055:40: warning: expression does not compute the number of >> elements in this array; element type is 'unsigned long', not 'u32' >> (aka 'unsigned int') [-Wsizeof-array-div] >> hash = jhash2((u32 *)&key, sizeof(key)/sizeof(u32), 0); >> ~~~ ^ >> mm/hugetlb.c:4049:16: note: array 'key' declared here >> unsigned long key[2]; >> ^ >> mm/hugetlb.c:4055:40: note: place parentheses around the 'sizeof(u32)' >> expression to silence this warning >> hash = jhash2((u32 *)&key, sizeof(key)/sizeof(u32), 0); >> ^ CC fs/ext4/ialloc.o >> >> Fix the warning adding parentheses around the sizeof(u32) expression. >> >> Cc: Mike Kravetz <mike.kravetz@oracle.com> >> Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com> > > Thanks, > > However, this is already addressed in Andrew's tree. > https://ozlabs.org/~akpm/mmotm/broken-out/hugetlbfs-hugetlb_fault_mutex_hash-cleanup.patch > Thank you for pointing this out.
diff --git a/mm/hugetlb.c b/mm/hugetlb.c index ef37c85423a5..ce9ff2b35962 100644 --- a/mm/hugetlb.c +++ b/mm/hugetlb.c @@ -4052,7 +4052,7 @@ u32 hugetlb_fault_mutex_hash(struct hstate *h, struct address_space *mapping, key[0] = (unsigned long) mapping; key[1] = idx; - hash = jhash2((u32 *)&key, sizeof(key)/sizeof(u32), 0); + hash = jhash2((u32 *)&key, sizeof(key)/(sizeof(u32)), 0); return hash & (num_fault_mutexes - 1); }
Building the kernel with a recent version of clang I noticed the warning below: mm/hugetlb.c:4055:40: warning: expression does not compute the number of elements in this array; element type is 'unsigned long', not 'u32' (aka 'unsigned int') [-Wsizeof-array-div] hash = jhash2((u32 *)&key, sizeof(key)/sizeof(u32), 0); ~~~ ^ mm/hugetlb.c:4049:16: note: array 'key' declared here unsigned long key[2]; ^ mm/hugetlb.c:4055:40: note: place parentheses around the 'sizeof(u32)' expression to silence this warning hash = jhash2((u32 *)&key, sizeof(key)/sizeof(u32), 0); ^ CC fs/ext4/ialloc.o Fix the warning adding parentheses around the sizeof(u32) expression. Cc: Mike Kravetz <mike.kravetz@oracle.com> Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com> --- mm/hugetlb.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)