On Fri, Sep 21, 2018 at 02:34:32PM -0700, Dave Hansen wrote: > On 09/19/2018 01:50 AM, Peter Zijlstra wrote: > > @@ -1528,28 +1538,8 @@ static int __change_page_attr(struct cpa > > * We have to split the large page: > > */ > > err = split_large_page(cpa, kpte, address); > > - if (!err) { > ... > > - flush_tlb_all(); > > + if (!err) > > goto repeat; > > - } > > I _think_ this is the only use of split_large_page()'s error code. We > can just make it return void now, right?
Then how does it decide to goto repeat or error out? > BTW, I also really like doing the "final" TLB flush as close as possible > to the actual PTE manipulation. Makes it much less likely that we break it. Yes.