what to use for pte_offset, pte_offset_kernel ? with bigmem confi gured
[email protected] Wed, 19 Nov 2003 16:02:59 -0600
| Newsgroups | gmane.linux.redhat.devel |
|---|---|
| Message-ID | <34D72BA50C420D40885D01D9966524F60157A661@ausx2kmpc105.aus.amer.dell.com> |
Hello, I have an x86 computer running Red Hat Linux 9.0, kernel 2.4.20-8bigmem #SMP. with 8G memory, SMP and BIGMEM configured. For a non-red-hat 2.4.20 kernel, a macro pte_offset is defined in asm-i386/pgtable.h But it is not defined in the red hat 9.0 kernel 2.4.20-8. In the Red Hat kernel I found "__pte_offset()" and some pte_offset_kernel (),pte_offset_map" and " pte_offset_map_nested". pte_offset_kernel() seemed to match the args, but I doubt that's correct, for it actually crushed my driver. I did find the same definitions of pte_offset_kernel, pte_offset_map and pte_offset_map_nested in the non Red Hat kernel 2.6-test version. It seems Red Hat 9.0 is using some of the kernel.org's 2.6 kernel code. My driver code can run through pgd_offset(), pmd_offset() all fine, and once it hits pte_offset_kernel(), it dies. A message is reported: "Unable to handle kernel paging request at virtual address 9236b4d0. I guess that my driver is not handling the bigmem correctly. (I have 8G memory). Could someone tell me what to use to replace the pte_offset in my driver / module code. pte_offset() works fine for me on the non Red Hat kernels. p.s. What I am doing in the driver is to find the physical address given a PID and a virtual address of a user process. Thanks a lot!!! [email protected]