Subject: [PATCH] Physical mem start different from 0

From: moreau francis <[email-masked]>
Date: Fri, 8 Apr 2005 14:58:56 +0200 (CEST)

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) */