>> +++ b/mm/highmem.c >> @@ -220,8 +220,11 @@ static void flush_all_zero_pkmaps(void) >> set_page_address(page, NULL); >> need_flush = 1; >> } >> - if (need_flush) >> + if (need_flush) { >> + spin_unlock(&kmap_lock); >should this be a raw spin_unlock(), or should it be unlock_kmap()? >ie when ARCH_NEEDS_KMAP_HIGH_GET is set, do we also need to re-enable interrupts here? Thanks! Using lock_map/unlock_kmap is better. Patch V2 will be sent. 1.8.3.1