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 ?

> 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
_______________________________________________
Linux-kernel-commits mailing list
[email protected]
https://blackfin.uclinux.org/mailman/listinfo/linux-kernel-commits

Reply via email to