Ralf,
I'm sending to you a very trivial patch.
It's related to memory start address that does not
start at 0. This can easily be handled with uses of
"pfn_to_phys" and "virt_to_phys" macros. But some
parts of the kernel don't use them, and do for
instance
"addr << PAGE_SHIFT".
The patch deals with such cases in pgtable-32.h. If
you agree with, I'll send others patches to remove
them from every places I found.
Francis
__________________________________________________________________
Découvrez le nouveau Yahoo! Mail : 250 Mo d'espace de stockage pour vos mails !
Créez votre Yahoo! Mail sur http://fr.mail.yahoo.com/
--- pgtable-32.h.old 2005-04-08 14:37:00.231705720 +0200
+++ pgtable-32.h 2005-04-08 14:24:24.360615592 +0200
@@ -136,8 +136,8 @@ pfn_pte(unsigned long pfn, pgprot_t prot
#define pte_pfn(x) ((unsigned long)((x).pte >> (PAGE_SHIFT + 2)))
#define pfn_pte(pfn, prot) __pte(((pfn) << (PAGE_SHIFT + 2)) | pgprot_val(prot))
#else
-#define pte_pfn(x) ((unsigned long)((x).pte >> PAGE_SHIFT))
-#define pfn_pte(pfn, prot) __pte(((pfn) << PAGE_SHIFT) | pgprot_val(prot))
+#define pte_pfn(x) ((unsigned long)(phys_to_pfn((x).pte)))
+#define pfn_pte(pfn, prot) __pte((pfn_to_phys(pfn) | pgprot_val(prot)))
#endif
#endif /* defined(CONFIG_64BIT_PHYS_ADDR) && defined(CONFIG_CPU_MIPS32) */