[PATCH] Proper fix for highmem kmap_atomic functions for VMI for 2.6.21
Since lazy MMU batching mode still allows interrupts to enter, it is possible for interrupt handlers to try to use kmap_atomic, which fails when lazy mode is active, since the PTE update to highmem will be delayed. The best workaround is to issue an explicit flush in kmap_atomic_functions case; this is the only way nested PTE updates can happen in the interrupt handler. Thanks to Jeremy Fitzhardinge for noting the bug and suggestions on a fix. This patch gets reverted again when we start 2.6.22 and the bug gets fixed differently. Signed-off-by:Zachary Amsden <zach@vmware.com> Cc: Andi Kleen <ak@muc.de> Cc: Jeremy Fitzhardinge <jeremy@goop.org> Signed-off-by:
Andrew Morton <akpm@linux-foundation.org> Signed-off-by:
Linus Torvalds <torvalds@linux-foundation.org>
Showing
- arch/i386/kernel/vmi.c 22 additions, 1 deletionarch/i386/kernel/vmi.c
- arch/i386/mm/highmem.c 2 additions, 0 deletionsarch/i386/mm/highmem.c
- include/asm-generic/pgtable.h 2 additions, 0 deletionsinclude/asm-generic/pgtable.h
- include/asm-i386/paravirt.h 3 additions, 0 deletionsinclude/asm-i386/paravirt.h
Loading
Please register or sign in to comment