The kernel-panic on suspend bug is caused by a kernel module. As long as the bug is not fixed a workaround is to blacklist the module.
One of the biggest disadvantages of Fedora 7 for me was that my Suspend to RAM suddenly stoppped working: the kernel crashed on resume and left me with a kernel panic. I filled bug 241700 but was only forwarded to the HAL Quirk Site which does feature suspend problems in a very user friendly way. But although that page has a lot of helpful tips it does not cover kernel crashes.
However, other people joined the bug report: first, Alex Tucker reported that removing a huge bunch of modules worked for him to work around that problem. Following that path Hezekiah M. Carty added a list of modules he had to remove to get the machine working. I copied the list, also removed all the modules – and my system resumed without any quirk. Thanks to Alex and Heekiah at this point!
After that I re-added the removed kernel modules bit by bit and checked resume each time. It turned out the broken module is
fw_ohci, the Firewire Open Host Controller Interface. If you also have a kernel panic on resume you can check for yourself if this module is the reason: remove it by
modprobe -r -v --first-time fw_ohci (“r” is for remove, “v” is for verbose and “first-time” make the process exit by error if the module was not loaded in the first place). After that, suspend the machine and try to resume.
The next step is now that the kernel people look into that module and check why it panics the kernel. Until then, the workaround is to blacklist the module at system startup – at least if you want to resume your machine and does not need this module for some firewire stuff. To blacklist you have to edit
/etc/modprobe.d/blacklist and add
# Firewire - see bug 241700
at the end of the file. Now the resume should work again in the future.
As Alex Tucker points out in the mentioned bug report, another, maybe even cleaner method would be to call
echo 'SUSPEND_MODULES="fw_ohci fw_core"' > /etc/pm/config.d/unload_modules to simply inform suspend about the problematic modules.