lkml.org 
[lkml]   [2017]   [May]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH] mm/vmscan: fix unsequenced modification and access warning
    Date
    Clang flags this file with the -Wunsequenced error that GCC does not
    have.

    unsequenced modification and access to 'gfp_mask'

    It seems that gfp_mask is both read and written without a sequence point
    in between, which is undefined behavior.

    Signed-off-by: Nick Desaulniers <nick.desaulniers@gmail.com>
    ---
    mm/vmscan.c | 4 +++-
    1 file changed, 3 insertions(+), 1 deletion(-)

    diff --git a/mm/vmscan.c b/mm/vmscan.c
    index 4e7ed65842af..74785908822c 100644
    --- a/mm/vmscan.c
    +++ b/mm/vmscan.c
    @@ -2958,7 +2958,7 @@ unsigned long try_to_free_pages(struct zonelist *zonelist, int order,
    unsigned long nr_reclaimed;
    struct scan_control sc = {
    .nr_to_reclaim = SWAP_CLUSTER_MAX,
    - .gfp_mask = (gfp_mask = current_gfp_context(gfp_mask)),
    + .gfp_mask = current_gfp_context(gfp_mask),
    .reclaim_idx = gfp_zone(gfp_mask),
    .order = order,
    .nodemask = nodemask,
    @@ -2968,6 +2968,8 @@ unsigned long try_to_free_pages(struct zonelist *zonelist, int order,
    .may_swap = 1,
    };

    + gfp_mask = sc.gfp_mask;
    +
    /*
    * Do not enter reclaim if fatal signal was delivered while throttled.
    * 1 is returned so that the page allocator does not OOM kill at this
    --
    2.11.0
    \
     
     \ /
      Last update: 2017-05-10 21:20    [W:3.386 / U:0.020 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site