Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
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.