• Don Zickus's avatar
    kernel/watchdog.c: always return NOTIFY_OK during cpu up/down events · f99a9933
    Don Zickus authored
    This patch addresses a couple of problems.  One was the case when the
    hardlockup failed to start, it also failed to start the softlockup.  There
    were valid cases when the hardlockup shouldn't start and that shouldn't
    block the softlockup (no lapic, bios controls perf counters).
    
    The second problem was when the hardlockup failed to start on boxes (from
    a no lapic or bios controlled perf counter case), it reported failure to
    the cpu notifier chain.  This blocked the notifier from continuing to
    start other more critical pieces of cpu bring-up (in our case based on a
    2.6.32 fork, it was the mce).  As a result, during soft cpu online/offline
    testing, the system would panic when a cpu was offlined because the cpu
    notifier would succeed in processing a watchdog disable cpu event and
    would panic in the mce case as a result of un-initialized variables from a
    never executed cpu up event.
    
    I realized the hardlockup/softlockup cases are really just debugging aids
    and should never impede the progress of a cpu up/down event.  Therefore I
    modified the code to always return NOTIFY_OK and instead rely on printks
    to inform the user of problems.
    Signed-off-by: default avatarDon Zickus <dzickus@redhat.com>
    Acked-by: default avatarPeter Zijlstra <a.p.zijlstra@chello.nl>
    Reviewed-by: default avatarWANG Cong <xiyou.wangcong@gmail.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    f99a9933
watchdog.c 14 KB