Thread (42 messages) 42 messages, 9 authors, 2017-06-22

Re: [PATCH 6/7] md/raid10, LLVM: get rid of variable length array

From: hpa@zytor.com
Date: 2017-03-17 20:47:30
Also in: linux-crypto, linux-kbuild, lkml

On March 17, 2017 12:27:46 PM PDT, Peter Zijlstra [off-list ref] wrote:
On Fri, Mar 17, 2017 at 11:52:01AM -0700, Michael Davidson wrote:
quoted
On Fri, Mar 17, 2017 at 5:44 AM, Peter Zijlstra
[off-list ref] wrote:
quoted
quoted
Be that as it may; what you construct above is disgusting. Surely
the
quoted
quoted
code can be refactored to not look like dog vomit?

Also; its not immediately obvious conf->copies is 'small' and this
doesn't blow up the stack; I feel that deserves a comment
somewhere.
quoted
quoted
I agree that the code is horrible.

It is, in fact, exactly the same solution that was used to remove
variable length arrays in structs from several of the crypto drivers
a
quoted
few years ago - see the definition of SHASH_DESC_ON_STACK() in
"crypto/hash.h" - I did not, however, hide the horrors in a macro
preferring to leave the implementation visible as a warning to
whoever
quoted
might touch the code next.

I believe that the actual stack usage is exactly the same as it was
previously.
quoted
I can certainly wrap this  up in a macro and add comments with
appropriately dire warnings in it if you feel that is both necessary
and sufficient.
We got away with ugly in the past, so we should get to do it again?
Seriously, you should have taken the hack the first time that this needs to be fixed.  Just because this is a fairly uncommon construct in the kernel doesn't mean it is not in userspace.

I would like to say this falls in the category of "fix your compiler this time".  Once is one thing, twice is unacceptable.
-- 
Sent from my Android device with K-9 Mail. Please excuse my brevity.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help