lkml.org 
[lkml]   [2017]   [May]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 3.18 56/68] mm/cma: silence warnings due to max() usage
    Date
    3.18-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Stephen Rothwell <sfr@canb.auug.org.au>

    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));
    ^

    [akpm@linux-foundation.org: coding-style fixes]
    Link: http://lkml.kernel.org/r/20160526150748.5be38a4f@canb.auug.org.au
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    mm/cma.c | 7 ++++---
    1 file changed, 4 insertions(+), 3 deletions(-)

    --- a/mm/cma.c
    +++ b/mm/cma.c
    @@ -168,7 +168,8 @@ int __init cma_init_reserved_mem(phys_ad
    return -EINVAL;

    /* ensure minimal alignment requied 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))
    @@ -250,8 +251,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);

    \
     
     \ /
      Last update: 2017-05-05 20:41    [W:2.593 / U:0.012 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site