为什么对 kmalloc 分配的内存做 ioremap 会导致崩溃?

我们知道 kmalloc 分配的内存可以用一个宏 __virt_to_phys 来取得对应的物理内存。我发现,如果对这块物理内存再做 ioremap 并且读写 ioremap 之后的内存,内核就会崩溃。请问各位这可能是什么原因?谢谢。

详见附件中的代码,我的测试平台是 arm 平台。 testmem.rar (871 Bytes)
测试代码
下载次数: 1
2011-01-27 16:23

作者: tassard   发布时间: 2011-01-27

本帖最后由 amarant 于 2011-01-27 17:14 编辑

__virt_to_phys(pdstbuff)  这个函数只对非高端内存有用吧。你检查下返回的地址是不是不在直接可以映射的范围了?

作者: amarant   发布时间: 2011-01-27