On Fri, Dec 19, 2008 at 11:28 AM, Kyle McMartin <kyle@xxxxxxxxxxxxx> wrote: > On Fri, Dec 19, 2008 at 11:23:39AM -0500, Carlos O'Donell wrote: >> On Fri, Dec 19, 2008 at 11:13 AM, John David Anglin >> <dave@xxxxxxxxxxxxxxxxxx> wrote: >> >> > For future reference, in mmu_context.h. Bloody tricky mtctl() macro >> >> > doesn't take a prefix, just the numeric cr #. >> >> >> >> Evil. >> > >> > If this is a problem with the WD bit, the problem is likely here: >> > >> > mtctl(context >> (SPACEID_SHIFT - 1),8); >> > >> > It's possible this might set the WD bit depending on the alignment >> > of context and the value of SPACEID_SHIFT on your machine. If you >> > can duplicate, maybe add a BUG_ON. On hppa64, all structs are passed >> > by value, so the alignment of context may only be BIGGEST_ALIGNMENT. >> >> The value of context is a space id (the value returned by alloc_sid()) >> and is not related to any alignment? > > It's a typedef to an unsigned long. I'm not sure we've seen this on a > 64-bit kernel (which is the SPACEID_SHIFT one.) > > On a 32-bit kernel (where I've been able to reproduce this) we do a > leftshift by one, so the WD bit is guaranteed to be 0. John has a good point though, we might as well assert that? c. -- To unsubscribe from this list: send the line "unsubscribe linux-parisc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html