Hello John, comments inline; On Fri, 2020-02-07 at 14:54 -0800, John Hubbard wrote: > On 2/5/20 7:25 PM, Leonardo Bras wrote: > > On Thu, 2020-02-06 at 00:08 -0300, Leonardo Bras wrote: > > > gup_pgd_range(addr, end, gup_flags, pages, &nr); > > > - local_irq_enable(); > > > + end_lockless_pgtbl_walk(IRQS_ENABLED); > > > ret = nr; > > > } > > > > > > > Just noticed IRQS_ENABLED is not available on other archs than ppc64. > > I will fix this for v7. > > > > What's the fix going to look like, approximately? I am not sure what is the best approach yet. 1. On irq_mask == 0, always enable irq on end_lockless_pgtbl_walk(). Not sure how bat would that affect other archs. 2. Add another function like end_lockless_pgtbl_walk_irqen() that always enables IRQ. 3. Add another parameter in end_lockless_pgtbl_walk(), so that caller can choose ii IRQ must be enabled. Also, not sure if internal_get_user_pages_fast() can possibly be called with IRQ disabled, and then return with it enabled. Maybe just saving/restoring should be fine. Other suggestions are welcome. > > > thanks, Best regards, Leonardo Bras