On Tue, 2009-07-07 at 13:44 -0400, Mike Frysinger wrote:
> On Tue, Jul 7, 2009 at 05:33, <[email protected]> wrote:
> > Modified: branches/2009R1/arch/blackfin/include/asm/mmu_context.h (6939 =>
> > 6940)
> >
> > @@ -127,17 +127,17 @@
> >     unsigned long idx = page >> 5;
> >     unsigned long bit = 1 << (page & 31);
> >
> > -   if (flags & VM_MAYREAD)
> > +   if (flags & VM_READ)
> >             mask[idx] |= bit;
> >     else
> >             mask[idx] &= ~bit;
> >     mask += page_mask_nelts;
> > -   if (flags & VM_MAYWRITE)
> > +   if (flags & VM_WRITE)
> >             mask[idx] |= bit;
> >     else
> >             mask[idx] &= ~bit;
> >     mask += page_mask_nelts;
> > -   if (flags & VM_MAYEXEC)
> > +   if (flags & VM_EXEC)
> >             mask[idx] |= bit;
> >     else
> >             mask[idx] &= ~bit;
> 
> i guess the bug was that we were setting the permission based on what
> was allowed and not based on what the request was for ?
I guess so.

> 
> > Modified: branches/2009R1/arch/blackfin/kernel/traps.c (6939 => 6940)
> >
> >     /* 0x23 - Data CPLB protection violation, handled here */
> >     case VEC_CPLB_VL:
> >             info.si_code = ILL_CPLB_VI;
> > -           sig = SIGBUS;
> > +           sig = SIGSEGV;
> >             verbose_printk(KERN_NOTICE EXC_0x23(KERN_NOTICE));
> >             CHK_DEBUGGER_TRAP_MAYBE();
> >             break;
> 
> is this really necessary to make the test pass ?  we prefer to not go
> changing signals generated as it means we have to update things like
> traps_test, but it's ok if other arches are hitting SIGSEGV in these
> cases as we want the signals generated under the Blackfin port to
> match x86 and such.
> -mike
I can revert this change, or let it return SIGSEGV only if under MPU.
I think Robin and Sonic will give answers.
-Graff

_______________________________________________
Linux-kernel-commits mailing list
[email protected]
https://blackfin.uclinux.org/mailman/listinfo/linux-kernel-commits

Reply via email to