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);
}
Exemplo n.º 2
0
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);
}
Exemplo n.º 3
0
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);
}