• H
    x86, extable: Switch to relative exception table entries · 70627654
    H. Peter Anvin 提交于
    Switch to using relative exception table entries on x86.  On i386,
    this has the advantage that the exception table entries don't need to
    be relocated; on x86-64 this means the exception table entries take up
    only half the space.
    
    In either case, a 32-bit delta is sufficient, as the range of kernel
    code addresses is limited.
    
    Since part of the goal is to avoid needing to adjust the entries when
    the kernel is relocated, the old trick of using addresses in the NULL
    pointer range to indicate uaccess_err no longer works (and unlike RISC
    architectures we can't use a flag bit); instead use an delta just
    below +2G to indicate these special entries.  The reach is still
    limited to a single instruction.
    Signed-off-by: NH. Peter Anvin <hpa@zytor.com>
    Cc: David Daney <david.daney@cavium.com>
    Link: http://lkml.kernel.org/r/CA%2B55aFyijf43qSu3N9nWHEBwaGbb7T2Oq9A=9EyR=Jtyqfq_cQ@mail.gmail.com
    70627654
uaccess.h 16.9 KB