在 page_alloc.c 中传递 VALID_PAGE(页)

pass VALID_PAGE(page) in page_alloc.c

我在我的用户space中伪造了一个struct page进入内核,但我无法通过内核中的VALID_PAGE检查。它是这样定义的:

这是什么意思?我不知道 page - mem_mapmax_mapnr 是。我的假page怎么能通过这个检查呢?

mem_map 是 struct page 的全局数组,pfn 是 mem_map 数组中索引的键.... (page - mem_map) 会给你索引mem_map 数组中的页面.... max_mapnr 看起来是 mem_map 中的有效索引。我希望它能回答你的问题。