为什么对 kmalloc 分配的内存做 ioremap 会导致崩溃?
我们知道 kmalloc 分配的内存可以用一个宏 __virt_to_phys 来取得对应的物理内存。我发现,如果对这块物理内存再做 ioremap 并且读写 ioremap 之后的内存,内核就会崩溃。请问各位这可能是什么原因?谢谢。
详见附件中的代码,我的测试平台是 arm 平台。 testmem.rar (871 Bytes)
详见附件中的代码,我的测试平台是 arm 平台。 testmem.rar (871 Bytes)
作者: tassard 发布时间: 2011-01-27
本帖最后由 amarant 于 2011-01-27 17:14 编辑
__virt_to_phys(pdstbuff) 这个函数只对非高端内存有用吧。你检查下返回的地址是不是不在直接可以映射的范围了?
__virt_to_phys(pdstbuff) 这个函数只对非高端内存有用吧。你检查下返回的地址是不是不在直接可以映射的范围了?
作者: amarant 发布时间: 2011-01-27