• Michael Ellerman's avatar
    powerpc/xmon: Fix timeout loop in get_output_lock() · 15075897
    Michael Ellerman authored
    As far as I can tell, our 70s era timeout loop in get_output_lock() is
    generating no code.
    
    This leads to the hostile takeover happening more or less simultaneously
    on all cpus. The result is "interesting", some example output that is
    more readable than most:
    
        cpu 0x1: Vector: 100 (Scypsut e0mx bR:e setV)e catto xc0p:u[ c 00
        c0:0  000t0o0V0erc0td:o5 rfc28050000]0c00 0 0  0 6t(pSrycsV1ppuot
        uxe 1m 2 0Rx21e3:0s0ce000c00000t00)00 60602oV2SerucSayt0y 0p 1sxs
    
    Fix it by using udelay() in the timeout loop. The wait time and check
    frequency are arbitrary, but seem to work OK. We already rely on
    udelay() working so this is not a new dependency.
    Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
    Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
    15075897
xmon.c 68.6 KB