【问题标题】:Taking `struct page` of PCI region获取 PCI 区域的 struct page
【发布时间】:2014-01-01 09:00:23
【问题描述】:

我正在编写一个内核模块(2.6.32-358.el6.x86_64,在 VirtualBox 中)。 我尝试获取与物理地址0xf0000000相对应的struct page,它似乎在PCI区域(/proc/iomem显示f0000000-f001ffff : 0000:00:03.0)。

unsigned long phys = 0xf0000000;
struct page *p = pfn_to_page(phys >> PAGE_SHIFT);
printk(KERN_NOTICE "page %p", p); // shows ffffea0003480000

但是,它似乎不是一个有效的指针,因为每次尝试访问 p 字段都会导致系统崩溃(完全冻结)。

上面的代码有什么问题? PCI 地址范围没有适当的struct page 吗?

【问题讨论】:

    标签: linux-kernel linux-device-driver


    【解决方案1】:
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-25
    • 1970-01-01
    • 2021-01-21
    • 2014-04-25
    • 1970-01-01
    相关资源
    最近更新 更多