avoid calling initscreenimage() in drawblankscreen() as the allocation in
makescreenimage() uses waserror and requires to be called with a user
context (up != nil). the concrete call nesting was:
*interrupt*
mouseclock()
drawactive()
drawblankscreen()
initscreenimage()
makescreenimage()
waserror()
*pagefault* due to up==nil
fault386()
panic("kernel fault: no user process...")
drawblankscreen only needed to access the screenimage to
get the color depth to calculate the number of palette
colors to clear. there is no point in blanking when
there is no screenimage in the firstplace, so i changed
the initscreenimage() call into a test for screenimage
being available or not and just return if it is not there.
|