|
Message-ID: <20161110211622.GY3117@twins.programming.kicks-ass.net> Date: Thu, 10 Nov 2016 22:16:22 +0100 From: Peter Zijlstra <peterz@...radead.org> To: Kees Cook <keescook@...omium.org> Cc: Elena Reshetova <elena.reshetova@...el.com>, "kernel-hardening@...ts.openwall.com" <kernel-hardening@...ts.openwall.com>, Arnd Bergmann <arnd@...db.de>, Thomas Gleixner <tglx@...utronix.de>, Ingo Molnar <mingo@...hat.com>, "H. Peter Anvin" <h.peter.anvin@...el.com>, Will Deacon <will.deacon@....com>, Hans Liljestrand <ishkamiel@...il.com>, David Windsor <dwindsor@...il.com> Subject: Re: [RFC v4 PATCH 12/13] x86: implementation for HARDENED_ATOMIC On Thu, Nov 10, 2016 at 01:04:20PM -0800, Kees Cook wrote: > On Thu, Nov 10, 2016 at 12:40 PM, Peter Zijlstra <peterz@...radead.org> wrote: > > On Thu, Nov 10, 2016 at 10:24:47PM +0200, Elena Reshetova wrote: > >> static __always_inline void atomic_add(int i, atomic_t *v) > >> { > >> + asm volatile(LOCK_PREFIX "addl %1,%0\n" > >> + > >> +#ifdef CONFIG_HARDENED_ATOMIC > >> + "jno 0f\n" > >> + LOCK_PREFIX "subl %1,%0\n" > >> + "int $4\n0:\n" > >> + _ASM_EXTABLE(0b, 0b) > > > > > > This is unreadable gunk. > > > >> +#endif > >> + > >> : "+m" (v->counter) > >> : "ir" (i)); > >> } > > How would you suggest it be made readable? Or rather, what don't you > like about it? Try and find the label the jno jumps to.. I had to try 3 times. Also, I hate how #ifdef CONFIG_HARDENED_ATOMIC is sprinkled all over, it makes a huge trainwreck of that file. Ideally there'd be only a single #ifdef CONFIG_HARNDED_ATOMIC. I'm also not sure about atomic*_wrap() as an interface, these functions already have far too long names. We could simply overload the existing functions and select based off the argument type.
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.