the first 3GB in VA is left for process itself, and the fourth gigabyte is left for kernel. during the kernel booting, va from PAGE_OFFSET was DIRECTLY mapped to pa from 0 and thats why we subtract PAGE_OFFSET. but that was constrained for RAM size belows 896 MB. I am instrested in how it works in the case of RAM size larger than 896 MB (and less than 4GB)? ram window? could anyone give me a detail about it ? > As per my understanding PAGE_OFFSET is the starting kernel virtual > address, that means kernel virtual address will start from > PAGE_OFFSET. > > My question is, why we are subtracting PAGE_OFFSET from a given > address in __pa() macro, is it because physically kernel code is > placed in lower memory. If this is not the reason, can someone please > clarify this ? > -- Kernelnewbies: Help each other learn about the Linux kernel. Archive: http://mail.nl.linux.org/kernelnewbies/ FAQ: http://kernelnewbies.org/faq/