The patch titled lguest: fix obscure but nasty cow bug has been added to the -mm tree. Its filename is lguest-the-host-code-fix-obscure-but-nasty-cow-bug.patch *** Remember to use Documentation/SubmitChecklist when testing your code *** See http://www.zip.com.au/~akpm/linux/patches/stuff/added-to-mm.txt to find out what to do about this ------------------------------------------------------ Subject: lguest: fix obscure but nasty cow bug From: Rusty Russell <rusty@xxxxxxxxxxxxxxx> Nasty bug where the host is the first to write a MAP_PRIVATE page: the guest still references the old one and won't see the write. This can happen with just the wrong data layouts for the initial setup hypercall (the other places in the code are always written guest-first). Signed-off-by: Rusty Russell <rusty@xxxxxxxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- drivers/lguest/hypercalls.c | 6 ++++++ 1 files changed, 6 insertions(+) diff -puN drivers/lguest/hypercalls.c~lguest-the-host-code-fix-obscure-but-nasty-cow-bug drivers/lguest/hypercalls.c --- a/drivers/lguest/hypercalls.c~lguest-the-host-code-fix-obscure-but-nasty-cow-bug +++ a/drivers/lguest/hypercalls.c @@ -155,6 +155,12 @@ static void initialize(struct lguest *lg || put_user(4U*1024*1024, &lg->lguest_data->reserve_mem) || put_user(lg->guestid, &lg->lguest_data->guestid)) kill_guest(lg, "bad guest page %p", lg->lguest_data); + + /* This is the one case where the above accesses might have + * been the first write to a Guest page. This may have caused + * a copy-on-write fault, but the Guest might be referring to + * the old (read-only) page. */ + guest_pagetable_clear_all(lg); } /* Even if we go out to userspace and come back, we don't want to do _ Patches currently in -mm which might be from rusty@xxxxxxxxxxxxxxx are origin.patch array_size-check-for-type.patch git-kbuild.patch xfs-clean-up-shrinker-games.patch mm-clean-up-and-kernelify-shrinker-registration.patch module-use-krealloc.patch get_futex_key-get_key_refs-and-drop_key_refs.patch futex-restartable-futex_wait.patch add-ability-to-keep-track-of-callers-of-symbol_getput.patch update-mtd-use-of-symbol_getput.patch update-dvb-use-of-symbol_getput.patch simplify-module_get_kallsym-by-dropping-length-arg.patch fix-race-between-rmmod-and-cat-proc-kallsyms.patch simplify-kallsyms_lookup.patch fix-race-between-cat-proc-wchan-and-rmmod-et-al.patch fix-race-between-cat-proc-slab_allocators-and-rmmod.patch ____call_usermodehelper-dont-flush_signals.patch wait_for_helper-remove-unneeded-do_sigaction.patch futex-new-private-futexes.patch lguest-the-guest-code.patch lguest-vs-x86_64-mm-use-per-cpu-variables-for-gdt-pda.patch lguest-the-guest-code-update-lguests-patch-code-for-new-paravirt-patch.patch lguest-the-guest-code-handle-new-paravirt-lazy-mode-fix-userspace.patch lguest-the-host-code.patch lguest-the-host-code-vs-x86_64-mm-i386-separate-hardware-defined-tss-from-linux-additions.patch lguest-the-host-code-fix-lguest-oops-when-guest-dies-while-receiving-i-o.patch lguest-the-host-code-simplification-dont-pin-guest-trap-handlers.patch lguest-the-host-code-properly-kill-guest-userspace-programs-accessing-kernel-mem.patch lguest-the-host-code-remove-put_user-etc-warnings-add-bloat.patch lguest-the-host-code-fix-obscure-but-nasty-cow-bug.patch lguest-the-asm-offsets.patch lguest-the-makefile-and-kconfig.patch lguest-the-console-driver.patch lguest-the-net-driver.patch lguest-the-block-driver.patch lguest-the-documentation-example-launcher.patch lguest-the-documentation-example-launcher-fix-lguest-documentation-error.patch lguest-documentation-and-example-updates.patch lguest-the-host-code-vs-futex-new-private-futexes.patch mm-clean-up-and-kernelify-shrinker-registration-reiser4.patch - To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html