All of lore.kernel.org
 help / color / mirror / Atom feed
From: Behan Webster <behanw@converseincode.com>
To: Herbert Xu <herbert@gondor.apana.org.au>,
	Dmitry Kasatkin <d.kasatkin@samsung.com>
Cc: agk@redhat.com, clm@fb.com, davem@davemloft.net,
	dm-devel@redhat.com, fabf@skynet.be, jbacik@fb.com,
	snitzer@redhat.com, tadeusz.struk@intel.com,
	akpm@linux-foundation.org, bruce.w.allan@intel.com,
	james.l.morris@oracle.com, john.griffin@intel.com,
	linux-btrfs@vger.kernel.org, linux-crypto@vger.kernel.org,
	linux-ima-devel@lists.sourceforge.net,
	linux-ima-user@lists.sourceforge.net,
	linux-kernel@vger.kernel.org, linux-raid@vger.kernel.org,
	linux-security-module@vger.kernel.org, neilb@suse.de,
	qat-linux@intel.com, serge@hallyn.com, thomas.lendacky@amd.com,
	zohar@linux.vnet.ibm.com, torvalds@linux-foundation.org
Subject: Re: [PATCH v3 01/12] crypto: LLVMLinux: Add macro to remove use of VLAIS in crypto code
Date: Wed, 17 Sep 2014 08:26:19 -0700	[thread overview]
Message-ID: <5419A81B.2030705@converseincode.com> (raw)
In-Reply-To: <20140917113035.GB2129@gondor.apana.org.au>

On 09/17/14 04:30, Herbert Xu wrote:
> On Wed, Sep 17, 2014 at 02:15:40PM +0300, Dmitry Kasatkin wrote:
>> On 17/09/14 12:22, Herbert Xu wrote:
>>> On Mon, Sep 15, 2014 at 12:30:23AM -0700, behanw@converseincode.com wrote:
>>>> From: Behan Webster <behanw@converseincode.com>
>>>>
>>>> Add a macro which replaces the use of a Variable Length Array In Struct (VLAIS)
>>>> with a C99 compliant equivalent. This macro instead allocates the appropriate
>>>> amount of memory using an char array.
>>>>
>>>> The new code can be compiled with both gcc and clang.
>>>>
>>>> struct shash_desc contains a flexible array member member ctx declared with
>>>> CRYPTO_MINALIGN_ATTR, so sizeof(struct shash_desc) aligns the beginning
>>>> of the array declared after struct shash_desc with long long.
>>>>
>>>> No trailing padding is required because it is not a struct type that can
>>>> be used in an array.
>>>>
>>>> The CRYPTO_MINALIGN_ATTR is required so that desc is aligned with long long
>>>> as would be the case for a struct containing a member with
>>>> CRYPTO_MINALIGN_ATTR.
>>>>
>>>> Signed-off-by: Behan Webster <behanw@converseincode.com>
>>> Acked-by: Herbert Xu <herbert@gondor.apana.org.au>
>>>
>>> Thanks,
>> Just in case.
>> I would still follow advice from "Michał Mirosław" to use shash##__desc[]
Absolutely. I will be posting a v4 patchset . Just waiting a bit more 
for more comments on v3.

The macro from v4 will look like this which I believe will satisfy the 
concern and indeed be safer than my previous version.

+#define SHASH_DESC_ON_STACK(shash, tfm)                                  \
+       char __##shash##_desc[sizeof(struct shash_desc) +        \
+               crypto_shash_descsize(tfm)] CRYPTO_MINALIGN_ATTR; \
+       struct shash_desc *shash = (struct shash_desc *)__##shash##_desc

Hmm. Is it worth adding a comment with this macro explaining the reason this works? Essentially much of what is in the commit message?
  

> Oh yes of course.  My ack is more about the approach.

Wonderful!

Indeed. I would have asked for you to wait for v4 anyways. :)

Thank you,

Behan

-- 
Behan Webster
behanw@converseincode.com

--
To unsubscribe from this list: send the line "unsubscribe linux-security-module" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

WARNING: multiple messages have this Message-ID (diff)
From: Behan Webster <behanw@converseincode.com>
To: Herbert Xu <herbert@gondor.apana.org.au>,
	Dmitry Kasatkin <d.kasatkin@samsung.com>
Cc: agk@redhat.com, clm@fb.com, davem@davemloft.net,
	dm-devel@redhat.com, fabf@skynet.be, jbacik@fb.com,
	snitzer@redhat.com, tadeusz.struk@intel.com,
	akpm@linux-foundation.org, bruce.w.allan@intel.com,
	james.l.morris@oracle.com, john.griffin@intel.com,
	linux-btrfs@vger.kernel.org, linux-crypto@vger.kernel.org,
	linux-ima-devel@lists.sourceforge.net,
	linux-ima-user@lists.sourceforge.net,
	linux-kernel@vger.kernel.org, linux-raid@vger.kernel.org,
	linux-security-module@vger.kernel.org, neilb@suse.de,
	qat-linux@intel.com, serge@hallyn.com, thomas.lendacky@amd.com,
	zohar@linux.vnet.ibm.com, torvalds@linux-foundation.org
Subject: Re: [PATCH v3 01/12] crypto: LLVMLinux: Add macro to remove use of VLAIS in crypto code
Date: Wed, 17 Sep 2014 08:26:19 -0700	[thread overview]
Message-ID: <5419A81B.2030705@converseincode.com> (raw)
In-Reply-To: <20140917113035.GB2129@gondor.apana.org.au>

On 09/17/14 04:30, Herbert Xu wrote:
> On Wed, Sep 17, 2014 at 02:15:40PM +0300, Dmitry Kasatkin wrote:
>> On 17/09/14 12:22, Herbert Xu wrote:
>>> On Mon, Sep 15, 2014 at 12:30:23AM -0700, behanw@converseincode.com wrote:
>>>> From: Behan Webster <behanw@converseincode.com>
>>>>
>>>> Add a macro which replaces the use of a Variable Length Array In Struct (VLAIS)
>>>> with a C99 compliant equivalent. This macro instead allocates the appropriate
>>>> amount of memory using an char array.
>>>>
>>>> The new code can be compiled with both gcc and clang.
>>>>
>>>> struct shash_desc contains a flexible array member member ctx declared with
>>>> CRYPTO_MINALIGN_ATTR, so sizeof(struct shash_desc) aligns the beginning
>>>> of the array declared after struct shash_desc with long long.
>>>>
>>>> No trailing padding is required because it is not a struct type that can
>>>> be used in an array.
>>>>
>>>> The CRYPTO_MINALIGN_ATTR is required so that desc is aligned with long long
>>>> as would be the case for a struct containing a member with
>>>> CRYPTO_MINALIGN_ATTR.
>>>>
>>>> Signed-off-by: Behan Webster <behanw@converseincode.com>
>>> Acked-by: Herbert Xu <herbert@gondor.apana.org.au>
>>>
>>> Thanks,
>> Just in case.
>> I would still follow advice from "Michał Mirosław" to use shash##__desc[]
Absolutely. I will be posting a v4 patchset . Just waiting a bit more 
for more comments on v3.

The macro from v4 will look like this which I believe will satisfy the 
concern and indeed be safer than my previous version.

+#define SHASH_DESC_ON_STACK(shash, tfm)                                  \
+       char __##shash##_desc[sizeof(struct shash_desc) +        \
+               crypto_shash_descsize(tfm)] CRYPTO_MINALIGN_ATTR; \
+       struct shash_desc *shash = (struct shash_desc *)__##shash##_desc

Hmm. Is it worth adding a comment with this macro explaining the reason this works? Essentially much of what is in the commit message?
  

> Oh yes of course.  My ack is more about the approach.

Wonderful!

Indeed. I would have asked for you to wait for v4 anyways. :)

Thank you,

Behan

-- 
Behan Webster
behanw@converseincode.com


  reply	other threads:[~2014-09-17 15:26 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-09-15  7:30 [PATCH v3 00/12] LLVMLinux: Patches to enable the kernel to be compiled with clang/LLVM behanw
2014-09-15  7:30 ` behanw
2014-09-15  7:30 ` [PATCH v3 01/12] crypto: LLVMLinux: Add macro to remove use of VLAIS in crypto code behanw
2014-09-15  7:30   ` behanw
2014-09-15  8:06   ` [dm-devel] " Michał Mirosław
2014-09-15  8:37     ` Behan Webster
2014-09-15  8:37       ` Behan Webster
2014-09-17  9:22   ` Herbert Xu
2014-09-17 11:15     ` Dmitry Kasatkin
2014-09-17 11:30       ` Herbert Xu
2014-09-17 15:26         ` Behan Webster [this message]
2014-09-17 15:26           ` Behan Webster
2014-09-15  7:30 ` [PATCH v3 02/12] btrfs: LLVMLinux: Remove VLAIS behanw
2014-09-15  7:30   ` behanw
2014-09-17 13:49   ` Chris Mason
2014-09-17 13:49     ` Chris Mason
2014-09-17 13:49     ` Chris Mason
2014-09-15  7:30 ` [PATCH v3 03/12] crypto: LLVMLinux: Remove VLAIS from crypto/ccp/ccp-crypto-sha.c behanw
2014-09-15  7:30   ` behanw
2014-09-15  7:30 ` [PATCH v3 04/12] crypto: LLVMLinux: Remove VLAIS from crypto/mv_cesa.c behanw
2014-09-15  7:30   ` behanw
2014-09-15  7:30 ` [PATCH v3 05/12] crypto: LLVMLinux: Remove VLAIS from crypto/n2_core.c behanw
2014-09-15  7:30 ` [PATCH v3 06/12] crypto: LLVMLinux: Remove VLAIS from crypto/omap_sham.c behanw
2014-09-15  7:30 ` [PATCH v3 07/12] crypto: LLVMLinux: Remove VLAIS from crypto/.../qat_algs.c behanw
2014-09-15  7:30   ` behanw
2014-09-15  7:30 ` [PATCH v3 08/12] crypto, dm: LLVMLinux: Remove VLAIS usage from dm-crypt behanw
2014-09-15  7:30 ` [PATCH v3 09/12] crypto: LLVMLinux: Remove VLAIS usage from crypto/hmac.c behanw
2014-09-15  7:30 ` [PATCH v3 10/12] crypto: LLVMLinux: Remove VLAIS usage from libcrc32c.c behanw
2014-09-15  7:30 ` [PATCH v3 11/12] security, crypto: LLVMLinux: Remove VLAIS from ima_crypto.c behanw
2014-09-15  7:30   ` behanw
2014-09-15 14:21   ` Linus Torvalds
2014-09-15 14:21     ` Linus Torvalds
2014-09-15 14:25     ` Behan Webster
2014-09-15 14:25       ` Behan Webster
2014-09-15  7:30 ` [PATCH v3 12/12] crypto: LLVMLinux: Remove VLAIS usage from crypto/testmgr.c behanw
2014-09-15  7:30   ` behanw

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5419A81B.2030705@converseincode.com \
    --to=behanw@converseincode.com \
    --cc=agk@redhat.com \
    --cc=akpm@linux-foundation.org \
    --cc=bruce.w.allan@intel.com \
    --cc=clm@fb.com \
    --cc=d.kasatkin@samsung.com \
    --cc=davem@davemloft.net \
    --cc=dm-devel@redhat.com \
    --cc=fabf@skynet.be \
    --cc=herbert@gondor.apana.org.au \
    --cc=james.l.morris@oracle.com \
    --cc=jbacik@fb.com \
    --cc=john.griffin@intel.com \
    --cc=linux-btrfs@vger.kernel.org \
    --cc=linux-crypto@vger.kernel.org \
    --cc=linux-ima-devel@lists.sourceforge.net \
    --cc=linux-ima-user@lists.sourceforge.net \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-raid@vger.kernel.org \
    --cc=linux-security-module@vger.kernel.org \
    --cc=neilb@suse.de \
    --cc=qat-linux@intel.com \
    --cc=serge@hallyn.com \
    --cc=snitzer@redhat.com \
    --cc=tadeusz.struk@intel.com \
    --cc=thomas.lendacky@amd.com \
    --cc=torvalds@linux-foundation.org \
    --cc=zohar@linux.vnet.ibm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.