static void poison_page(struct page *page) { void *addr = kmap_atomic(page); set_page_poison(page); memset(addr, PAGE_POISON, PAGE_SIZE); kunmap_atomic(addr); }
static void poison_page(struct page *page) { void *addr; if (PageHighMem(page)) { poison_highpage(page); return; } set_page_poison(page); addr = page_address(page); memset(addr, PAGE_POISON, PAGE_SIZE); }
static void poison_page(struct page *page) { /* IAMROOT-12AB: * ------------- * 커널에서 특정 물리메모리 페이지를 직접 사용할 경우 kmap_atomic() 함수를 * 사용하면 lowmem에 대해서는 매핑없이(이미 1:1 매핑이 되어 있으므로) * 접근하고, highmem에 대해서는 fixmap을 이용하여 매핑 후 접근할 수 있도록 한다. */ void *addr = kmap_atomic(page); /* IAMROOT-12AB: * ------------- * page_ext->flags의 PAGE_EXT_DEBUG_POISON 플래그를 설정하여 * 해당 페이지가 poison 디버깅중임을 알리고 해당 페이지를 * PAGE_POISON(0xaa)로 채운다. */ set_page_poison(page); memset(addr, PAGE_POISON, PAGE_SIZE); kunmap_atomic(addr); }