| Date | Wed, 7 Oct 2015 18:23:23 +0200 | From | Ingo Molnar <> | Subject | Re: [PATCH v2 02/36] x86/uaccess: __chk_range_not_ok is unlikely to return true |
| |
* Borislav Petkov <bp@alien8.de> wrote:
> On Mon, Oct 05, 2015 at 05:47:50PM -0700, Andy Lutomirski wrote: > > This should improve code quality a bit. It also shrinks the kernel > > text. > > > > Before: > > text data bss dec hex filename > > 21828379 5194760 1277952 28301091 1afd723 vmlinux > > text data bss dec hex filename > > 21827997 5194760 1277952 28300709 1afd5a5 vmlinux > > > > Signed-off-by: Andy Lutomirski <luto@kernel.org> > > --- > > arch/x86/include/asm/uaccess.h | 6 +++--- > > 1 file changed, 3 insertions(+), 3 deletions(-) > > > > diff --git a/arch/x86/include/asm/uaccess.h b/arch/x86/include/asm/uaccess.h > > index 3e911c68876e..09b1b0ab94b7 100644 > > --- a/arch/x86/include/asm/uaccess.h > > +++ b/arch/x86/include/asm/uaccess.h > > @@ -51,13 +51,13 @@ static inline bool __chk_range_not_ok(unsigned long addr, unsigned long size, un > > * limit, not add it to the address). > > */ > > if (__builtin_constant_p(size)) > > - return addr > limit - size; > > + return unlikely(addr > limit - size); > > > > /* Arbitrary sizes? Be careful about overflow */ > > addr += size; > > - if (addr < size) > > + if (unlikely(addr < size)) > > return true; > > - return addr > limit; > > + return unlikely(addr > limit); > > It certainly uglifies it though. Are the wins worth the (un-)readability > hit?
Well, adding likely/unlikely hints in headers is OK I think, especially since these are performance sensitive user-access routines.
Thanks,
Ingo
|