Re: [RFC -tip 2/4] x86: uaccess: introduce __{get|put}_user exception handling framework

From: Brian Gerst
Date: Tue Dec 23 2008 - 00:38:21 EST


On Tue, Dec 23, 2008 at 12:22 AM, Hiroshi Shimamoto
<h-shimamoto@xxxxxxxxxxxxx> wrote:
> From: Hiroshi Shimamoto <h-shimamoto@xxxxxxxxxxxxx>
>
> Impact: introduce new framework
>
> Introduce exception handling framework.
> __{get|put}_user_ex_try() begins exception block and
> __{get|put}_user_ex_catch() ends block and if an exception occurred in this
> block using __{get|put}_user_ex, direct jump to __{get|put}_user_ex_catch()
> and err is set to specified value.

You shouldn't do this. According to the gcc manual[1], "Speaking of
labels, jumps from one asm to another are not supported. The
compiler's optimizers do not know about these jumps, and therefore
they cannot take account of them when deciding how to optimize."

[1] http://gcc.gnu.org/onlinedocs/gcc-4.3.2/gcc/Extended-Asm.html
--
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/