aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc
diff options
context:
space:
mode:
authorSukadev Bhattiprolu <sukadev@us.ibm.com>2006-09-29 05:00:07 -0400
committerLinus Torvalds <torvalds@g5.osdl.org>2006-09-29 12:18:12 -0400
commitf400e198b2ed26ce55b22a1412ded0896e7516ac (patch)
treea3d78bfc1c20635e199fe0fe85aaa1d8792acc58 /arch/powerpc
parent959ed340f4867fda7684340625f60e211c2296d6 (diff)
[PATCH] pidspace: is_init()
This is an updated version of Eric Biederman's is_init() patch. (http://lkml.org/lkml/2006/2/6/280). It applies cleanly to 2.6.18-rc3 and replaces a few more instances of ->pid == 1 with is_init(). Further, is_init() checks pid and thus removes dependency on Eric's other patches for now. Eric's original description: There are a lot of places in the kernel where we test for init because we give it special properties. Most significantly init must not die. This results in code all over the kernel test ->pid == 1. Introduce is_init to capture this case. With multiple pid spaces for all of the cases affected we are looking for only the first process on the system, not some other process that has pid == 1. Signed-off-by: Eric W. Biederman <ebiederm@xmission.com> Signed-off-by: Sukadev Bhattiprolu <sukadev@us.ibm.com> Cc: Dave Hansen <haveblue@us.ibm.com> Cc: Serge Hallyn <serue@us.ibm.com> Cc: Cedric Le Goater <clg@fr.ibm.com> Cc: <lxc-devel@lists.sourceforge.net> Acked-by: Paul Mackerras <paulus@samba.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch/powerpc')
-rw-r--r--arch/powerpc/mm/fault.c2
-rw-r--r--arch/powerpc/platforms/pseries/ras.c2
2 files changed, 2 insertions, 2 deletions
diff --git a/arch/powerpc/mm/fault.c b/arch/powerpc/mm/fault.c
index 77953f41d754..e8fa50624b70 100644
--- a/arch/powerpc/mm/fault.c
+++ b/arch/powerpc/mm/fault.c
@@ -386,7 +386,7 @@ bad_area_nosemaphore:
386 */ 386 */
387out_of_memory: 387out_of_memory:
388 up_read(&mm->mmap_sem); 388 up_read(&mm->mmap_sem);
389 if (current->pid == 1) { 389 if (is_init(current)) {
390 yield(); 390 yield();
391 down_read(&mm->mmap_sem); 391 down_read(&mm->mmap_sem);
392 goto survive; 392 goto survive;
diff --git a/arch/powerpc/platforms/pseries/ras.c b/arch/powerpc/platforms/pseries/ras.c
index 903115d67fdc..311ed1993fc0 100644
--- a/arch/powerpc/platforms/pseries/ras.c
+++ b/arch/powerpc/platforms/pseries/ras.c
@@ -337,7 +337,7 @@ static int recover_mce(struct pt_regs *regs, struct rtas_error_log * err)
337 err->disposition == RTAS_DISP_NOT_RECOVERED && 337 err->disposition == RTAS_DISP_NOT_RECOVERED &&
338 err->target == RTAS_TARGET_MEMORY && 338 err->target == RTAS_TARGET_MEMORY &&
339 err->type == RTAS_TYPE_ECC_UNCORR && 339 err->type == RTAS_TYPE_ECC_UNCORR &&
340 !(current->pid == 0 || current->pid == 1)) { 340 !(current->pid == 0 || is_init(current))) {
341 /* Kill off a user process with an ECC error */ 341 /* Kill off a user process with an ECC error */
342 printk(KERN_ERR "MCE: uncorrectable ecc error for pid %d\n", 342 printk(KERN_ERR "MCE: uncorrectable ecc error for pid %d\n",
343 current->pid); 343 current->pid);