Comment 14 for bug 109151

Revision history for this message
alm (alm) wrote :

The patch fixes usplash support with uswsusp for me, but I also get the hang at 100%. The hang occurs at suspend.c:restore_console(), in the VT_WAITACTIVE ioctl. It never returns, possibly because it's locked by svgalib and only unlocked in the atexit handler. With this ioctl() commented out, resume works. It won't switch console afterwards, and the terminal looks messy, but acpi-support duplicates the console switch, so it works fine when called via acpi-support/gnome-power-manager instead of calling s2disk directly. I'm not if the rest of restore_console() still works without the console switch, maybe it should just be replaced by close(fd) in the usplash case.

It may be different with the BOGL usplash backend. The chvt actually works without usplash. Not sure about splashy/bootsplash. Maybe uswsusp should use usplash's switch_console() if CONFIG_USPLASH, so usplash_restore_console() works. The usplash binary does this, and it seems to work.

It might also be a good idea to call usplash_done() in usplash_finish(), although it seems largely a NOP with the svgalib backend.