abf3a584b6
restores avoidance of doing dangerous things like calling wakeup() and callouts while in ddb. Initialization of 'debugger' was broken by removing the cndbctl() console method that was used mainly in this driver to initialize 'debugger' and switch to the console screen on entry to ddb. The screen switch was restored using the cngrab() method, but cngrab() is more general so it should not initialize 'debugger' and never did. 'debugger' was just an over-engineered alias for kdb_active anyway. It existed because kdb_active (when it was named ddb_active) was considered as a private kdb variable, and there are ordering problems initializing the variables atomically with the state that they represent, but an extra variable and method to set it increased these problems. The bug caused LORs, but WITNESS is normally misconfigured with WITNESS_SKIPSIN so it doesn't check the spinlocks used by wakeup() and callouts. |
||
---|---|---|
.. | ||
apm | ||
blank | ||
daemon | ||
dragon | ||
fade | ||
fire | ||
green | ||
logo | ||
plasma | ||
rain | ||
snake | ||
star | ||
warp | ||
scgfbrndr.c | ||
schistory.c | ||
scmouse.c | ||
scterm-teken.c | ||
scterm.c | ||
scvesactl.c | ||
scvgarndr.c | ||
scvidctl.c | ||
scvtb.c | ||
syscons.c | ||
syscons.h | ||
sysmouse.c |