x86 memsize > 1Gb patches.

David Woodhouse (Dave@imladris.demon.co.uk)
Fri, 13 Mar 1998 11:11:28 +0000


Is the module versioning system going to pick up on differences in
CONFIG_MAX_MEMSIZE?

Functions such as phys_to_virt et. al. are going to be horribly broken when we
compile modules with a different CONFIG_MAX_MEMSIZE to the kernel we're using.
I _know_ that the correct answer might be "user education", but we're not
designing an Alpha CPU here.

Should we make an outline version of the affected functions, and force the
modules to use that instead?

If this involves too much overhead, then perhaps we could make the
kernel's value of PAGE_OFFSET available to the modules, and their inline
function could use the value of that global variable.

Something like:
(in io.h)

#ifdef MODULE
#define __io_virt(x) ((void *)(kernel_page_offset | (unsigned long)(x)))
#define __io_phys(x) ((unsigned long)(x) & ~kernel_page_offset)
#else
#define __io_virt(x) ((void *)(PAGE_OFFSET | (unsigned long)(x)))
#define __io_phys(x) ((unsigned long)(x) & ~PAGE_OFFSET)
#endif

(in i386_ksyms.c)

EXPORT_SYMBOL(kernel_page_offset);

(somewhere else)

unsigned long kernel_page_offset = PAGE_OFFSET;

---- ---- ----
David Woodhouse, Robinson College, CB3 9AN, England. (+44) 0976 658355
Dave@imladris.demon.co.uk http://dwmw2.robinson.cam.ac.uk
finger pgp@dwmw2.robinson.cam.ac.uk for PGP key.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu