From mboxrd@z Thu Jan 1 00:00:00 1970 Subject: Re: [PATCH] ppc64: Fix possible race with set_pte on a present PTE From: Benjamin Herrenschmidt In-Reply-To: References: <1085369393.15315.28.camel@gaston> <1085371988.15281.38.camel@gaston> <1085373839.14969.42.camel@gaston> <20040525034326.GT29378@dualathlon.random> <20040525114437.GC29154@parcelfarce.linux.theplanet.co.uk> <20040525153501.GA19465@foobazco.org> <20040525102547.35207879.davem@redhat.com> <20040525105442.2ebdc355.davem@redhat.com> <1085521251.24948.127.camel@gaston> <1085522860.15315.133.camel@gaston> <1085530867.14969.143.camel@gaston> <1085541906.14969.412.camel@gaston> <1085546780.5584.19.camel@gaston> Content-Type: text/plain Message-Id: <1085547339.5584.26.camel@gaston> Mime-Version: 1.0 Date: Wed, 26 May 2004 14:55:40 +1000 Content-Transfer-Encoding: 7bit Sender: owner-linux-mm@kvack.org Return-Path: To: Linus Torvalds Cc: "David S. Miller" , wesolows@foobazco.org, willy@debian.org, Andrea Arcangeli , Andrew Morton , Linux Kernel list , mingo@elte.hu, bcrl@kvack.org, linux-mm@kvack.org, Linux Arch list List-ID: On Wed, 2004-05-26 at 14:54, Linus Torvalds wrote: > On Wed, 26 May 2004, Benjamin Herrenschmidt wrote: > > > > Ok, your patch just missed the do_wp_page() case which needs the same > > medication as break_cow(), which leaves us with only one caller of > > ptep_establish... the one which just sets those 2 bits and shouldn't > > be named ptep establish at all ;) > > Actually, the do_wp_page() one doesn't change the page, but it potentially > changes _three_ bits: accessed, dirty _and_ writable. Hrm... that would work if we only ever set writable, so yes. > But the fix on ppc64 should be to add the writable bit to the mask of > things, and rename the function to reflect that fact. > > > I'd rather have ptep_establish do the ptep_clear_flush & set_pte, and > > the later just do the bit flip, but then, the arch (and possibly > > generic) implementation of that bit flip must also do the TLB flush > > when necessary (it's not on ppc). > > I agree on the renaming, but please don't use the ptep_clear_flush() in > do_wp_page(), because it really isn't changing the virtual mapping, it's > only a (slightly) extended case of the same old "set another bit". Ok, I just wasn't sure what this function was all about. I'll cook a new patch including all the changes we discussed, may take some time, but hopefully you'll get it today. Ben. -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: aart@kvack.org