on CONFIG_MM_OWNER=y (that is automatically turned on by mem-cgroup),
kernel panic is possible by following scenario in mm_update_next_owner().
1. mm_update_next_owner() is called.
2. found caller task in do_each_thread() loop.
3. thus, BUG_ON(c == p) is true, it become kernel panic.
end up, We should left out current task.
Signed-off-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
CC: Lee Schermerhorn <Lee.Schermerhorn@hp.com>
CC: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
CC: Balbir Singh <balbir@linux.vnet.ibm.com>
---
kernel/exit.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Index: b/kernel/exit.c
===================================================================
--- a/kernel/exit.c 2008-05-04 22:57:23.000000000 +0900
+++ b/kernel/exit.c 2008-05-06 15:01:26.000000000 +0900
@@ -627,7 +627,7 @@ retry:
* here often
*/
do_each_thread(g, c) {
- if (c->mm == mm)
+ if ((c != p) && (c->mm == mm))
goto assign_new_owner;
} while_each_thread(g, c);
--
| Manu Abraham | PCIE |
| Jared Hulbert | [PATCH 00/10] AXFS: Advanced XIP filesystem |
| Pardo | Re: pthread_create() slow for many threads; also time to revisit 64b context switc... |
| Tomasz Chmielewski | Re: [PATCH] Intel IXP4xx network drivers v.2 - Ethernet and HSS |
git: | |
| Jeff Garzik | Re: Using GIT to store /etc (Or: How to make GIT store all file permission bits) |
| Andy Parkins | Re: git-fetch and unannotated tags |
| Theodore Tso | Re: git on MacOSX and files with decomposed utf-8 file names |
| Alex Riesen | [PATCH] Allow git-diff exit with codes similar to diff(1) |
| Bertram Scharpf | First install: Grub doesn't find partitions |
| Nick Guenther | Re: Real men don't attack straw men |
| Unix Fan | Chatting with developers? Is it soo 1996? |
| Steve B | Re: ipsec vpn? |
| Vegard Nossum | Re: [bug, netconsole, SLUB] BUG skbuff_head_cache: Poison overwritten |
| Jarek Poplawski | Re: NMI lockup, 2.6.26 release |
| Tomas Winkler | [PATCH] iwlwifi: RS small compile warnings without CONFIG_IWLWIFI_DEBUG |
| Simon Horman | Re: [PATCH] sendfile() and UDP socket |
