Re: Sparc miss chance to fix recoverable fault in copy_from_user

From: David Miller
Date: Thu Aug 13 2009 - 23:29:19 EST


From: hyl <heyongli@xxxxxxxxx>
Date: Fri, 14 Aug 2009 11:16:41 +0800

> console is: (access the address 0xffff fff0 )
> SUN4V-DTLB: Error at TPC[5f2cc8], tl 1
> SUN4V-DTLB: TPC<memcpy_user_stub+0x8/0x40>
> SUN4V-DTLB: O7[4af23c]
> SUN4V-DTLB: O7<probe_kernel_read+0x3c/0xa0>
> SUN4V-DTLB: vaddr[ffffffffffffe000] ctx[0] pte[800007ffffffe743] error[2]
>
>
> the problem is :
> this DTLB fault can be fixed by search extable, by fall to the
> do_sparc64_fault, my draft proposal can verify this: with this patch, this kind
> of fault is recovery, so enable copy_from_user return error instead of halt.
>
> in addition, it is triggered in kernel space, search the extable is mandatory .

No, that's not the problem.

The problem is that the virtual address validation done in the TLB
miss path accepts the address printed in:

> SUN4V-DTLB: vaddr[ffffffffffffe000] ctx[0] pte[800007ffffffe743] error[2]

That's the real bug, not any of the other things you are talking
about.

Your "fix" would only paper over this problem.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/