From: Stephan Mueller <smueller@chronox.de> To: Arnd Bergmann <arnd@arndb.de>, kernel test robot <lkp@intel.com> Cc: kbuild-all@lists.01.org, Greg Kroah-Hartman <gregkh@linuxfoundation.org>, linux-crypto@vger.kernel.org, LKML <linux-kernel@vger.kernel.org>, linux-api@vger.kernel.org, "Eric W. Biederman" <ebiederm@xmission.com>, "Alexander E. Patrakov" <patrakov@gmail.com>, "Ahmed S. Darwish" <darwish.07@gmail.com>, "Theodore Y. Ts'o" <tytso@mit.edu>, Willy Tarreau <w@1wt.eu> Subject: Re: [PATCH v35 01/13] Linux Random Number Generator Date: Sun, 20 Sep 2020 18:49:57 +0200 [thread overview] Message-ID: <4146830.tdWV9SEqCh@tauon.chronox.de> (raw) In-Reply-To: <202009182001.I8MjZZ8x%lkp@intel.com> Am Freitag, 18. September 2020, 15:02:17 CEST schrieb kernel test robot: Hi, > All errors (new ones prefixed by >>): > >> drivers/char/lrng/lrng_chacha20.c:33:8: error: structure variable > >> 'chacha20' with 'latent_entropy' attribute has a non-integer field > >> 'block' > 33 | struct chacha20_state chacha20 __latent_entropy; > > | ^~~~~~~~~~~~~~ > > # > https://github.com/0day-ci/linux/commit/ecb964754fd80cca434d6d2ad6db8f28a15 > 92fa1 git remote add linux-review https://github.com/0day-ci/linux > git fetch --no-tags linux-review > Stephan-M-ller/dev-random-a-new-approach/20200918-181505 git checkout > ecb964754fd80cca434d6d2ad6db8f28a1592fa1 > vim +33 drivers/char/lrng/lrng_chacha20.c > > 27 > 28 /* > 29 * Have a static memory blocks for the ChaCha20 DRNG instance to > avoid calling 30 * kmalloc too early in the boot cycle. For subsequent > allocation requests, 31 * such as per-NUMA-node DRNG instances, kmalloc > will be used. 32 */ > > > 33 struct chacha20_state chacha20 __latent_entropy; I do not think this report is valid. The following definitions apply: struct chacha20_state { struct chacha20_block block; }; struct chacha20_block { u32 constants[4]; union { #define CHACHA_KEY_SIZE_WORDS (CHACHA_KEY_SIZE / sizeof(u32)) u32 u[CHACHA_KEY_SIZE_WORDS]; u8 b[CHACHA_KEY_SIZE]; } key; u32 counter; u32 nonce[3]; }; This implies that struct chacha20_state and thus the chacha20 variable is a linear buffer with in total 4 + 8 + 1 + 3 = 16 32-bit integers which are at least aligned on a 32-bit boundary and are designated as u32 integers. Please let me know if I need to make a tweak to the definitions to convince the code analyzer it is a flat linear buffer consisting of integers and thus to understand the structure correctly. Thanks a lot. Ciao Stephan
WARNING: multiple messages have this Message-ID (diff)
From: Stephan Mueller <smueller@chronox.de> To: kbuild-all@lists.01.org Subject: Re: [PATCH v35 01/13] Linux Random Number Generator Date: Sun, 20 Sep 2020 18:49:57 +0200 [thread overview] Message-ID: <4146830.tdWV9SEqCh@tauon.chronox.de> (raw) In-Reply-To: <202009182001.I8MjZZ8x%lkp@intel.com> [-- Attachment #1: Type: text/plain, Size: 1983 bytes --] Am Freitag, 18. September 2020, 15:02:17 CEST schrieb kernel test robot: Hi, > All errors (new ones prefixed by >>): > >> drivers/char/lrng/lrng_chacha20.c:33:8: error: structure variable > >> 'chacha20' with 'latent_entropy' attribute has a non-integer field > >> 'block' > 33 | struct chacha20_state chacha20 __latent_entropy; > > | ^~~~~~~~~~~~~~ > > # > https://github.com/0day-ci/linux/commit/ecb964754fd80cca434d6d2ad6db8f28a15 > 92fa1 git remote add linux-review https://github.com/0day-ci/linux > git fetch --no-tags linux-review > Stephan-M-ller/dev-random-a-new-approach/20200918-181505 git checkout > ecb964754fd80cca434d6d2ad6db8f28a1592fa1 > vim +33 drivers/char/lrng/lrng_chacha20.c > > 27 > 28 /* > 29 * Have a static memory blocks for the ChaCha20 DRNG instance to > avoid calling 30 * kmalloc too early in the boot cycle. For subsequent > allocation requests, 31 * such as per-NUMA-node DRNG instances, kmalloc > will be used. 32 */ > > > 33 struct chacha20_state chacha20 __latent_entropy; I do not think this report is valid. The following definitions apply: struct chacha20_state { struct chacha20_block block; }; struct chacha20_block { u32 constants[4]; union { #define CHACHA_KEY_SIZE_WORDS (CHACHA_KEY_SIZE / sizeof(u32)) u32 u[CHACHA_KEY_SIZE_WORDS]; u8 b[CHACHA_KEY_SIZE]; } key; u32 counter; u32 nonce[3]; }; This implies that struct chacha20_state and thus the chacha20 variable is a linear buffer with in total 4 + 8 + 1 + 3 = 16 32-bit integers which are at least aligned on a 32-bit boundary and are designated as u32 integers. Please let me know if I need to make a tweak to the definitions to convince the code analyzer it is a flat linear buffer consisting of integers and thus to understand the structure correctly. Thanks a lot. Ciao Stephan
next prev parent reply other threads:[~2020-09-20 16:50 UTC|newest] Thread overview: 91+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-08-20 8:25 [PATCH v32 00/12] /dev/random - a new approach with full SP800-90B compliance Stephan Müller 2020-08-20 8:39 ` [PATCH v32 01/12] Linux Random Number Generator Stephan Müller 2020-08-20 11:46 ` kernel test robot 2020-08-20 11:46 ` kernel test robot 2020-08-20 12:31 ` Stephan Müller 2020-08-20 12:31 ` Stephan Müller 2020-08-20 8:40 ` [PATCH v32 02/12] LRNG - allocate one DRNG instance per NUMA node Stephan Müller 2020-08-20 8:40 ` [PATCH v32 03/12] LRNG - sysctls and /proc interface Stephan Müller 2020-08-20 8:41 ` [PATCH v32 04/12] LRNG - add switchable DRNG support Stephan Müller 2020-08-20 8:42 ` [PATCH v32 05/12] crypto: DRBG - externalize DRBG functions for LRNG Stephan Müller 2020-08-20 8:42 ` [PATCH v32 06/12] LRNG - add SP800-90A DRBG extension Stephan Müller 2020-08-20 12:07 ` kernel test robot 2020-08-20 12:07 ` kernel test robot 2020-08-20 12:27 ` Stephan Müller 2020-08-20 12:27 ` Stephan Müller 2020-08-20 8:43 ` [PATCH v32 07/12] LRNG - add kernel crypto API PRNG extension Stephan Müller 2020-08-20 12:32 ` kernel test robot 2020-08-20 12:32 ` kernel test robot 2020-08-20 8:43 ` [PATCH v32 08/12] crypto: provide access to a static Jitter RNG state Stephan Müller 2020-08-20 8:44 ` [PATCH v32 09/12] LRNG - add Jitter RNG fast noise source Stephan Müller 2020-08-20 8:44 ` [PATCH v32 10/12] LRNG - add SP800-90B compliant health tests Stephan Müller 2020-08-20 8:45 ` [PATCH v32 11/12] LRNG - add interface for gathering of raw entropy Stephan Müller 2020-08-20 12:47 ` kernel test robot 2020-08-20 12:47 ` kernel test robot 2020-08-20 8:45 ` [PATCH v32 12/12] LRNG - add power-on and runtime self-tests Stephan Müller 2020-08-21 5:37 ` [PATCH v33 00/12] /dev/random - a new approach with full SP800-90B compliance Stephan Müller 2020-08-21 5:38 ` [PATCH v33 01/12] Linux Random Number Generator Stephan Müller 2020-08-21 19:42 ` kernel test robot 2020-08-21 19:42 ` kernel test robot 2020-08-22 4:49 ` Stephan Müller 2020-08-22 4:49 ` Stephan Müller 2020-08-22 3:34 ` kernel test robot 2020-08-22 3:34 ` kernel test robot 2020-08-26 14:27 ` kernel test robot 2020-08-26 14:27 ` kernel test robot 2020-08-26 14:22 ` Stephan Mueller 2020-08-26 14:22 ` Stephan Mueller 2020-08-21 5:39 ` [PATCH v33 02/12] LRNG - allocate one DRNG instance per NUMA node Stephan Müller 2020-08-21 5:39 ` [PATCH v33 03/12] LRNG - sysctls and /proc interface Stephan Müller 2020-08-23 7:10 ` kernel test robot 2020-08-23 7:10 ` kernel test robot 2020-08-21 5:40 ` [PATCH v33 04/12] LRNG - add switchable DRNG support Stephan Müller 2020-08-21 5:40 ` [PATCH v33 05/12] crypto: DRBG - externalize DRBG functions for LRNG Stephan Müller 2020-08-21 5:41 ` [PATCH v33 06/12] LRNG - add SP800-90A DRBG extension Stephan Müller 2020-08-21 5:42 ` [PATCH v33 07/12] LRNG - add kernel crypto API PRNG extension Stephan Müller 2020-08-21 5:42 ` [PATCH v33 08/12] crypto: provide access to a static Jitter RNG state Stephan Müller 2020-08-21 5:42 ` [PATCH v33 09/12] LRNG - add Jitter RNG fast noise source Stephan Müller 2020-08-21 5:43 ` [PATCH v33 10/12] LRNG - add SP800-90B compliant health tests Stephan Müller 2020-08-21 5:43 ` [PATCH v33 11/12] LRNG - add interface for gathering of raw entropy Stephan Müller 2020-08-21 5:44 ` [PATCH v33 12/12] LRNG - add power-on and runtime self-tests Stephan Müller 2020-08-23 14:50 ` kernel test robot 2020-08-23 14:50 ` kernel test robot 2020-08-25 7:21 ` [PATCH v34 00/12] /dev/random - a new approach with full SP800-90B compliance Stephan Müller 2020-08-25 7:22 ` [PATCH v34 01/12] Linux Random Number Generator Stephan Müller 2020-08-25 11:28 ` kernel test robot 2020-08-25 11:28 ` kernel test robot 2020-08-25 11:51 ` Stephan Mueller 2020-08-25 11:51 ` Stephan Mueller 2020-08-31 9:24 ` kernel test robot 2020-08-31 9:24 ` kernel test robot 2020-08-25 7:23 ` [PATCH v34 02/12] LRNG - allocate one DRNG instance per NUMA node Stephan Müller 2020-08-25 7:23 ` [PATCH v34 03/12] LRNG - sysctls and /proc interface Stephan Müller 2020-08-25 7:24 ` [PATCH v34 04/12] LRNG - add switchable DRNG support Stephan Müller 2020-08-31 10:03 ` kernel test robot 2020-08-31 10:03 ` kernel test robot 2020-08-25 7:24 ` [PATCH v34 05/12] crypto: DRBG - externalize DRBG functions for LRNG Stephan Müller 2020-08-25 7:25 ` [PATCH v34 06/12] LRNG - add SP800-90A DRBG extension Stephan Müller 2020-08-25 7:25 ` [PATCH v34 07/12] LRNG - add kernel crypto API PRNG extension Stephan Müller 2020-08-25 7:26 ` [PATCH v34 08/12] crypto: provide access to a static Jitter RNG state Stephan Müller 2020-08-25 7:26 ` [PATCH v34 09/12] LRNG - add Jitter RNG fast noise source Stephan Müller 2020-08-25 7:27 ` [PATCH v34 10/12] LRNG - add SP800-90B compliant health tests Stephan Müller 2020-08-25 7:27 ` [PATCH v34 11/12] LRNG - add interface for gathering of raw entropy Stephan Müller 2020-08-25 7:27 ` [PATCH v34 12/12] LRNG - add power-on and runtime self-tests Stephan Müller 2020-09-18 9:47 ` [PATCH v35 00/13] /dev/random - a new approach Stephan Müller 2020-09-18 9:48 ` [PATCH v35 01/13] Linux Random Number Generator Stephan Müller 2020-09-18 13:02 ` kernel test robot 2020-09-18 13:02 ` kernel test robot 2020-09-20 16:49 ` Stephan Mueller [this message] 2020-09-20 16:49 ` Stephan Mueller 2020-09-18 9:48 ` [PATCH v35 02/13] LRNG - allocate one DRNG instance per NUMA node Stephan Müller 2020-09-18 9:49 ` [PATCH v35 03/13] LRNG - sysctls and /proc interface Stephan Müller 2020-09-18 9:49 ` [PATCH v35 04/13] LRNG - add switchable DRNG support Stephan Müller 2020-09-18 9:49 ` [PATCH v35 05/13] LRNG - add common generic hash support Stephan Müller 2020-09-18 9:50 ` [PATCH v35 06/13] crypto: DRBG - externalize DRBG functions for LRNG Stephan Müller 2020-09-18 9:50 ` [PATCH v35 07/13] LRNG - add SP800-90A DRBG extension Stephan Müller 2020-09-18 9:51 ` [PATCH v35 08/13] LRNG - add kernel crypto API PRNG extension Stephan Müller 2020-09-18 9:51 ` [PATCH v35 09/13] crypto: provide access to a static Jitter RNG state Stephan Müller 2020-09-18 9:51 ` [PATCH v35 10/13] LRNG - add Jitter RNG fast noise source Stephan Müller 2020-09-18 9:52 ` [PATCH v35 11/13] LRNG - add SP800-90B compliant health tests Stephan Müller 2020-09-18 9:53 ` [PATCH v35 12/13] LRNG - add interface for gathering of raw entropy Stephan Müller 2020-09-18 9:53 ` [PATCH v35 13/13] LRNG - add power-on and runtime self-tests Stephan Müller
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=4146830.tdWV9SEqCh@tauon.chronox.de \ --to=smueller@chronox.de \ --cc=arnd@arndb.de \ --cc=darwish.07@gmail.com \ --cc=ebiederm@xmission.com \ --cc=gregkh@linuxfoundation.org \ --cc=kbuild-all@lists.01.org \ --cc=linux-api@vger.kernel.org \ --cc=linux-crypto@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=lkp@intel.com \ --cc=patrakov@gmail.com \ --cc=tytso@mit.edu \ --cc=w@1wt.eu \ /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: linkBe 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.