static void unpoison_highpage(struct page *page) { /* * See comment in poison_highpage(). * Highmem pages should not be poisoned for now */ BUG_ON(page_poison(page)); }
static void unpoison_page(struct page *page) { void *addr; if (!page_poison(page)) return; addr = kmap_atomic(page); check_poison_mem(addr, PAGE_SIZE); clear_page_poison(page); kunmap_atomic(addr); }
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); }
static void unpoison_page(struct page *page) { void *addr; if (!page_poison(page)) return; /* IAMROOT-12AB: * ------------- * 페이지 프레임에서 POISON 데이터를 확인하여 이상이 있는 경우 메시지를 * 출력하여 경고한다. 그 후 page_ext->flags의 PAGE_EXT_DEBUG_POISON 플래그를 * clear한다. */ addr = kmap_atomic(page); check_poison_mem(addr, PAGE_SIZE); clear_page_poison(page); kunmap_atomic(addr); }