i believe here we are not dealing with virtual addresses at all since
kernel uses only physical ones. also, since linking of modules takes
place only at load time, those offset addresses will also be properly
translated to kernel physical memory.
Hi,
I am not sure if this is entirely correct. The kernel does use virtual addresses at a lot of places. I am myself not very sure what exactly is the structure, but atleast in drivers I have seen a lot of physical I/O addresses being translated to virtual addresses and then being used in the code. grep for __pa() and __va() functions. Linux Device Drivers, 3rd edition may be a good reference to read.
Regards,
http://flickr.com/photos/prateekdayal