[OpenAFS-devel] libafs not compiling on 2.6.12 due to software suspend changes
Sabin Iacob
iacobs@exotic4.nipne.ro
Fri, 02 Sep 2005 14:37:24 +0300
This is a multi-part message in MIME format.
--------------000500040205020300010103
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
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 <christoph@lameter.com> Fri, 24 Jun 2005 23:13:50 -0700
committer Linus Torvalds <torvalds@ppc970.osdl.org> 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.
--------------000500040205020300010103
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html;charset=UTF-8" http-equiv="Content-Type">
<title></title>
</head>
<body bgcolor="#ffffff" text="#000000">
<font face="Verdana">It appears that somewhere in the development
process of 2.6.12 kernels the definition of refrigerator has changed to
<br>
void refrigerator(void)<br>
<br>
Searching the changelogs got me to a page that is now available only
from the google cache, which says, among other things:<br>
</font>
<pre>author Christoph Lameter <a class="moz-txt-link-rfc2396E" href="mailto:christoph@lameter.com"><christoph@lameter.com></a> Fri, 24 Jun 2005 23:13:50 -0700
committer Linus Torvalds <a class="moz-txt-link-rfc2396E" href="mailto:torvalds@ppc970.osdl.org"><torvalds@ppc970.osdl.org></a> 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 <b
style="color: black; background-color: rgb(255, 255, 102);">refrigerator</b>)
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 <b
style="color: black; background-color: rgb(255, 255, 102);">refrigerator</b> (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!
</pre>
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.<br>
<br>
<pre class="moz-signature" cols="72">--
paranoia, n.:
A healthy understanding of the way the universe works.
</pre>
</body>
</html>
--------------000500040205020300010103--