|
Message-ID: <913c28c268ca49f19f2407afc110deef@AcuMS.aculab.com> Date: Thu, 15 Mar 2018 11:55:21 +0000 From: David Laight <David.Laight@...LAB.COM> To: 'Eric Biggers' <ebiggers3@...il.com>, Salvatore Mesoraca <s.mesoraca16@...il.com> CC: "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>, "kernel-hardening@...ts.openwall.com" <kernel-hardening@...ts.openwall.com>, "linux-crypto@...r.kernel.org" <linux-crypto@...r.kernel.org>, "David S. Miller" <davem@...emloft.net>, Herbert Xu <herbert@...dor.apana.org.au>, "Kees Cook" <keescook@...omium.org> Subject: RE: [PATCH] crypto: ctr: avoid VLA use From: Eric Biggers > Sent: 14 March 2018 18:32 ... > Also, I recall there being a long discussion a while back about how > __aligned(16) doesn't work on local variables because the kernel's stack pointer > isn't guaranteed to maintain the alignment assumed by the compiler (see commit > b8fbe71f7535)... ISTR that gcc arbitrarily decided that the x86 stack (for 32 bit) would be kept aligned to more than 4 bytes (16??) - probably so that xmm registers could be written to stack locations. This was a massive ABI change that they didn't tell anyone about! While gcc compiled code maintained the alignment a lot of asm code didn't. I don't know about Linux, but NetBSD didn't even align user stacks. There is a gcc option to not assume that the stack is 'appropriately aligned', but ISTR that it generates rather more code that one might have wished. If the compiler does align the stack, it does so by generating a double stack frame - not pretty at all. David
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.