linux/arch/um
Paolo 'Blaisorblade' Giarrusso cbc24afa82 [PATCH] uml: remove bogus WARN_ON, triggerable harmlessly on a page fault race
The below warning was added in place of pte_mkyoung(); if (is_write)
pte_mkdirty();

In fact, if the PTE is not marked young/dirty, our dirty/accessed bit
emulation would cause the TLB permission not to be changed, and so we'd loop,
and given we don't support preemption yet, we'd busy-hang here.

However, I've seen this warning trigger without crashes during a loop of
concurrent kernel builds, at random times (i.e. like a race condition), and I
realized that two concurrent faults on the same page, one on read and one on
write, can trigger it. The read fault gets serviced and the PTE gets marked
writable but clean (it's possible on a shared-writable mapping), while the
generic code sees the PTE was already installed and returns without action. In
this case, we'll see another fault and service it normally.

Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Acked-by: Jeff Dike <jdike@addtoit.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-11-13 18:14:14 -08:00
..
drivers Merge master.kernel.org:/home/rmk/linux-2.6-drvmodel 2005-11-11 09:24:26 -08:00
include [PATCH] uml: big memory fixes 2005-11-07 07:53:31 -08:00
kernel [PATCH] uml: remove bogus WARN_ON, triggerable harmlessly on a page fault race 2005-11-13 18:14:14 -08:00
os-Linux [PATCH] uml: big memory fixes 2005-11-07 07:53:31 -08:00
scripts [PATCH] uml: maintain own LDT entries 2005-11-07 07:53:31 -08:00
sys-i386 [PATCH] uml: maintain own LDT entries 2005-11-07 07:53:31 -08:00
sys-ia64 Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sys-ppc [PATCH] uml: stack dump fix 2005-05-28 16:46:13 -07:00
sys-x86_64 [PATCH] uml: maintain own LDT entries 2005-11-07 07:53:31 -08:00
config.release Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
defconfig [PATCH] uml: skas0 - separate kernel address space on stock hosts 2005-07-07 18:23:44 -07:00
Kconfig [PATCH] uml: make tt mode-dependent options depend on MODE_TT 2005-11-07 07:53:32 -08:00
Kconfig.char [PATCH] uml: Rename Kconfig files to be like the other arches 2005-09-05 00:06:19 -07:00
Kconfig.debug [PATCH] uml: workaround GDB problems on debugging 2005-09-05 00:06:20 -07:00
Kconfig.i386 [PATCH] uml: UML/i386 cmpxchg fix 2005-09-17 11:50:01 -07:00
Kconfig.net [PATCH] uml: Rename Kconfig files to be like the other arches 2005-09-05 00:06:19 -07:00
Kconfig.scsi [PATCH] uml: Rename Kconfig files to be like the other arches 2005-09-05 00:06:19 -07:00
Kconfig.x86_64 [PATCH] uml: fix "reuse i386 cpu optimizations" 2005-10-30 17:37:16 -08:00
Makefile [PATCH] uml: big memory fixes 2005-11-07 07:53:31 -08:00
Makefile-i386 [PATCH] uml: build host-binaries with the native host arch again 2005-11-07 07:53:32 -08:00
Makefile-ia64 Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
Makefile-os-Linux Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
Makefile-ppc Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
Makefile-skas [PATCH] uml makefiles sanitized 2005-09-29 08:46:26 -07:00
Makefile-tt Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
Makefile-x86_64 [PATCH] uml makefiles sanitized 2005-09-29 08:46:26 -07:00