Messages in this thread | | | Date | Wed, 27 Oct 2010 13:46:47 -0400 | From | Rik van Riel <> | Subject | Re: [RFT][PATCH] mm: Fix race in kunmap_atomic() |
| |
On 10/27/2010 10:54 AM, Peter Zijlstra wrote:
> Christoph reported a nice splat which illustrated a race in the new > stack based kmap_atomic implementation. > > The problem is that we pop our stack slot before we're completely done > resetting its state -- in particular clearing the PTE (sometimes that's > CONFIG_DEBUG_HIGHMEM). If an interrupt happens before we actually clear > the PTE used for the last slot, that interrupt can reuse the slot in a > dirty state, which triggers a BUG in kmap_atomic(). > > Fix this by introducing kmap_atomic_idx() which reports the current slot > index without actually releasing it and use that to find the PTE and > delay the _pop() until after we're completely done. > > Reported-by: Christoph Hellwig<hch@infradead.org> > Signed-off-by: Peter Zijlstra<a.p.zijlstra@chello.nl>
Acked-by: Rik van Riel <riel@redhat.com>
-- All rights reversed
| |