Messages in this thread Patch in this message | | | Date | Sat, 01 Sep 2007 14:09:43 -0700 | From | Jeremy Fitzhardinge <> | Subject | Re: [PATCH] Fix preemptible lazy mode bug |
| |
Zachary Amsden wrote: > Do you agree it is better to be safe than sorry in this case? The > kind of bugs introduced by getting this wrong are really hard to find, > and I would rather err on the side of an extra increment and decrement > of preempt_count that causing a regression.
I think this patch is the direction we should go. I this this would work equally well for the other pv implementations; it would probably go into the common lazy mode logic when we get around to doing it.
J
diff -r b3fcc228c531 arch/i386/xen/enlighten.c --- a/arch/i386/xen/enlighten.c Mon Aug 20 14:20:15 2007 -0700 +++ b/arch/i386/xen/enlighten.c Mon Aug 27 13:40:24 2007 -0700 @@ -250,6 +250,9 @@ static void xen_halt(void) static void xen_set_lazy_mode(enum paravirt_lazy_mode mode) { + if (preemptible() && mode == PARAVIRT_LAZY_FLUSH) + return; /* nothing to flush with preempt on */ + BUG_ON(preemptible()); switch (mode) {
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |