Re: [PATCH] [RFC] fix kernel crash (protection id trap) when

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

[Index of Archives]     [Linux SoC]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux