On Fri, 2010-04-09 at 18:46 +1000, Nick Piggin wrote: > > struct mmu_page { > > struct page *page; > > #ifdef HAVE_ARCH_TLB_VADDR > > unsigned long vaddr; > > #endif > > }; > > Well you could also have a per-arch struct for this, which they can > fill in their own info with (I think powerpc takes the pte as well) Ah, right you are. Maybe something like: #ifndef tlb_fill_page struct mmu_page { struct page *page; }; #define tlb_fill_page(tlb, pte, addr) do { } while (0) #endif Which can be used from the tlb_remove_tlb_entry() implementation to gather both the pte and addr. The only complication seems to be that tlb_remove_tlb_entry() and tlb_remove_page() aren't always matched. Also, it looks like both power and sparc drive the pte/vaddr flush from the pte_update/set_pte_at like functions. Which means its not synced to the mmu_gather at all. So I'm not at all sure its feasible to link these, but I'll keep it in mind. -- To unsubscribe from this list: send the line "unsubscribe linux-arch" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html