• J
    sched/fair: Avoid using uninitialized variable in preferred_group_nid() · 81907478
    Jan Beulich 提交于
    At least some gcc versions - validly afaict - warn about potentially
    using max_group uninitialized: There's no way the compiler can prove
    that the body of the conditional where it and max_faults get set/
    updated gets executed; in fact, without knowing all the details of
    other scheduler code, I can't prove this either.
    
    Generally the necessary change would appear to be to clear max_group
    prior to entering the inner loop, and break out of the outer loop when
    it ends up being all clear after the inner one. This, however, seems
    inefficient, and afaict the same effect can be achieved by exiting the
    outer loop when max_faults is still zero after the inner loop.
    
    [ mingo: changed the solution to zero initialization: uninitialized_var()
      needs to die, as it's an actively dangerous construct: if in the future
      a known-proven-good piece of code is changed to have a true, buggy
      uninitialized variable, the compiler warning is then supressed...
    
      The better long term solution is to clean up the code flow, so that
      even simple minded compilers (and humans!) are able to read it without
      getting a headache.  ]
    Signed-off-by: NJan Beulich <jbeulich@suse.com>
    Signed-off-by: NPeter Zijlstra (Intel) <peterz@infradead.org>
    Cc: Rik van Riel <riel@redhat.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Link: http://lkml.kernel.org/r/54C2139202000078000588F7@mail.emea.novell.comSigned-off-by: NIngo Molnar <mingo@kernel.org>
    81907478
fair.c 211.8 KB