static void unpoison_page(struct page *page) { if (PageHighMem(page)) { unpoison_highpage(page); return; } if (page_poison(page)) { void *addr = page_address(page); check_poison_mem(addr, PAGE_SIZE); clear_page_poison(page); } }
static void unpoison_page(struct page *page) { if (PageHighMem(page)) { unpoison_highpage(page); return; } if (page_poison(page)) { void *addr = page_address(page); check_poison_mem(addr, PAGE_SIZE); clear_page_poison(page); } addr = kmap_atomic(page); check_poison_mem(addr, PAGE_SIZE); mark_addr_rdwrite(addr); clear_page_poison(page); kunmap_atomic(addr); }