2017-11-08 29 views

답변

0

코드를 확인하면 쉽게 볼 수 있습니다.

한 번에 하나의 매핑 만 허용 할 수 있습니다. - 상상 발생하는 경우 매핑을 설정하기 시작 후 인터럽트 화재, 예를 들어, 당신이 가고있다

area = &get_cpu_var(zs_map_area); 
area->vm_mm = mm; 
if (off + class->size <= PAGE_SIZE) { 
     /* this object is contained entirely within a page */ 
     area->vm_addr = kmap_atomic(page); 
     ret = area->vm_addr + off; 
     goto out; 
} 

/* this object spans two pages */ 
pages[0] = page; 
pages[1] = get_next_page(page); 

그리고 : 이제

살펴 보겠습니다 영역 -> vm_mm = mm 라인 이후. 수행 된 작업은 처리기에서 실행되는 코드에 의해 덮어 쓰여지지만 처리기가 반환 한 후에는 처리 할 코드가 없으므로 버그가 발생합니다.