Thread (5 messages) 5 messages, 4 authors, 2002-07-17
  • (off-list ancestor, not in this archive)
  • Re: PATCH · Ralf Baechle <hidden> · 2002-07-16
  • Re: PATCH · Pete Popov <hidden> · 2002-07-16
  • Re: PATCH · Joe George <hidden> · 2002-07-16
  • Re: PATCH · Pete Popov <hidden> · 2002-07-16
  • Re: PATCH · Vivien Chappelier <hidden> · 2002-07-17

Re: PATCH

From: Joe George <hidden>
Date: 2002-07-16 17:38:51

I'll disagree with both of you so I may learn from the flames. :-)

First it's true the patch wasn't formatted for oss and should have
been rejected on that basis.  At least my patches would be. :)

But Vivien Chappelier said it fixed his X server problem in mips64.
CONFIG_64BIT_PHYS_ADDR is applicable to both 36 and 64
bit code, I think.

So the crux of my question is, if an unsigned long long pte is
and'ed with an unsigned long PAGE_CHG_MASK what happens
to the upper 32 bits of pte.  On a 64 bit processor is PAGE_CHG_MASK
sign extended so everything is fine, or does it zero the upper
32 bits?

Joe


Pete Popov wrote:
On Tue, 2002-07-16 at 08:07, Ralf Baechle wrote:
quoted
On Mon, Jul 15, 2002 at 03:29:10PM -0700, Pete Popov wrote:

quoted
--- include/asm-mips/pgtable.h.old	Fri Jul 12 17:25:19 2002
+++ include/asm-mips/pgtable.h	Fri Jul 12 17:25:36 2002
@@ -332,7 +332,9 @@
static inline pte_t pte_modify(pte_t pte, pgprot_t newprot)
{
-	return __pte(((pte).pte_low & _PAGE_CHG_MASK) | pgprot_val(newprot));
+	pte.pte_low &= _PAGE_CHG_MASK;
+	pte.pte_low |= pgprot_val(newprot);
+	return pte;
}
This patch certainly doesn't apply to oss.  Seems somebody did copy all
the x86 pte_t and stuff into your tree without too much thinking ...
That's right, I forgot you don't have the 36 bit code that uses pte_low
and pte_high.  

Pete
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help