Pete Popov wrote:
Atsushi Nemoto wrote:
On Sun, 10 Oct 2004 17:47:20 -0700, Pete Popov
ppopov> Clearly a buglet, carried over from 2.4. That section of the
ppopov> code wouldn't even be compiled, since CONFIG_MIPS64 is not
ppopov> defined. I'll remove that and send a new patch. Anything else
ppopov> you see that's suspicious :)?
Hi. I wonder why following change is needed.
--- include/asm-mips/page.h 20 Aug 2004 12:02:18 -0000 1.44
+++ include/asm-mips/page.h 19 Sep 2004 22:51:29 -0000
@@ -32,7 +32,7 @@
#define PAGE_SHIFT 16
-#define PAGE_SIZE (1UL << PAGE_SHIFT)
+#define PAGE_SIZE (1L << PAGE_SHIFT)
#define PAGE_MASK (~(PAGE_SIZE-1))
It was related to some compiler problem I mentioned to Ralf sometime
ago. Perhaps it's not needed anymore, I'll take a look.
Turns out the problem is with the #define PAGE_MASK, when (1UL <<
PAGE_SHIFT) is used for PAGE_SIZE. The correct fix is already in the PPC
tree and it doesn't use PAGE_SIZE to define PAGE_MASK. From the PPC tree:
* Subtle: this is an int (not an unsigned long) and so it
* gets extended to 64 bits the way [we] want (i.e. with 1s). -- paulus
#define PAGE_MASK (~((1 << PAGE_SHIFT) - 1))
I updated the patch and put a new version in my directory (v1.3). The
-#define PAGE_MASK (~(PAGE_SIZE-1))
+#define PAGE_MASK (~((1 << PAGE_SHIFT) - 1))
I'll work on the remap_pfn_range after those bits get to kernel.org.
That will clean up the patch nicely.