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

Re: A few patches for 2.4.x for Alpha...



On Wed, Aug 01, 2001 at 06:53:17PM -0400, Daniel Potts wrote:
> Attached is a (possibly temporary) patch for another 2.4 bug I found. This
> time, executing something like the following code will cause a crash to srm
> or an oops:
> {
>   unsigned long *myaddr = 0xffffffffffffc000;
>   *myaddr = 7; /* bye bye */
> }
> 
> It appears to me that the self-mapping entry in each task page table is
> somehow getting corrupted, causing user mode permission bits to be set. I
> don't even know why we have this mapping because a running kernel does not
> use it. While the patch does make it go away, I'm still concerned that
> something just happened to trash that memory. This one needs to be examined
> closer.
> 
> Line 63 of linux-2.4.7/arch/alpha/mm/init.c

I think the problem is that that is an entry in the pgd, it's not a pte,
so it's a kind of corrupted entry in first place. I also don't know how
can it be useful so I like your patch.

> Btw, the clrfen and illop bug patch (entry.S/proto.h/traps.c) need to be
> applied to 2.2.x kernels also!

are you sure you don't break backwards compatibility with this change
(or you only wanted to include the illop patch)?

@@ -409,7 +426,7 @@
                break;

              case 3: /* FEN fault */
-               send_sig(SIGILL, current, 1);
+               send_sig(SIGFPE, current, 1);
                break;

              case 4: /* opDEC */
Andrea



Reply to: