Re: x86 memsize > 1Gb patches.

Jakub Jelinek (jj@sunsite.ms.mff.cuni.cz)
Wed, 18 Mar 1998 22:47:10 +0100 (MET)


>
> On Wed, 18 Mar 1998, Martin Mares wrote:
>
> > Stability and safety is fulfiled even in the solution I proposed -- modules
> > compiled for different kernel settings could not be inserted.
>
> Thereby making it unusually difficult for companies to
> give out binary drivers.
> I know, people don't like binary drivers. But some companies
> _only_ want to give out binary drivers, so we'll want to
> provide some _standard_ interface.

Ok, I have a pretty simple solution for this to both maintain speed
and support binary drivers (well, I'm not a Intel hacker, so I may be wrong
- someone should test it):

(I don't have the unmodified 90 source handy, so this is just a pseudo
patch):

arch/i386/kernel/i386_ksyms.c:

EXPORT_SYMBOL_NOVERS(__put_user_2);
EXPORT_SYMBOL_NOVERS(__put_user_4);
+ EXPORT_SYMBOL_NOVERS(__kernel_offset__);

EXPORT_SYMBOL(strncpy_from_user);

include/asm-i386/page.h:

#define __PAGE_OFFSET ((0x1000-CONFIG_MAX_MEMSIZE)<<20)
- #define PAGE_OFFSET ((unsigned long)__PAGE_OFFSET)
+ extern unsigned long __kernel_offset__;
+ #ifdef MODULE
+ # define PAGE_OFFSET ((unsigned long)&__kernel_offset__)
+ #else
+ # define PAGE_OFFSET ((unsigned long)__PAGE_OFFSET)
+ #endif
#define __pa(x) ((unsigned long)(x)-PAGE_OFFSET)
#define __va(x) ((void *)((unsigned long)(x)+PAGE_OFFSET))

Cheers,
Jakub
___________________________________________________________________
Jakub Jelinek | jj@sunsite.mff.cuni.cz | http://sunsite.mff.cuni.cz
Administrator of SunSITE Czech Republic, MFF, Charles University
___________________________________________________________________
Ultralinux - first 64bit OS to take full power of the UltraSparc
Linux version 2.1.89 on a sparc64 machine (498.80 BogoMips).
___________________________________________________________________

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