On 17 October 2016 at 11:02, Ard Biesheuvel <ard.biesheuvel@xxxxxxxxxx> wrote: > > >> On 17 Oct 2016, at 10:54, Johannes Berg <johannes@xxxxxxxxxxxxxxxx> wrote: >> >> >>>> Well, if your other patch to make it OK to be on-stack would be >>>> applied instead, this wouldn't make much sense either :) >>>> >>> >>> Yes but that one only fixes ccm not gcm >> >> Yes, but we can do the same for GCM, no? >> > > No, not really. ccm happens to use aes with the same key for the mac and the encryption. gcm uses an another algo entirely for the mac > >>>> In this particular patch, we could reduce the size of the struct, >>>> but I >>>> don't actually think it'll make a difference to go from 48 to 36 >>>> bytes, >>>> given alignment etc., so I think I'll just leave it as is. >>>> >>> >>> I understand you are in a hurry, but this is unlikely to be the only >>> such issue. I will propose an 'auxdata' feature for the crypto api >>> that can be used here, but also for any other occurrence where client >>> data assoiciated with the request can no longer be allocated on the >>> stack >> >> No objections. I'll merge this anyway today I think, reverting is easy >> later. >> > > ok fair enough Actually, while I think it will be worthwhile going forward to implement such an 'auxiliary data' feature in a generic way, I still think we should address the issue at hand without too much complication. If we pedal back to the version of 'mac80211: move struct aead_req off the stack' that uses kzalloc() instead of aead_request_alloc(), we can simply add some space for aad[] and/or zero[], and get rid of the kmem cache entirely. If you're past this point already, i won't bother but otherwise I can rework 'mac80211: move struct aead_req off the stack' so that the other patch is no longer required (and IIRC, this is actually something you proposed yourself a couple of iterations ago?)