Messages in this thread | | | From | Blaisorblade <> | Subject | Re: [uml-devel] Re: [PATCH 07/10] uml: avoid fixing faults while atomic | Date | Wed, 21 Sep 2005 22:22:50 +0200 |
| |
On Wednesday 21 September 2005 21:49, Andrew Morton wrote: > "Paolo 'Blaisorblade' Giarrusso" <blaisorblade@yahoo.it> wrote: > > From: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
> The in_atomic() test in x86's do_page_fault() is in fact a message passed > into it from filemap.c's kmap_atomic(). Ok, this can be ok, but: > It has accidental side-effects, > such as making copy_to_user() fail if inside spinlocks when > CONFIG_PREEMPT=y. Sorry, but should it ever succeed inside spinlocks? I mean, should it ever call down() inside spinlocks? (We never do down_trylock, and ever if we did the x86 trick, that wouldn't make the whole thing safe at all - they still take the spinlock and potentially sleep. And it's legal only if no spinlock is held).
Even if spinlocks don't always trigger in_atomic() - which means that we'd need to have a better fix for this.
(Btw, I took the above reasoning from something said, as an aside, on LWN.net kernel page, about the FUTEX deadlock on mm->mmap_sem of ~ 2.6.8 - yes, it wasn't the full truth, but not totally dumb).
> So I think this change is only needed if UML implements kmap_atomic, as in > arch/i386/mm/highmem.c, which it surely does not do? NACK, see above.
-- Inform me of my mistakes, so I can keep imitating Homer Simpson's "Doh!". Paolo Giarrusso, aka Blaisorblade (Skype ID "PaoloGiarrusso", ICQ 215621894) http://www.user-mode-linux.org/~blaisorblade
___________________________________ Yahoo! Mail: gratis 1GB per i messaggi e allegati da 10MB http://mail.yahoo.it
- 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/
| |