|
It appears that somewhere in the development
process of 2.6.12 kernels the definition of refrigerator has changed to
void refrigerator(void) Searching the changelogs got me to a page that is now available only from the google cache, which says, among other things: author Christoph Lameter <[EMAIL PROTECTED]> Fri, 24 Jun 2005 23:13:50 -0700 committer Linus Torvalds <[EMAIL PROTECTED]> Sat, 25 Jun 2005 17:10:13 -0700
[PATCH] Cleanup patch for process freezing
1. Establish a simple API for process freezing defined in linux/include/sched.h:
frozen(process) Check for frozen process
freezing(process) Check if a process is being frozen
freeze(process) Tell a process to freeze (go to refrigerator)
thaw_process(process) Restart process
frozen_process(process) Process is frozen now
2. Remove all references to PF_FREEZE and PF_FROZEN from all
kernel sources except sched.h
3. Fix numerous locations where try_to_freeze is manually done by a driver
4. Remove the argument that is no longer necessary from two function calls.
5. Some whitespace cleanup
6. Clear potential race in refrigerator (provides an open window of PF_FREEZE
cleared before setting PF_FROZEN, recalc_sigpending does not check
PF_FROZEN).
This patch does not address the problem of freeze_processes() violating the rule
that a task may only modify its own flags by setting PF_FREEZE. This is not clean
in an SMP environment. freeze(process) is therefore not SMP safe!
I am willing to get my hands dirty and provide the patch, if someone
would give me some directions about detecting whether the old style
(manually calling refrigerator) or the new style ( try_to_freeze() ) is
required.--
paranoia, n.:
A healthy understanding of the way the universe works.
|
