Paul Mackerras <paulus@xxxxxxxxx> writes: > On Wed, Oct 09, 2013 at 12:47:31PM -0500, Scott Wood wrote: >> On Wed, 2013-10-09 at 03:48 -0500, Bhushan Bharat-R65777 wrote: >> > >> > What lookup_linux_pte_and_update() does:- >> > - find_linux_pte_or_hugepte() >> > - does size and some other trivial checks >> > - Then atomically update the pte:- >> > => while() >> > => wait till _PAGE_BUSY is clear >> > => atomically update the pte >> > => if not updated then go back to while() above else break >> > >> > >> > While what lookup_linux_pte() does:- >> > - find_linux_pte_or_hugepte() >> > - does size and some other trivial checks >> > - wait till _PAGE_BUSY is clear >> > - return pte >> > >> > I am finding it difficult to call lookup_linux_pte() from lookup_linux_pte_and_update(). >> >> You could factor out a common lookup_linux_ptep(). > > I don't really think it's enough code to be worth wringing out the > last drop of duplication. However, if he removed the checks for > _PAGE_BUSY and _PAGE_PRESENT as I suggested in another mail, and made > it return the pte pointer rather than the value, it would then > essentially be a lookup_linux_ptep() as you suggest. We also need to check for _PAGE_SPLITTING before going ahead and using the pte value -aneesh -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html