diff options
| author | Daniel McNeil <daniel@osdl.org> | 2005-03-28 03:17:20 -0800 |
|---|---|---|
| committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-03-28 03:17:20 -0800 |
| commit | dd29cece6828f979880ef7df013d946480410406 (patch) | |
| tree | adc78c50958ec204fcfa26272075eb0c2cb20eee /fs/proc/array.c | |
| parent | 8513620d370d3a60320c86468455a80979ad119d (diff) | |
[PATCH] ppc64: fix AIO panic on PPC64 caused by is_hugepage_only_range()
When testing AIO on PPC64 (a power5 machine) running 2.6.11 with
CONFIG_HUGETLB_PAGE=y, I ran into a kernel panic when a process exits that has
done AIO (io_queue_init()) but has not done the io_queue_release(). The
exit_aio() code is cleaning up and panicking when trying to free the aio ring
buffer.
I tracked this down to is_hugepage_only_range() (include/asm-ppc64/page.h)
which is doing a touches_hugepage_low_range() which is checking
current->mm->context.htlb_segs. The problem is that exit_mm() cleared tsk->mm
before doing the mmput() which leads to the exit_aio() and then the panic.
Looks like is_hugepage_only_range() is only used in ia64 and ppc64. Fix is to
change is_hugepage_only_range() to take an 'mm' as a parameter as well as
'addr' and 'len' and then the ppc64 code could change to use 'mm'. It looks
like it has been broken for quite a while.
Signed-off-by: Daniel McNeil <daniel@osdl.org>
Acked-by: David Gibson <dwg@au1.ibm.com>
Acked-by: "Luck, Tony" <tony.luck@intel.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'fs/proc/array.c')
0 files changed, 0 insertions, 0 deletions
