On Thu, Apr 30, 2020 at 01:38:44PM -0700, ira.weiny@xxxxxxxxx wrote: > -static inline void *kmap_atomic(struct page *page) > +static inline void *kmap_atomic_prot(struct page *page, pgprot_t prot) > { > preempt_disable(); > pagefault_disable(); > if (!PageHighMem(page)) > return page_address(page); > - return kmap_atomic_high(page); > + return kmap_atomic_high_prot(page, prot); > } > +#define kmap_atomic(page) kmap_atomic_prot(page, kmap_prot) OK, so it *was* just a bisect hazard - you return to original semantics wrt preempt_disable()...