• Michel Lespinasse's avatar
    mm/fremap.c: fix possible oops on error path · a2362d24
    Michel Lespinasse authored
    The vm_flags introduced in 6d7825b1 ("mm/fremap.c: fix oops on error
    path") is supposed to avoid a compiler warning about unitialized
    vm_flags without changing the generated code.
    
    However I am concerned that this is going to be very brittle, and fail
    with some compiler versions. The failure could be either of:
    
    - compiler could actually load vma->vm_flags before checking for the
      !vma condition, thus reintroducing the oops
    
    - compiler could optimize out the !vma check, since the pointer just got
      dereferenced shortly before (so the compiler knows it can't be NULL!)
    
    I propose reversing this part of the change and initializing vm_flags to 0
    just to avoid the bogus uninitialized use warning.
    Signed-off-by: default avatarMichel Lespinasse <walken@google.com>
    Cc: Tommi Rantala <tt.rantala@gmail.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    a2362d24
fremap.c 6.82 KB