Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1637157 > unrolled thread
| Started by | Geert Uytterhoeven <geert@linux-m68k.org> |
|---|---|
| First post | 2017-05-08 01:40 +0200 |
| Last post | 2017-05-09 13:30 +0200 |
| Articles | 3 — 3 participants |
Back to article view | Back to linux.kernel
This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by
below is the oldest one visible, not the original post.
[PATCH 2/2] staging: ccree: Fix initialization of anonymous unions Geert Uytterhoeven <geert@linux-m68k.org> - 2017-05-08 01:40 +0200
Re: [PATCH 2/2] staging: ccree: Fix initialization of anonymous unions Arnd Bergmann <arnd@arndb.de> - 2017-05-08 10:00 +0200
Re: [PATCH 2/2] staging: ccree: Fix initialization of anonymous unions Gilad Ben-Yossef <gilad@benyossef.com> - 2017-05-09 13:30 +0200
| From | Geert Uytterhoeven <geert@linux-m68k.org> |
|---|---|
| Date | 2017-05-08 01:40 +0200 |
| Subject | [PATCH 2/2] staging: ccree: Fix initialization of anonymous unions |
| Message-ID | <tEDWq-4jj-7@gated-at.bofh.it> |
With gcc 4.1.2:
drivers/staging/ccree/ssi_hash.c:1990: error: unknown field ‘template_ahash’ specified in initializer
drivers/staging/ccree/ssi_hash.c:1991: error: unknown field ‘init’ specified in initializer
drivers/staging/ccree/ssi_hash.c:1991: warning: missing braces around initializer
drivers/staging/ccree/ssi_hash.c:1991: warning: (near initialization for ‘driver_hash[0].<anonymous>.template_ahash’)
drivers/staging/ccree/ssi_hash.c:1992: error: unknown field ‘update’ specified in initializer
drivers/staging/ccree/ssi_hash.c:1992: warning: excess elements in union initializer
...
Add missing braces to fix this.
After this it compiles without warnings with gcc 4.1.2 and 4.9.0.
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
---
drivers/staging/ccree/ssi_hash.c | 208 +++++++++++++++++++++------------------
1 file changed, 112 insertions(+), 96 deletions(-)
diff --git a/drivers/staging/ccree/ssi_hash.c b/drivers/staging/ccree/ssi_hash.c
index 33f4515dd7af4830..4401ce251a4a5623 100644
--- a/drivers/staging/ccree/ssi_hash.c
+++ b/drivers/staging/ccree/ssi_hash.c
@@ -1987,20 +1987,22 @@ static struct ssi_hash_template driver_hash[] = {
.hmac_driver_name = "hmac-sha1-dx",
.blocksize = SHA1_BLOCK_SIZE,
.synchronize = false,
- .template_ahash = {
- .init = ssi_ahash_init,
- .update = ssi_ahash_update,
- .final = ssi_ahash_final,
- .finup = ssi_ahash_finup,
- .digest = ssi_ahash_digest,
+ {
+ .template_ahash = {
+ .init = ssi_ahash_init,
+ .update = ssi_ahash_update,
+ .final = ssi_ahash_final,
+ .finup = ssi_ahash_finup,
+ .digest = ssi_ahash_digest,
#ifdef EXPORT_FIXED
- .export = ssi_ahash_export,
- .import = ssi_ahash_import,
+ .export = ssi_ahash_export,
+ .import = ssi_ahash_import,
#endif
- .setkey = ssi_ahash_setkey,
- .halg = {
- .digestsize = SHA1_DIGEST_SIZE,
- .statesize = sizeof(struct sha1_state),
+ .setkey = ssi_ahash_setkey,
+ .halg = {
+ .digestsize = SHA1_DIGEST_SIZE,
+ .statesize = sizeof(struct sha1_state),
+ },
},
},
.hash_mode = DRV_HASH_SHA1,
@@ -2014,20 +2016,22 @@ static struct ssi_hash_template driver_hash[] = {
.hmac_driver_name = "hmac-sha256-dx",
.blocksize = SHA256_BLOCK_SIZE,
.synchronize = false,
- .template_ahash = {
- .init = ssi_ahash_init,
- .update = ssi_ahash_update,
- .final = ssi_ahash_final,
- .finup = ssi_ahash_finup,
- .digest = ssi_ahash_digest,
+ {
+ .template_ahash = {
+ .init = ssi_ahash_init,
+ .update = ssi_ahash_update,
+ .final = ssi_ahash_final,
+ .finup = ssi_ahash_finup,
+ .digest = ssi_ahash_digest,
#ifdef EXPORT_FIXED
- .export = ssi_ahash_export,
- .import = ssi_ahash_import,
+ .export = ssi_ahash_export,
+ .import = ssi_ahash_import,
#endif
- .setkey = ssi_ahash_setkey,
- .halg = {
- .digestsize = SHA256_DIGEST_SIZE,
- .statesize = sizeof(struct sha256_state),
+ .setkey = ssi_ahash_setkey,
+ .halg = {
+ .digestsize = SHA256_DIGEST_SIZE,
+ .statesize = sizeof(struct sha256_state),
+ },
},
},
.hash_mode = DRV_HASH_SHA256,
@@ -2041,20 +2045,22 @@ static struct ssi_hash_template driver_hash[] = {
.hmac_driver_name = "hmac-sha224-dx",
.blocksize = SHA224_BLOCK_SIZE,
.synchronize = false,
- .template_ahash = {
- .init = ssi_ahash_init,
- .update = ssi_ahash_update,
- .final = ssi_ahash_final,
- .finup = ssi_ahash_finup,
- .digest = ssi_ahash_digest,
+ {
+ .template_ahash = {
+ .init = ssi_ahash_init,
+ .update = ssi_ahash_update,
+ .final = ssi_ahash_final,
+ .finup = ssi_ahash_finup,
+ .digest = ssi_ahash_digest,
#ifdef EXPORT_FIXED
- .export = ssi_ahash_export,
- .import = ssi_ahash_import,
+ .export = ssi_ahash_export,
+ .import = ssi_ahash_import,
#endif
- .setkey = ssi_ahash_setkey,
- .halg = {
- .digestsize = SHA224_DIGEST_SIZE,
- .statesize = sizeof(struct sha256_state),
+ .setkey = ssi_ahash_setkey,
+ .halg = {
+ .digestsize = SHA224_DIGEST_SIZE,
+ .statesize = sizeof(struct sha256_state),
+ },
},
},
.hash_mode = DRV_HASH_SHA224,
@@ -2069,20 +2075,22 @@ static struct ssi_hash_template driver_hash[] = {
.hmac_driver_name = "hmac-sha384-dx",
.blocksize = SHA384_BLOCK_SIZE,
.synchronize = false,
- .template_ahash = {
- .init = ssi_ahash_init,
- .update = ssi_ahash_update,
- .final = ssi_ahash_final,
- .finup = ssi_ahash_finup,
- .digest = ssi_ahash_digest,
+ {
+ .template_ahash = {
+ .init = ssi_ahash_init,
+ .update = ssi_ahash_update,
+ .final = ssi_ahash_final,
+ .finup = ssi_ahash_finup,
+ .digest = ssi_ahash_digest,
#ifdef EXPORT_FIXED
- .export = ssi_ahash_export,
- .import = ssi_ahash_import,
+ .export = ssi_ahash_export,
+ .import = ssi_ahash_import,
#endif
- .setkey = ssi_ahash_setkey,
- .halg = {
- .digestsize = SHA384_DIGEST_SIZE,
- .statesize = sizeof(struct sha512_state),
+ .setkey = ssi_ahash_setkey,
+ .halg = {
+ .digestsize = SHA384_DIGEST_SIZE,
+ .statesize = sizeof(struct sha512_state),
+ },
},
},
.hash_mode = DRV_HASH_SHA384,
@@ -2096,20 +2104,22 @@ static struct ssi_hash_template driver_hash[] = {
.hmac_driver_name = "hmac-sha512-dx",
.blocksize = SHA512_BLOCK_SIZE,
.synchronize = false,
- .template_ahash = {
- .init = ssi_ahash_init,
- .update = ssi_ahash_update,
- .final = ssi_ahash_final,
- .finup = ssi_ahash_finup,
- .digest = ssi_ahash_digest,
+ {
+ .template_ahash = {
+ .init = ssi_ahash_init,
+ .update = ssi_ahash_update,
+ .final = ssi_ahash_final,
+ .finup = ssi_ahash_finup,
+ .digest = ssi_ahash_digest,
#ifdef EXPORT_FIXED
- .export = ssi_ahash_export,
- .import = ssi_ahash_import,
+ .export = ssi_ahash_export,
+ .import = ssi_ahash_import,
#endif
- .setkey = ssi_ahash_setkey,
- .halg = {
- .digestsize = SHA512_DIGEST_SIZE,
- .statesize = sizeof(struct sha512_state),
+ .setkey = ssi_ahash_setkey,
+ .halg = {
+ .digestsize = SHA512_DIGEST_SIZE,
+ .statesize = sizeof(struct sha512_state),
+ },
},
},
.hash_mode = DRV_HASH_SHA512,
@@ -2124,20 +2134,22 @@ static struct ssi_hash_template driver_hash[] = {
.hmac_driver_name = "hmac-md5-dx",
.blocksize = MD5_HMAC_BLOCK_SIZE,
.synchronize = false,
- .template_ahash = {
- .init = ssi_ahash_init,
- .update = ssi_ahash_update,
- .final = ssi_ahash_final,
- .finup = ssi_ahash_finup,
- .digest = ssi_ahash_digest,
+ {
+ .template_ahash = {
+ .init = ssi_ahash_init,
+ .update = ssi_ahash_update,
+ .final = ssi_ahash_final,
+ .finup = ssi_ahash_finup,
+ .digest = ssi_ahash_digest,
#ifdef EXPORT_FIXED
- .export = ssi_ahash_export,
- .import = ssi_ahash_import,
+ .export = ssi_ahash_export,
+ .import = ssi_ahash_import,
#endif
- .setkey = ssi_ahash_setkey,
- .halg = {
- .digestsize = MD5_DIGEST_SIZE,
- .statesize = sizeof(struct md5_state),
+ .setkey = ssi_ahash_setkey,
+ .halg = {
+ .digestsize = MD5_DIGEST_SIZE,
+ .statesize = sizeof(struct md5_state),
+ },
},
},
.hash_mode = DRV_HASH_MD5,
@@ -2149,20 +2161,22 @@ static struct ssi_hash_template driver_hash[] = {
.driver_name = "xcbc-aes-dx",
.blocksize = AES_BLOCK_SIZE,
.synchronize = false,
- .template_ahash = {
- .init = ssi_ahash_init,
- .update = ssi_mac_update,
- .final = ssi_mac_final,
- .finup = ssi_mac_finup,
- .digest = ssi_mac_digest,
- .setkey = ssi_xcbc_setkey,
+ {
+ .template_ahash = {
+ .init = ssi_ahash_init,
+ .update = ssi_mac_update,
+ .final = ssi_mac_final,
+ .finup = ssi_mac_finup,
+ .digest = ssi_mac_digest,
+ .setkey = ssi_xcbc_setkey,
#ifdef EXPORT_FIXED
- .export = ssi_ahash_export,
- .import = ssi_ahash_import,
+ .export = ssi_ahash_export,
+ .import = ssi_ahash_import,
#endif
- .halg = {
- .digestsize = AES_BLOCK_SIZE,
- .statesize = sizeof(struct aeshash_state),
+ .halg = {
+ .digestsize = AES_BLOCK_SIZE,
+ .statesize = sizeof(struct aeshash_state),
+ },
},
},
.hash_mode = DRV_HASH_NULL,
@@ -2175,20 +2189,22 @@ static struct ssi_hash_template driver_hash[] = {
.driver_name = "cmac-aes-dx",
.blocksize = AES_BLOCK_SIZE,
.synchronize = false,
- .template_ahash = {
- .init = ssi_ahash_init,
- .update = ssi_mac_update,
- .final = ssi_mac_final,
- .finup = ssi_mac_finup,
- .digest = ssi_mac_digest,
- .setkey = ssi_cmac_setkey,
+ {
+ .template_ahash = {
+ .init = ssi_ahash_init,
+ .update = ssi_mac_update,
+ .final = ssi_mac_final,
+ .finup = ssi_mac_finup,
+ .digest = ssi_mac_digest,
+ .setkey = ssi_cmac_setkey,
#ifdef EXPORT_FIXED
- .export = ssi_ahash_export,
- .import = ssi_ahash_import,
+ .export = ssi_ahash_export,
+ .import = ssi_ahash_import,
#endif
- .halg = {
- .digestsize = AES_BLOCK_SIZE,
- .statesize = sizeof(struct aeshash_state),
+ .halg = {
+ .digestsize = AES_BLOCK_SIZE,
+ .statesize = sizeof(struct aeshash_state),
+ },
},
},
.hash_mode = DRV_HASH_NULL,
--
2.7.4
[toc] | [next] | [standalone]
| From | Arnd Bergmann <arnd@arndb.de> |
|---|---|
| Date | 2017-05-08 10:00 +0200 |
| Message-ID | <tELKj-14K-27@gated-at.bofh.it> |
| In reply to | #1637157 |
On Sun, May 7, 2017 at 9:53 PM, Geert Uytterhoeven <geert@linux-m68k.org> wrote:
> With gcc 4.1.2:
>
> drivers/staging/ccree/ssi_hash.c:1990: error: unknown field ‘template_ahash’ specified in initializer
> drivers/staging/ccree/ssi_hash.c:1991: error: unknown field ‘init’ specified in initializer
> drivers/staging/ccree/ssi_hash.c:1991: warning: missing braces around initializer
> drivers/staging/ccree/ssi_hash.c:1991: warning: (near initialization for ‘driver_hash[0].<anonymous>.template_ahash’)
> drivers/staging/ccree/ssi_hash.c:1992: error: unknown field ‘update’ specified in initializer
> drivers/staging/ccree/ssi_hash.c:1992: warning: excess elements in union initializer
> ...
>
> Add missing braces to fix this.
> After this it compiles without warnings with gcc 4.1.2 and 4.9.0.
Acked-by: Arnd Bergmann <arnd@arndb.de>
For reference, we need this up to gcc-4.5, the anonymous initializers were added
on gcc-4.6.
Arnd
[toc] | [prev] | [next] | [standalone]
| From | Gilad Ben-Yossef <gilad@benyossef.com> |
|---|---|
| Date | 2017-05-09 13:30 +0200 |
| Message-ID | <tFbv4-10r-3@gated-at.bofh.it> |
| In reply to | #1637157 |
Hi, On Sun, May 7, 2017 at 10:53 PM, Geert Uytterhoeven <geert@linux-m68k.org> wrote: > With gcc 4.1.2: > > drivers/staging/ccree/ssi_hash.c:1990: error: unknown field ‘template_ahash’ specified in initializer > drivers/staging/ccree/ssi_hash.c:1991: error: unknown field ‘init’ specified in initializer > drivers/staging/ccree/ssi_hash.c:1991: warning: missing braces around initializer > drivers/staging/ccree/ssi_hash.c:1991: warning: (near initialization for ‘driver_hash[0].<anonymous>.template_ahash’) > drivers/staging/ccree/ssi_hash.c:1992: error: unknown field ‘update’ specified in initializer > drivers/staging/ccree/ssi_hash.c:1992: warning: excess elements in union initializer > ... > > Add missing braces to fix this. > After this it compiles without warnings with gcc 4.1.2 and 4.9.0. It seems this bothered Andrew Morton too as he just took in to mm his own patch for the same issue, Thanks anyway! Gilad -- Gilad Ben-Yossef Chief Coffee Drinker "If you take a class in large-scale robotics, can you end up in a situation where the homework eats your dog?" -- Jean-Baptiste Queru
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web