Patch "mm/cma: silence warnings due to max() usage" has been added to the 4.4-stable tree
Subsystems (3)
This is a note to let you know that I've just added the patch titled
mm/cma: silence warnings due to max() usage
to the 4.4-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
mm-cma-silence-warnings-due-to-max-usage.patch
and it can be found in the queue-4.4 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
badbda53e505089062e194c614e6f23450bc98b2Mon Sep 17 00:00:00 2001
From: Stephen Rothwell <[email protected]>
Date: Fri, 27 May 2016 14:27:41 -0700
Subject: mm/cma: silence warnings due to max() usage
From: Stephen Rothwell <[email protected]>
commit badbda53e505089062e194c614e6f23450bc98b2 upstream.
pageblock_order can be (at least) an unsigned int or an unsigned long depending on the kernel config and architecture, so use max_t(unsigned long, ...) when comparing it.
fixes these warnings:
In file included from include/asm-generic/bug.h:13:0,
from arch/powerpc/include/asm/bug.h:127,
from include/linux/bug.h:4,
from include/linux/mmdebug.h:4,
from include/linux/mm.h:8,
from include/linux/memblock.h:18,
from mm/cma.c:28:mm/cma.c: In function 'cma_init_reserved_mem':include/linux/kernel.h:748:17: warning: comparison of distinct pointer types lacks a cast
(void) (&_max1 == &_max2); ^mm/cma.c:186:27: note: in expansion of macro 'max'
alignment = PAGE_SIZE << max(MAX_ORDER - 1, pageblock_order);
^mm/cma.c: In function 'cma_declare_contiguous':include/linux/kernel.h:748:17: warning: comparison of distinct pointer types lacks a cast
(void) (&_max1 == &_max2); ^include/linux/kernel.h:747:9: note: in definition of macro 'max'
typeof(y) _max2 = (y); ^mm/cma.c:270:29: note: in expansion of macro 'max'
(phys_addr_t)PAGE_SIZE << max(MAX_ORDER - 1, pageblock_order));
^include/linux/kernel.h:748:17: warning: comparison of distinct pointer types lacks a cast
(void) (&_max1 == &_max2); ^include/linux/kernel.h:747:21: note: in definition of macro 'max'
typeof(y) _max2 = (y); ^mm/cma.c:270:29: note: in expansion of macro 'max'
(phys_addr_t)PAGE_SIZE << max(MAX_ORDER - 1, pageblock_order));
^--- mm/cma.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-)
mm/cma.c +4 -3
@@ -183,7 +183,8 @@ int __init cma_init_reserved_mem(phys_adreturn -EINVAL ;/* ensure minimal alignment required by mm core */ - alignment =PAGE_SIZE <<max (MAX_ORDER -1 , pageblock_order); + alignment =PAGE_SIZE << + max_t(unsigned long, MAX_ORDER - 1, pageblock_order);/* alignment should be aligned with order_per_bit */ if (!IS_ALIGNED (alignment >>PAGE_SHIFT ,1 << order_per_bit))
@@ -266,8 +267,8 @@ int __init cma_declare_contiguous(phys_a* migratetype page by page allocator's buddy algorithm. In the case, * you couldn't get a contiguous memory, which is not what we want. */ - alignment =max (alignment, - (phys_addr_t )PAGE_SIZE <<max (MAX_ORDER -1 , pageblock_order)); + alignment =max (alignment, (phys_addr_t )PAGE_SIZE << + max_t(unsigned long, MAX_ORDER - 1, pageblock_order)); base =ALIGN (base, alignment); size =ALIGN (size, alignment); limit &= ~(alignment -1 );
Patches currently in stable-queue which might be from [email protected] are
queue-4.4/mm-cma-silence-warnings-due-to-max-usage.patch