lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Thu, 14 Aug 2008 13:47:17 +0100 (BST) From: Hugh Dickins <hugh@...itas.com> To: Peter Zijlstra <a.p.zijlstra@...llo.nl> cc: Nick Piggin <npiggin@...e.de>, Linux Memory Management List <linux-mm@...ck.org>, Linux Kernel Mailing List <linux-kernel@...r.kernel.org> Subject: Re: [rfc][patch] mm: dirty page accounting race fix On Thu, 14 Aug 2008, Peter Zijlstra wrote: > On Thu, 2008-08-14 at 12:55 +0100, Hugh Dickins wrote: > > > But I got a bit distracted: mprotect's change_pte_range is > > traditionally where the pte_modify operation has been split up into > > stages on some arches, that really can be restricting permissions > > and needs to tread carefully. Now I go to look there, I see its > > /* > > * Avoid taking write faults for pages we know to be > > * dirty. > > */ > > if (dirty_accountable && pte_dirty(ptent)) > > ptent = pte_mkwrite(ptent); > > > > and get rather worried: isn't that likely to be giving write permission > > to a pte in a vma we are precisely taking write permission away from? > > Exactly, we do that because the page is already dirty, therefore we do > not need to trap on write to mark it dirty - at least, that was the idea > behind this optimization. I realized that was the intended optimization, what I'd missed is that dirty_accountable can only be true there if (vma->vm_flags & VM_WRITE): that's checked in vma_wants_writenotify(), which is how dirty_accountable gets to be set. So those lines are okay, panic over, phew. Hugh -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists