From: kbuild test robot <lkp@intel.com>
To: "Stephan Müller" <smueller@chronox.de>
Cc: kbuild-all@lists.01.org, Arnd Bergmann <arnd@arndb.de>,
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>,
Matthew Garrett <mjg59@srcf.ucam.org>,
Vito Caputo <vcaputo@pengaru.com>,
Andreas Dilger <adilger.kernel@dilger.ca>,
Jan Kara <jack@suse.cz>, Ray Strode <rstrode@redhat.com>,
William Jon McCann <mccann@jhu.edu>,
zhangjs <zachary@baishancloud.com>,
Andy Lutomirski <luto@kernel.org>,
Florian Weimer <fweimer@redhat.com>,
Lennart Poettering <mzxreary@0pointer.de>,
Nicolai Stange <nstange@suse.de>,
"Peter, Matthias" <matthias.peter@bsi.bund.de>,
Marcelo Henrique Cerri <marcelo.cerri@canonical.com>,
Roman Drahtmueller <draht@schaltsekun.de>,
Neil Horman <nhorman@redhat.com>,
Randy Dunlap <rdunlap@infradead.org>,
Julia Lawall <julia.lawall@inria.fr>
Subject: Re: [PATCH v27 01/12] Linux Random Number Generator
Date: Thu, 16 Jan 2020 14:09:51 +0800 [thread overview]
Message-ID: <202001161241.meGVaLli%lkp@intel.com> (raw)
In-Reply-To: <112781836.sNYxTrJJ31@positron.chronox.de>
Hi "Stephan,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on char-misc/char-misc-testing]
[also build test WARNING on cryptodev/master crypto/master v5.5-rc6 next-20200110]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]
url: https://github.com/0day-ci/linux/commits/Stephan-M-ller/dev-random-a-new-approach-with-full-SP800-90B/20200110-084934
base: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc.git 68faa679b8be1a74e6663c21c3a9d25d32f1c079
reproduce:
# apt-get install sparse
# sparse version: v0.6.1-130-g1a803e7a-dirty
make ARCH=x86_64 allmodconfig
make C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__'
If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>
sparse warnings: (new ones prefixed by >>)
>> drivers/char/lrng/lrng_interfaces.c:455:16: sparse: sparse: incorrect type in return expression (different base types)
>> drivers/char/lrng/lrng_interfaces.c:455:16: sparse: expected unsigned int
>> drivers/char/lrng/lrng_interfaces.c:455:16: sparse: got restricted __poll_t [assigned] [usertype] mask
>> drivers/char/lrng/lrng_interfaces.c:586:18: sparse: sparse: incorrect type in initializer (different base types)
>> drivers/char/lrng/lrng_interfaces.c:586:18: sparse: expected restricted __poll_t ( *poll )( ... )
>> drivers/char/lrng/lrng_interfaces.c:586:18: sparse: got unsigned int ( * )( ... )
drivers/char/lrng/lrng_interfaces.c:605:49: sparse: sparse: undefined identifier 'GRND_INSECURE'
drivers/char/lrng/lrng_interfaces.c:613:15: sparse: sparse: undefined identifier 'GRND_INSECURE'
drivers/char/lrng/lrng_interfaces.c:613:47: sparse: sparse: undefined identifier 'GRND_INSECURE'
drivers/char/lrng/lrng_interfaces.c:619:21: sparse: sparse: undefined identifier 'GRND_INSECURE'
--
drivers/char/lrng/lrng_drng.c:378:6: sparse: sparse: symbol 'lrng_reset' was not declared. Should it be static?
>> drivers/char/lrng/lrng_internal.h:235:39: sparse: sparse: context imbalance in 'lrng_drng_inject' - unexpected unlock
>> drivers/char/lrng/lrng_internal.h:235:39: sparse: sparse: context imbalance in 'lrng_drng_seed' - unexpected unlock
>> drivers/char/lrng/lrng_internal.h:235:39: sparse: sparse: context imbalance in 'lrng_drng_get' - unexpected unlock
>> drivers/char/lrng/lrng_internal.h:235:39: sparse: sparse: context imbalance in 'lrng_drngs_init_cc20' - unexpected unlock
>> drivers/char/lrng/lrng_internal.h:235:39: sparse: sparse: context imbalance in '_lrng_reset' - unexpected unlock
vim +455 drivers/char/lrng/lrng_interfaces.c
442
443 static unsigned int lrng_random_poll(struct file *file, poll_table *wait)
444 {
445 __poll_t mask;
446
447 poll_wait(file, &lrng_init_wait, wait);
448 poll_wait(file, &lrng_write_wait, wait);
449 mask = 0;
450 if (lrng_state_operational())
451 mask |= EPOLLIN | EPOLLRDNORM;
452 if (lrng_need_entropy() ||
453 lrng_state_exseed_allow(lrng_noise_source_user))
454 mask |= EPOLLOUT | EPOLLWRNORM;
> 455 return mask;
456 }
457
458 static ssize_t lrng_drng_write_common(const char __user *buffer, size_t count,
459 u32 entropy_bits)
460 {
461 ssize_t ret = 0;
462 u8 buf[64] __aligned(LRNG_KCAPI_ALIGN);
463 const char __user *p = buffer;
464 u32 orig_entropy_bits = entropy_bits;
465
466 if (!lrng_get_available())
467 return -EAGAIN;
468
469 count = min_t(size_t, count, INT_MAX);
470 while (count > 0) {
471 size_t bytes = min_t(size_t, count, sizeof(buf));
472 u32 ent = min_t(u32, bytes<<3, entropy_bits);
473
474 if (copy_from_user(&buf, p, bytes))
475 return -EFAULT;
476 /* Inject data into entropy pool */
477 lrng_pool_lfsr(buf, bytes);
478 lrng_pool_add_entropy(ent);
479
480 count -= bytes;
481 p += bytes;
482 ret += bytes;
483 entropy_bits -= ent;
484
485 cond_resched();
486 }
487
488 /* Force reseed of DRNG during next data request. */
489 if (!orig_entropy_bits)
490 lrng_drng_force_reseed();
491
492 return ret;
493 }
494
495 static ssize_t lrng_drng_read(struct file *file, char __user *buf,
496 size_t nbytes, loff_t *ppos)
497 {
498 if (!lrng_state_min_seeded())
499 pr_notice_ratelimited("%s - use of insufficiently seeded DRNG "
500 "(%zu bytes read)\n", current->comm,
501 nbytes);
502 else if (!lrng_state_operational())
503 pr_debug_ratelimited("%s - use of not fully seeded DRNG (%zu "
504 "bytes read)\n", current->comm, nbytes);
505
506 return lrng_read_common(buf, nbytes);
507 }
508
509 static ssize_t lrng_drng_write(struct file *file, const char __user *buffer,
510 size_t count, loff_t *ppos)
511 {
512 return lrng_drng_write_common(buffer, count, 0);
513 }
514
515 static long lrng_ioctl(struct file *f, unsigned int cmd, unsigned long arg)
516 {
517 int size, ent_count_bits;
518 int __user *p = (int __user *)arg;
519
520 switch (cmd) {
521 case RNDGETENTCNT:
522 ent_count_bits = lrng_avail_entropy();
523 if (put_user(ent_count_bits, p))
524 return -EFAULT;
525 return 0;
526 case RNDADDTOENTCNT:
527 if (!capable(CAP_SYS_ADMIN))
528 return -EPERM;
529 if (get_user(ent_count_bits, p))
530 return -EFAULT;
531 ent_count_bits = (int)lrng_avail_entropy() + ent_count_bits;
532 if (ent_count_bits < 0)
533 ent_count_bits = 0;
534 if (ent_count_bits > LRNG_POOL_SIZE_BITS)
535 ent_count_bits = LRNG_POOL_SIZE_BITS;
536 lrng_pool_set_entropy(ent_count_bits);
537 return 0;
538 case RNDADDENTROPY:
539 if (!capable(CAP_SYS_ADMIN))
540 return -EPERM;
541 if (get_user(ent_count_bits, p++))
542 return -EFAULT;
543 if (ent_count_bits < 0)
544 return -EINVAL;
545 if (get_user(size, p++))
546 return -EFAULT;
547 if (size < 0)
548 return -EINVAL;
549 lrng_state_exseed_set(lrng_noise_source_user, false);
550 /* there cannot be more entropy than data */
551 ent_count_bits = min(ent_count_bits, size<<3);
552 return lrng_drng_write_common((const char __user *)p, size,
553 ent_count_bits);
554 case RNDZAPENTCNT:
555 case RNDCLEARPOOL:
556 /* Clear the entropy pool counter. */
557 if (!capable(CAP_SYS_ADMIN))
558 return -EPERM;
559 lrng_pool_set_entropy(0);
560 return 0;
561 case RNDRESEEDCRNG:
562 /*
563 * We leave the capability check here since it is present
564 * in the upstream's RNG implementation. Yet, user space
565 * can trigger a reseed as easy as writing into /dev/random
566 * or /dev/urandom where no privilege is needed.
567 */
568 if (!capable(CAP_SYS_ADMIN))
569 return -EPERM;
570 /* Force a reseed of all DRNGs */
571 lrng_drng_force_reseed();
572 return 0;
573 default:
574 return -EINVAL;
575 }
576 }
577
578 static int lrng_fasync(int fd, struct file *filp, int on)
579 {
580 return fasync_helper(fd, filp, on, &fasync);
581 }
582
583 const struct file_operations random_fops = {
584 .read = lrng_drng_read_block,
585 .write = lrng_drng_write,
> 586 .poll = lrng_random_poll,
587 .unlocked_ioctl = lrng_ioctl,
588 .compat_ioctl = compat_ptr_ioctl,
589 .fasync = lrng_fasync,
590 .llseek = noop_llseek,
591 };
592
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org Intel Corporation
WARNING: multiple messages have this Message-ID (diff)
From: kbuild test robot <lkp@intel.com>
To: "Stephan Müller" <smueller@chronox.de>
Cc: kbuild-all@lists.01.org, Arnd Bergmann <arnd@arndb.de>,
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>,
Matthew Garrett <mjg59@srcf.ucam.org>,
Vito Caputo <vcaputo@pengaru.com>,
Andreas Dilger <adilger.kernel@dilger.ca>,
Jan Kara <jack@suse.cz>, Ray Strode <rstrode@redhat.com>,
William Jon McCann <mccann@jhu.edu>,
zhangjs <zachary@baishancloud.com>,
Andy Lutomirski <luto@kernel.org>,
Florian Weimer <fweimer@redhat.com>,
Lennart Poettering <mzxreary@0pointer.de>,
Ni
Subject: Re: [PATCH v27 01/12] Linux Random Number Generator
Date: Thu, 16 Jan 2020 14:09:51 +0800 [thread overview]
Message-ID: <202001161241.meGVaLli%lkp@intel.com> (raw)
In-Reply-To: <112781836.sNYxTrJJ31@positron.chronox.de>
Hi "Stephan,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on char-misc/char-misc-testing]
[also build test WARNING on cryptodev/master crypto/master v5.5-rc6 next-20200110]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]
url: https://github.com/0day-ci/linux/commits/Stephan-M-ller/dev-random-a-new-approach-with-full-SP800-90B/20200110-084934
base: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc.git 68faa679b8be1a74e6663c21c3a9d25d32f1c079
reproduce:
# apt-get install sparse
# sparse version: v0.6.1-130-g1a803e7a-dirty
make ARCH=x86_64 allmodconfig
make C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__'
If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>
sparse warnings: (new ones prefixed by >>)
>> drivers/char/lrng/lrng_interfaces.c:455:16: sparse: sparse: incorrect type in return expression (different base types)
>> drivers/char/lrng/lrng_interfaces.c:455:16: sparse: expected unsigned int
>> drivers/char/lrng/lrng_interfaces.c:455:16: sparse: got restricted __poll_t [assigned] [usertype] mask
>> drivers/char/lrng/lrng_interfaces.c:586:18: sparse: sparse: incorrect type in initializer (different base types)
>> drivers/char/lrng/lrng_interfaces.c:586:18: sparse: expected restricted __poll_t ( *poll )( ... )
>> drivers/char/lrng/lrng_interfaces.c:586:18: sparse: got unsigned int ( * )( ... )
drivers/char/lrng/lrng_interfaces.c:605:49: sparse: sparse: undefined identifier 'GRND_INSECURE'
drivers/char/lrng/lrng_interfaces.c:613:15: sparse: sparse: undefined identifier 'GRND_INSECURE'
drivers/char/lrng/lrng_interfaces.c:613:47: sparse: sparse: undefined identifier 'GRND_INSECURE'
drivers/char/lrng/lrng_interfaces.c:619:21: sparse: sparse: undefined identifier 'GRND_INSECURE'
--
drivers/char/lrng/lrng_drng.c:378:6: sparse: sparse: symbol 'lrng_reset' was not declared. Should it be static?
>> drivers/char/lrng/lrng_internal.h:235:39: sparse: sparse: context imbalance in 'lrng_drng_inject' - unexpected unlock
>> drivers/char/lrng/lrng_internal.h:235:39: sparse: sparse: context imbalance in 'lrng_drng_seed' - unexpected unlock
>> drivers/char/lrng/lrng_internal.h:235:39: sparse: sparse: context imbalance in 'lrng_drng_get' - unexpected unlock
>> drivers/char/lrng/lrng_internal.h:235:39: sparse: sparse: context imbalance in 'lrng_drngs_init_cc20' - unexpected unlock
>> drivers/char/lrng/lrng_internal.h:235:39: sparse: sparse: context imbalance in '_lrng_reset' - unexpected unlock
vim +455 drivers/char/lrng/lrng_interfaces.c
442
443 static unsigned int lrng_random_poll(struct file *file, poll_table *wait)
444 {
445 __poll_t mask;
446
447 poll_wait(file, &lrng_init_wait, wait);
448 poll_wait(file, &lrng_write_wait, wait);
449 mask = 0;
450 if (lrng_state_operational())
451 mask |= EPOLLIN | EPOLLRDNORM;
452 if (lrng_need_entropy() ||
453 lrng_state_exseed_allow(lrng_noise_source_user))
454 mask |= EPOLLOUT | EPOLLWRNORM;
> 455 return mask;
456 }
457
458 static ssize_t lrng_drng_write_common(const char __user *buffer, size_t count,
459 u32 entropy_bits)
460 {
461 ssize_t ret = 0;
462 u8 buf[64] __aligned(LRNG_KCAPI_ALIGN);
463 const char __user *p = buffer;
464 u32 orig_entropy_bits = entropy_bits;
465
466 if (!lrng_get_available())
467 return -EAGAIN;
468
469 count = min_t(size_t, count, INT_MAX);
470 while (count > 0) {
471 size_t bytes = min_t(size_t, count, sizeof(buf));
472 u32 ent = min_t(u32, bytes<<3, entropy_bits);
473
474 if (copy_from_user(&buf, p, bytes))
475 return -EFAULT;
476 /* Inject data into entropy pool */
477 lrng_pool_lfsr(buf, bytes);
478 lrng_pool_add_entropy(ent);
479
480 count -= bytes;
481 p += bytes;
482 ret += bytes;
483 entropy_bits -= ent;
484
485 cond_resched();
486 }
487
488 /* Force reseed of DRNG during next data request. */
489 if (!orig_entropy_bits)
490 lrng_drng_force_reseed();
491
492 return ret;
493 }
494
495 static ssize_t lrng_drng_read(struct file *file, char __user *buf,
496 size_t nbytes, loff_t *ppos)
497 {
498 if (!lrng_state_min_seeded())
499 pr_notice_ratelimited("%s - use of insufficiently seeded DRNG "
500 "(%zu bytes read)\n", current->comm,
501 nbytes);
502 else if (!lrng_state_operational())
503 pr_debug_ratelimited("%s - use of not fully seeded DRNG (%zu "
504 "bytes read)\n", current->comm, nbytes);
505
506 return lrng_read_common(buf, nbytes);
507 }
508
509 static ssize_t lrng_drng_write(struct file *file, const char __user *buffer,
510 size_t count, loff_t *ppos)
511 {
512 return lrng_drng_write_common(buffer, count, 0);
513 }
514
515 static long lrng_ioctl(struct file *f, unsigned int cmd, unsigned long arg)
516 {
517 int size, ent_count_bits;
518 int __user *p = (int __user *)arg;
519
520 switch (cmd) {
521 case RNDGETENTCNT:
522 ent_count_bits = lrng_avail_entropy();
523 if (put_user(ent_count_bits, p))
524 return -EFAULT;
525 return 0;
526 case RNDADDTOENTCNT:
527 if (!capable(CAP_SYS_ADMIN))
528 return -EPERM;
529 if (get_user(ent_count_bits, p))
530 return -EFAULT;
531 ent_count_bits = (int)lrng_avail_entropy() + ent_count_bits;
532 if (ent_count_bits < 0)
533 ent_count_bits = 0;
534 if (ent_count_bits > LRNG_POOL_SIZE_BITS)
535 ent_count_bits = LRNG_POOL_SIZE_BITS;
536 lrng_pool_set_entropy(ent_count_bits);
537 return 0;
538 case RNDADDENTROPY:
539 if (!capable(CAP_SYS_ADMIN))
540 return -EPERM;
541 if (get_user(ent_count_bits, p++))
542 return -EFAULT;
543 if (ent_count_bits < 0)
544 return -EINVAL;
545 if (get_user(size, p++))
546 return -EFAULT;
547 if (size < 0)
548 return -EINVAL;
549 lrng_state_exseed_set(lrng_noise_source_user, false);
550 /* there cannot be more entropy than data */
551 ent_count_bits = min(ent_count_bits, size<<3);
552 return lrng_drng_write_common((const char __user *)p, size,
553 ent_count_bits);
554 case RNDZAPENTCNT:
555 case RNDCLEARPOOL:
556 /* Clear the entropy pool counter. */
557 if (!capable(CAP_SYS_ADMIN))
558 return -EPERM;
559 lrng_pool_set_entropy(0);
560 return 0;
561 case RNDRESEEDCRNG:
562 /*
563 * We leave the capability check here since it is present
564 * in the upstream's RNG implementation. Yet, user space
565 * can trigger a reseed as easy as writing into /dev/random
566 * or /dev/urandom where no privilege is needed.
567 */
568 if (!capable(CAP_SYS_ADMIN))
569 return -EPERM;
570 /* Force a reseed of all DRNGs */
571 lrng_drng_force_reseed();
572 return 0;
573 default:
574 return -EINVAL;
575 }
576 }
577
578 static int lrng_fasync(int fd, struct file *filp, int on)
579 {
580 return fasync_helper(fd, filp, on, &fasync);
581 }
582
583 const struct file_operations random_fops = {
584 .read = lrng_drng_read_block,
585 .write = lrng_drng_write,
> 586 .poll = lrng_random_poll,
587 .unlocked_ioctl = lrng_ioctl,
588 .compat_ioctl = compat_ptr_ioctl,
589 .fasync = lrng_fasync,
590 .llseek = noop_llseek,
591 };
592
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org Intel Corporation
WARNING: multiple messages have this Message-ID (diff)
From: kbuild test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: Re: [PATCH v27 01/12] Linux Random Number Generator
Date: Thu, 16 Jan 2020 14:09:51 +0800 [thread overview]
Message-ID: <202001161241.meGVaLli%lkp@intel.com> (raw)
In-Reply-To: <112781836.sNYxTrJJ31@positron.chronox.de>
[-- Attachment #1: Type: text/plain, Size: 8180 bytes --]
Hi "Stephan,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on char-misc/char-misc-testing]
[also build test WARNING on cryptodev/master crypto/master v5.5-rc6 next-20200110]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]
url: https://github.com/0day-ci/linux/commits/Stephan-M-ller/dev-random-a-new-approach-with-full-SP800-90B/20200110-084934
base: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc.git 68faa679b8be1a74e6663c21c3a9d25d32f1c079
reproduce:
# apt-get install sparse
# sparse version: v0.6.1-130-g1a803e7a-dirty
make ARCH=x86_64 allmodconfig
make C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__'
If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>
sparse warnings: (new ones prefixed by >>)
>> drivers/char/lrng/lrng_interfaces.c:455:16: sparse: sparse: incorrect type in return expression (different base types)
>> drivers/char/lrng/lrng_interfaces.c:455:16: sparse: expected unsigned int
>> drivers/char/lrng/lrng_interfaces.c:455:16: sparse: got restricted __poll_t [assigned] [usertype] mask
>> drivers/char/lrng/lrng_interfaces.c:586:18: sparse: sparse: incorrect type in initializer (different base types)
>> drivers/char/lrng/lrng_interfaces.c:586:18: sparse: expected restricted __poll_t ( *poll )( ... )
>> drivers/char/lrng/lrng_interfaces.c:586:18: sparse: got unsigned int ( * )( ... )
drivers/char/lrng/lrng_interfaces.c:605:49: sparse: sparse: undefined identifier 'GRND_INSECURE'
drivers/char/lrng/lrng_interfaces.c:613:15: sparse: sparse: undefined identifier 'GRND_INSECURE'
drivers/char/lrng/lrng_interfaces.c:613:47: sparse: sparse: undefined identifier 'GRND_INSECURE'
drivers/char/lrng/lrng_interfaces.c:619:21: sparse: sparse: undefined identifier 'GRND_INSECURE'
--
drivers/char/lrng/lrng_drng.c:378:6: sparse: sparse: symbol 'lrng_reset' was not declared. Should it be static?
>> drivers/char/lrng/lrng_internal.h:235:39: sparse: sparse: context imbalance in 'lrng_drng_inject' - unexpected unlock
>> drivers/char/lrng/lrng_internal.h:235:39: sparse: sparse: context imbalance in 'lrng_drng_seed' - unexpected unlock
>> drivers/char/lrng/lrng_internal.h:235:39: sparse: sparse: context imbalance in 'lrng_drng_get' - unexpected unlock
>> drivers/char/lrng/lrng_internal.h:235:39: sparse: sparse: context imbalance in 'lrng_drngs_init_cc20' - unexpected unlock
>> drivers/char/lrng/lrng_internal.h:235:39: sparse: sparse: context imbalance in '_lrng_reset' - unexpected unlock
vim +455 drivers/char/lrng/lrng_interfaces.c
442
443 static unsigned int lrng_random_poll(struct file *file, poll_table *wait)
444 {
445 __poll_t mask;
446
447 poll_wait(file, &lrng_init_wait, wait);
448 poll_wait(file, &lrng_write_wait, wait);
449 mask = 0;
450 if (lrng_state_operational())
451 mask |= EPOLLIN | EPOLLRDNORM;
452 if (lrng_need_entropy() ||
453 lrng_state_exseed_allow(lrng_noise_source_user))
454 mask |= EPOLLOUT | EPOLLWRNORM;
> 455 return mask;
456 }
457
458 static ssize_t lrng_drng_write_common(const char __user *buffer, size_t count,
459 u32 entropy_bits)
460 {
461 ssize_t ret = 0;
462 u8 buf[64] __aligned(LRNG_KCAPI_ALIGN);
463 const char __user *p = buffer;
464 u32 orig_entropy_bits = entropy_bits;
465
466 if (!lrng_get_available())
467 return -EAGAIN;
468
469 count = min_t(size_t, count, INT_MAX);
470 while (count > 0) {
471 size_t bytes = min_t(size_t, count, sizeof(buf));
472 u32 ent = min_t(u32, bytes<<3, entropy_bits);
473
474 if (copy_from_user(&buf, p, bytes))
475 return -EFAULT;
476 /* Inject data into entropy pool */
477 lrng_pool_lfsr(buf, bytes);
478 lrng_pool_add_entropy(ent);
479
480 count -= bytes;
481 p += bytes;
482 ret += bytes;
483 entropy_bits -= ent;
484
485 cond_resched();
486 }
487
488 /* Force reseed of DRNG during next data request. */
489 if (!orig_entropy_bits)
490 lrng_drng_force_reseed();
491
492 return ret;
493 }
494
495 static ssize_t lrng_drng_read(struct file *file, char __user *buf,
496 size_t nbytes, loff_t *ppos)
497 {
498 if (!lrng_state_min_seeded())
499 pr_notice_ratelimited("%s - use of insufficiently seeded DRNG "
500 "(%zu bytes read)\n", current->comm,
501 nbytes);
502 else if (!lrng_state_operational())
503 pr_debug_ratelimited("%s - use of not fully seeded DRNG (%zu "
504 "bytes read)\n", current->comm, nbytes);
505
506 return lrng_read_common(buf, nbytes);
507 }
508
509 static ssize_t lrng_drng_write(struct file *file, const char __user *buffer,
510 size_t count, loff_t *ppos)
511 {
512 return lrng_drng_write_common(buffer, count, 0);
513 }
514
515 static long lrng_ioctl(struct file *f, unsigned int cmd, unsigned long arg)
516 {
517 int size, ent_count_bits;
518 int __user *p = (int __user *)arg;
519
520 switch (cmd) {
521 case RNDGETENTCNT:
522 ent_count_bits = lrng_avail_entropy();
523 if (put_user(ent_count_bits, p))
524 return -EFAULT;
525 return 0;
526 case RNDADDTOENTCNT:
527 if (!capable(CAP_SYS_ADMIN))
528 return -EPERM;
529 if (get_user(ent_count_bits, p))
530 return -EFAULT;
531 ent_count_bits = (int)lrng_avail_entropy() + ent_count_bits;
532 if (ent_count_bits < 0)
533 ent_count_bits = 0;
534 if (ent_count_bits > LRNG_POOL_SIZE_BITS)
535 ent_count_bits = LRNG_POOL_SIZE_BITS;
536 lrng_pool_set_entropy(ent_count_bits);
537 return 0;
538 case RNDADDENTROPY:
539 if (!capable(CAP_SYS_ADMIN))
540 return -EPERM;
541 if (get_user(ent_count_bits, p++))
542 return -EFAULT;
543 if (ent_count_bits < 0)
544 return -EINVAL;
545 if (get_user(size, p++))
546 return -EFAULT;
547 if (size < 0)
548 return -EINVAL;
549 lrng_state_exseed_set(lrng_noise_source_user, false);
550 /* there cannot be more entropy than data */
551 ent_count_bits = min(ent_count_bits, size<<3);
552 return lrng_drng_write_common((const char __user *)p, size,
553 ent_count_bits);
554 case RNDZAPENTCNT:
555 case RNDCLEARPOOL:
556 /* Clear the entropy pool counter. */
557 if (!capable(CAP_SYS_ADMIN))
558 return -EPERM;
559 lrng_pool_set_entropy(0);
560 return 0;
561 case RNDRESEEDCRNG:
562 /*
563 * We leave the capability check here since it is present
564 * in the upstream's RNG implementation. Yet, user space
565 * can trigger a reseed as easy as writing into /dev/random
566 * or /dev/urandom where no privilege is needed.
567 */
568 if (!capable(CAP_SYS_ADMIN))
569 return -EPERM;
570 /* Force a reseed of all DRNGs */
571 lrng_drng_force_reseed();
572 return 0;
573 default:
574 return -EINVAL;
575 }
576 }
577
578 static int lrng_fasync(int fd, struct file *filp, int on)
579 {
580 return fasync_helper(fd, filp, on, &fasync);
581 }
582
583 const struct file_operations random_fops = {
584 .read = lrng_drng_read_block,
585 .write = lrng_drng_write,
> 586 .poll = lrng_random_poll,
587 .unlocked_ioctl = lrng_ioctl,
588 .compat_ioctl = compat_ptr_ioctl,
589 .fasync = lrng_fasync,
590 .llseek = noop_llseek,
591 };
592
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org Intel Corporation
next prev parent reply other threads:[~2020-01-16 6:10 UTC|newest]
Thread overview: 339+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-11-11 18:17 [PATCH v24 00/12] /dev/random - a new approach with full SP800-90B compliance Stephan Müller
2019-11-11 18:17 ` Stephan Müller
2019-11-11 18:18 ` [PATCH v24 01/12] Linux Random Number Generator Stephan Müller
2019-11-11 18:18 ` Stephan Müller
2019-11-11 23:54 ` Thomas Gleixner
2019-11-11 23:54 ` Thomas Gleixner
2019-11-12 2:25 ` Stephan Müller
2019-11-12 2:25 ` Stephan Müller
2019-11-12 10:16 ` Thomas Gleixner
2019-11-12 10:16 ` Thomas Gleixner
2019-11-12 22:30 ` kbuild test robot
2019-11-12 22:30 ` kbuild test robot
2019-11-12 22:30 ` kbuild test robot
2019-11-12 23:15 ` Stephan Müller
2019-11-12 23:15 ` Stephan Müller
2019-11-12 23:15 ` Stephan Müller
2019-11-13 0:14 ` kbuild test robot
2019-11-13 0:14 ` kbuild test robot
2019-11-13 0:14 ` kbuild test robot
2019-11-13 0:25 ` Stephan Müller
2019-11-13 0:25 ` Stephan Müller
2019-11-13 0:25 ` Stephan Müller
2019-11-24 4:51 ` Sandy Harris
2019-11-24 4:51 ` Sandy Harris
2019-11-24 9:02 ` Stephan Mueller
2019-11-24 9:02 ` Stephan Mueller
2019-11-11 18:19 ` [PATCH v24 02/12] LRNG - allocate one SDRNG instance per NUMA node Stephan Müller
2019-11-11 18:19 ` Stephan Müller
2019-11-11 18:20 ` [PATCH v24 03/12] LRNG - /proc interface Stephan Müller
2019-11-11 18:20 ` Stephan Müller
2019-11-11 18:20 ` [PATCH v24 04/12] LRNG - add switchable DRNG support Stephan Müller
2019-11-11 18:20 ` Stephan Müller
2019-11-11 18:21 ` [PATCH v24 05/12] crypto: DRBG - externalize DRBG functions for LRNG Stephan Müller
2019-11-11 18:21 ` Stephan Müller
2019-11-11 18:21 ` [PATCH v24 06/12] LRNG - add SP800-90A DRBG extension Stephan Müller
2019-11-11 18:21 ` Stephan Müller
2019-11-11 18:22 ` [PATCH v24 07/12] LRNG - add kernel crypto API PRNG extension Stephan Müller
2019-11-11 18:22 ` Stephan Müller
2019-11-11 18:23 ` [PATCH v24 08/12] crypto: provide access to a static Jitter RNG state Stephan Müller
2019-11-11 18:23 ` Stephan Müller
2019-11-11 18:23 ` [PATCH v24 09/12] LRNG - add Jitter RNG fast noise source Stephan Müller
2019-11-11 18:23 ` Stephan Müller
2019-11-11 18:24 ` [PATCH v24 10/12] LRNG - add TRNG support Stephan Müller
2019-11-11 18:24 ` Stephan Müller
2019-11-11 18:26 ` [PATCH v24 11/12] LRNG - add SP800-90B compliant health tests Stephan Müller
2019-11-11 18:26 ` Stephan Müller
2019-11-12 19:58 ` Alexander E. Patrakov
2019-11-12 19:58 ` Alexander E. Patrakov
2019-11-12 23:11 ` Stephan Müller
2019-11-12 23:11 ` Stephan Müller
2019-11-13 0:36 ` Stephan Müller
2019-11-13 0:36 ` Stephan Müller
2019-11-13 6:02 ` Alexander E. Patrakov
2019-11-13 6:02 ` Alexander E. Patrakov
2019-11-14 1:46 ` Stephan Müller
2019-11-14 1:46 ` Stephan Müller
2019-11-11 18:26 ` [PATCH v24 12/12] LRNG - add interface for gathering of raw entropy Stephan Müller
2019-11-11 18:26 ` Stephan Müller
2019-11-12 20:55 ` kbuild test robot
2019-11-12 20:55 ` kbuild test robot
2019-11-12 20:55 ` kbuild test robot
2019-11-12 23:13 ` Stephan Müller
2019-11-12 23:13 ` Stephan Müller
2019-11-12 23:13 ` Stephan Müller
2019-11-12 13:23 ` [PATCH v24 00/12] /dev/random - a new approach with full SP800-90B compliance Florian Weimer
2019-11-12 13:23 ` Florian Weimer
2019-11-12 22:43 ` Stephan Müller
2019-11-12 22:43 ` Stephan Müller
2019-11-12 15:33 ` Andy Lutomirski
2019-11-12 15:33 ` Andy Lutomirski
2019-11-12 23:03 ` Stephan Müller
2019-11-12 23:03 ` Stephan Müller
2019-11-12 23:26 ` Stephan Müller
2019-11-12 23:26 ` Stephan Müller
2019-11-13 4:24 ` Stephan Müller
2019-11-13 4:24 ` Stephan Müller
2019-11-13 4:48 ` Andy Lutomirski
2019-11-13 4:48 ` Andy Lutomirski
2019-11-13 12:16 ` Stephan Müller
2019-11-13 12:16 ` Stephan Müller
2019-11-16 9:32 ` [PATCH v25 00/12] /dev/random - a new approach with full SP800-90B Stephan Müller
2019-11-16 9:32 ` Stephan Müller
2019-11-16 9:33 ` [PATCH v25 01/12] Linux Random Number Generator Stephan Müller
2019-11-16 9:33 ` Stephan Müller
2019-11-16 11:25 ` Thomas Gleixner
2019-11-16 11:25 ` Thomas Gleixner
2019-11-17 10:30 ` Stephan Müller
2019-11-17 10:30 ` Stephan Müller
2019-11-16 18:13 ` Nicolai Stange
2019-11-16 18:13 ` Nicolai Stange
2019-11-17 11:01 ` Stephan Müller
2019-11-17 11:01 ` Stephan Müller
2019-11-16 9:33 ` [PATCH v25 02/12] LRNG - allocate one SDRNG instance per NUMA node Stephan Müller
2019-11-16 9:33 ` Stephan Müller
2019-11-16 9:34 ` [PATCH v25 03/12] LRNG - /proc interface Stephan Müller
2019-11-16 9:34 ` Stephan Müller
2019-11-16 16:39 ` Andy Lutomirski
2019-11-16 16:39 ` Andy Lutomirski
2019-11-17 12:16 ` Stephan Müller
2019-11-17 12:16 ` Stephan Müller
2019-11-19 10:06 ` Andy Lutomirski
2019-11-19 10:06 ` Andy Lutomirski
2019-11-19 10:55 ` Stephan Mueller
2019-11-19 10:55 ` Stephan Mueller
2019-11-19 17:40 ` Andy Lutomirski
2019-11-19 17:40 ` Andy Lutomirski
2019-11-16 23:36 ` Eric W. Biederman
2019-11-16 23:36 ` Eric W. Biederman
2019-11-17 11:37 ` Stephan Müller
2019-11-17 11:37 ` Stephan Müller
2019-11-16 9:34 ` [PATCH v25 04/12] LRNG - add switchable DRNG support Stephan Müller
2019-11-16 9:34 ` Stephan Müller
2019-11-16 9:35 ` [PATCH v25 05/12] crypto: DRBG - externalize DRBG functions for LRNG Stephan Müller
2019-11-16 9:35 ` Stephan Müller
2019-11-16 9:35 ` [PATCH v25 06/12] LRNG - add SP800-90A DRBG extension Stephan Müller
2019-11-16 9:35 ` Stephan Müller
2019-11-16 9:35 ` [PATCH v25 07/12] LRNG - add kernel crypto API PRNG extension Stephan Müller
2019-11-16 9:35 ` Stephan Müller
2019-11-16 9:36 ` [PATCH v25 08/12] crypto: provide access to a static Jitter RNG state Stephan Müller
2019-11-16 9:36 ` Stephan Müller
2019-11-16 9:36 ` [PATCH v25 09/12] LRNG - add Jitter RNG fast noise source Stephan Müller
2019-11-16 9:36 ` Stephan Müller
2019-11-20 13:33 ` Neil Horman
2019-11-20 13:33 ` Neil Horman
2019-11-20 20:07 ` Stephan Müller
2019-11-20 20:07 ` Stephan Müller
2019-11-21 14:19 ` Neil Horman
2019-11-21 14:19 ` Neil Horman
2019-11-21 14:33 ` Stephan Mueller
2019-11-21 14:33 ` Stephan Mueller
2019-11-16 9:37 ` [PATCH v25 10/12] LRNG - add TRNG support Stephan Müller
2019-11-16 9:37 ` Stephan Müller
2019-11-16 16:09 ` Andy Lutomirski
2019-11-16 16:09 ` Andy Lutomirski
2019-11-17 11:10 ` Stephan Müller
2019-11-17 11:10 ` Stephan Müller
2019-11-19 10:07 ` Andy Lutomirski
2019-11-19 10:07 ` Andy Lutomirski
2019-11-19 10:46 ` Stephan Mueller
2019-11-19 10:46 ` Stephan Mueller
2019-11-19 12:41 ` Greg Kroah-Hartman
2019-11-19 12:41 ` Greg Kroah-Hartman
2019-11-20 8:58 ` Stephan Müller
2019-11-20 8:58 ` Stephan Müller
2019-11-20 9:55 ` Alexander E. Patrakov
2019-11-20 9:55 ` Alexander E. Patrakov
2019-11-20 13:29 ` Greg Kroah-Hartman
2019-11-20 13:29 ` Greg Kroah-Hartman
2019-11-20 19:51 ` Stephan Müller
2019-11-20 19:51 ` Stephan Müller
2019-11-20 19:57 ` Alexander E. Patrakov
2019-11-20 19:57 ` Alexander E. Patrakov
2019-11-20 20:32 ` Greg Kroah-Hartman
2019-11-20 20:32 ` Greg Kroah-Hartman
2019-11-21 13:06 ` Stephan Müller
2019-11-21 13:06 ` Stephan Müller
2019-11-16 9:37 ` [PATCH v25 11/12] LRNG - add SP800-90B compliant health tests Stephan Müller
2019-11-16 9:37 ` Stephan Müller
2019-11-16 9:38 ` [PATCH v25 12/12] LRNG - add interface for gathering of raw entropy Stephan Müller
2019-11-16 9:38 ` Stephan Müller
2019-11-16 16:51 ` Andy Lutomirski
2019-11-16 16:51 ` Andy Lutomirski
2019-11-17 22:55 ` Stephan Müller
2019-11-17 22:55 ` Stephan Müller
2019-11-19 10:04 ` Andy Lutomirski
2019-11-19 10:04 ` Andy Lutomirski
2019-11-19 17:17 ` Randy Dunlap
2019-11-19 17:17 ` Randy Dunlap
2019-11-20 9:01 ` Stephan Müller
2019-11-20 9:01 ` Stephan Müller
2019-11-21 12:18 ` Nicolai Stange
2019-11-21 12:18 ` Nicolai Stange
2019-11-21 15:18 ` Stephan Müller
2019-11-21 15:18 ` Stephan Müller
2019-11-23 20:08 ` [PATCH v26 00/12] /dev/random - a new approach with full SP800-90B Stephan Müller
2019-11-23 20:08 ` Stephan Müller
2019-11-23 20:10 ` [PATCH v26 01/12] Linux Random Number Generator Stephan Müller
2019-11-23 20:10 ` Stephan Müller
2019-11-24 22:44 ` kbuild test robot
2019-11-24 22:44 ` kbuild test robot
2019-11-24 22:44 ` kbuild test robot
2019-11-25 6:29 ` Stephan Mueller
2019-11-25 6:29 ` Stephan Mueller
2019-11-25 6:29 ` Stephan Mueller
2019-11-23 20:10 ` [PATCH v26 02/12] LRNG - allocate one SDRNG instance per NUMA node Stephan Müller
2019-11-23 20:10 ` Stephan Müller
2019-11-23 20:11 ` [PATCH v26 03/12] LRNG - sysctls and /proc interface Stephan Müller
2019-11-23 20:11 ` Stephan Müller
2019-11-23 20:11 ` [PATCH v26 04/12] LRNG - add switchable DRNG support Stephan Müller
2019-11-23 20:11 ` Stephan Müller
2019-11-23 20:31 ` [PATCH v26 05/12] crypto: DRBG - externalize DRBG functions for LRNG Stephan Müller
2019-11-23 20:31 ` Stephan Müller
2019-11-23 20:32 ` [PATCH v26 06/12] LRNG - add SP800-90A DRBG extension Stephan Müller
2019-11-23 20:32 ` Stephan Müller
2019-11-23 20:32 ` [PATCH v26 07/12] LRNG - add kernel crypto API PRNG extension Stephan Müller
2019-11-23 20:32 ` Stephan Müller
2019-11-23 20:33 ` [PATCH v26 08/12] crypto: provide access to a static Jitter RNG state Stephan Müller
2019-11-23 20:33 ` Stephan Müller
2019-11-23 20:34 ` [PATCH v26 09/12] LRNG - add Jitter RNG fast noise source Stephan Müller
2019-11-23 20:34 ` Stephan Müller
2019-11-23 20:34 ` [PATCH v26 10/12] LRNG - add TRNG support Stephan Müller
2019-11-23 20:34 ` Stephan Müller
2019-11-23 20:34 ` [PATCH v26 11/12] LRNG - add SP800-90B compliant health tests Stephan Müller
2019-11-23 20:34 ` Stephan Müller
2019-11-23 20:35 ` [PATCH v26 12/12] LRNG - add interface for gathering of raw entropy Stephan Müller
2019-11-23 20:35 ` Stephan Müller
2020-01-09 8:29 ` [PATCH v27 00/12] /dev/random - a new approach with full SP800-90B Stephan Müller
2020-01-09 8:29 ` Stephan Müller
2020-01-09 8:30 ` [PATCH v27 01/12] Linux Random Number Generator Stephan Müller
2020-01-09 8:30 ` Stephan Müller
2020-01-16 6:09 ` kbuild test robot [this message]
2020-01-16 6:09 ` kbuild test robot
2020-01-16 6:09 ` kbuild test robot
2020-01-16 6:41 ` Stephan Mueller
2020-01-16 6:41 ` Stephan Mueller
2020-01-16 6:41 ` Stephan Mueller
2020-01-09 8:31 ` [PATCH v27 02/12] LRNG - allocate one DRNG instance per NUMA node Stephan Müller
2020-01-09 8:31 ` Stephan Müller
2020-01-09 8:31 ` [PATCH v27 03/12] LRNG - sysctls and /proc interface Stephan Müller
2020-01-09 8:31 ` Stephan Müller
2020-01-09 8:32 ` [PATCH v27 04/12] LRNG - add switchable DRNG support Stephan Müller
2020-01-09 8:32 ` Stephan Müller
2020-01-11 7:09 ` kbuild test robot
2020-01-11 7:09 ` kbuild test robot
2020-01-11 7:09 ` kbuild test robot
2020-01-12 10:12 ` Stephan Müller
2020-01-12 10:12 ` Stephan Müller
2020-01-12 10:12 ` Stephan Müller
2020-01-09 8:32 ` [PATCH v27 05/12] crypto: DRBG - externalize DRBG functions for LRNG Stephan Müller
2020-01-09 8:32 ` Stephan Müller
2020-01-09 8:32 ` [PATCH v27 06/12] LRNG - add SP800-90A DRBG extension Stephan Müller
2020-01-09 8:32 ` Stephan Müller
2020-01-09 8:33 ` [PATCH v27 07/12] LRNG - add kernel crypto API PRNG extension Stephan Müller
2020-01-09 8:33 ` Stephan Müller
2020-01-09 8:33 ` [PATCH v27 08/12] crypto: provide access to a static Jitter RNG state Stephan Müller
2020-01-09 8:33 ` Stephan Müller
2020-01-09 8:34 ` [PATCH v27 09/12] LRNG - add Jitter RNG fast noise source Stephan Müller
2020-01-09 8:34 ` Stephan Müller
2020-01-10 0:24 ` Randy Dunlap
2020-01-10 0:24 ` Randy Dunlap
2020-01-10 7:45 ` Stephan Mueller
2020-01-10 7:45 ` Stephan Mueller
2020-01-09 8:34 ` [PATCH v27 10/12] LRNG - add SP800-90B compliant health tests Stephan Müller
2020-01-09 8:34 ` Stephan Müller
2020-01-10 0:20 ` Randy Dunlap
2020-01-10 0:20 ` Randy Dunlap
2020-01-10 8:27 ` Stephan Mueller
2020-01-10 8:27 ` Stephan Mueller
2020-01-09 8:35 ` [PATCH v27 11/12] LRNG - add interface for gathering of raw entropy Stephan Müller
2020-01-09 8:35 ` Stephan Müller
2020-01-09 8:35 ` [PATCH v27 12/12] LRNG - add power-on and runtime self-tests Stephan Müller
2020-01-09 8:35 ` Stephan Müller
2020-01-10 0:22 ` Randy Dunlap
2020-01-10 0:22 ` Randy Dunlap
2020-01-10 7:48 ` Stephan Mueller
2020-01-10 7:48 ` Stephan Mueller
2020-01-13 10:39 ` Dan Carpenter
2020-01-13 10:39 ` Dan Carpenter
2020-01-13 10:39 ` Dan Carpenter
2020-01-13 10:39 ` Dan Carpenter
2020-01-13 10:46 ` Stephan Mueller
2020-01-13 10:46 ` Stephan Mueller
2020-01-13 10:46 ` Stephan Mueller
2020-01-15 10:31 ` [PATCH v28 00/12] /dev/random - a new approach with full SP800-90B Stephan Müller
2020-01-15 10:31 ` Stephan Müller
2020-01-15 10:31 ` [PATCH v28 01/12] Linux Random Number Generator Stephan Müller
2020-01-15 10:31 ` Stephan Müller
2020-01-16 0:11 ` Randy Dunlap
2020-01-16 0:11 ` Randy Dunlap
2020-01-16 7:22 ` Stephan Mueller
2020-01-16 7:22 ` Stephan Mueller
2020-01-15 10:32 ` [PATCH v28 02/12] LRNG - allocate one DRNG instance per NUMA node Stephan Müller
2020-01-15 10:32 ` Stephan Müller
2020-01-15 10:32 ` [PATCH v28 03/12] LRNG - sysctls and /proc interface Stephan Müller
2020-01-15 10:32 ` Stephan Müller
2020-01-15 10:32 ` [PATCH v28 04/12] LRNG - add switchable DRNG support Stephan Müller
2020-01-15 10:32 ` Stephan Müller
2020-01-15 10:33 ` [PATCH v28 05/12] crypto: DRBG - externalize DRBG functions for LRNG Stephan Müller
2020-01-15 10:33 ` Stephan Müller
2020-01-15 10:33 ` [PATCH v28 06/12] LRNG - add SP800-90A DRBG extension Stephan Müller
2020-01-15 10:33 ` Stephan Müller
2020-01-16 0:14 ` Randy Dunlap
2020-01-16 0:14 ` Randy Dunlap
2020-01-16 6:55 ` Stephan Mueller
2020-01-16 6:55 ` Stephan Mueller
2020-01-15 10:34 ` [PATCH v28 07/12] LRNG - add kernel crypto API PRNG extension Stephan Müller
2020-01-15 10:34 ` Stephan Müller
2020-01-16 0:15 ` Randy Dunlap
2020-01-16 0:15 ` Randy Dunlap
2020-01-16 6:54 ` Stephan Mueller
2020-01-16 6:54 ` Stephan Mueller
2020-01-15 10:34 ` [PATCH v28 08/12] crypto: provide access to a static Jitter RNG state Stephan Müller
2020-01-15 10:34 ` Stephan Müller
2020-01-15 10:34 ` [PATCH v28 09/12] LRNG - add Jitter RNG fast noise source Stephan Müller
2020-01-15 10:34 ` Stephan Müller
2020-01-16 0:17 ` Randy Dunlap
2020-01-16 0:17 ` Randy Dunlap
2020-01-16 6:51 ` Stephan Mueller
2020-01-16 6:51 ` Stephan Mueller
2020-01-15 10:35 ` [PATCH v28 10/12] LRNG - add SP800-90B compliant health tests Stephan Müller
2020-01-15 10:35 ` Stephan Müller
2020-01-15 10:35 ` [PATCH v28 11/12] LRNG - add interface for gathering of raw entropy Stephan Müller
2020-01-15 10:35 ` Stephan Müller
2020-01-16 0:18 ` Randy Dunlap
2020-01-16 0:18 ` Randy Dunlap
2020-01-16 6:43 ` Stephan Mueller
2020-01-16 6:43 ` Stephan Mueller
2020-01-16 6:48 ` Randy Dunlap
2020-01-16 6:48 ` Randy Dunlap
2020-01-16 6:52 ` Stephan Mueller
2020-01-16 6:52 ` Stephan Mueller
2020-01-15 10:36 ` [PATCH v28 12/12] LRNG - add power-on and runtime self-tests Stephan Müller
2020-01-15 10:36 ` Stephan Müller
2020-01-19 21:12 ` [PATCH v29 00/12] /dev/random - a new approach with full SP800-90B Stephan Müller
2020-01-19 21:12 ` Stephan Müller
2020-01-19 21:13 ` [PATCH v29 01/12] Linux Random Number Generator Stephan Müller
2020-01-19 21:13 ` Stephan Müller
2020-01-19 21:13 ` [PATCH v29 02/12] LRNG - allocate one DRNG instance per NUMA node Stephan Müller
2020-01-19 21:13 ` Stephan Müller
2020-01-19 21:14 ` [PATCH v29 03/12] LRNG - sysctls and /proc interface Stephan Müller
2020-01-19 21:14 ` Stephan Müller
2020-01-19 21:14 ` [PATCH v29 04/12] LRNG - add switchable DRNG support Stephan Müller
2020-01-19 21:14 ` Stephan Müller
2020-01-19 21:15 ` [PATCH v29 05/12] crypto: DRBG - externalize DRBG functions for LRNG Stephan Müller
2020-01-19 21:15 ` Stephan Müller
2020-01-19 21:16 ` [PATCH v29 06/12] LRNG - add SP800-90A DRBG extension Stephan Müller
2020-01-19 21:16 ` Stephan Müller
2020-01-19 21:16 ` [PATCH v29 07/12] LRNG - add kernel crypto API PRNG extension Stephan Müller
2020-01-19 21:16 ` Stephan Müller
2020-01-19 21:17 ` [PATCH v29 08/12] crypto: provide access to a static Jitter RNG state Stephan Müller
2020-01-19 21:17 ` Stephan Müller
2020-01-19 21:18 ` [PATCH v29 09/12] LRNG - add Jitter RNG fast noise source Stephan Müller
2020-01-19 21:18 ` Stephan Müller
2020-01-19 21:18 ` [PATCH v29 10/12] LRNG - add SP800-90B compliant health tests Stephan Müller
2020-01-19 21:18 ` Stephan Müller
2020-01-19 21:19 ` [PATCH v29 11/12] LRNG - add interface for gathering of raw entropy Stephan Müller
2020-01-19 21:19 ` Stephan Müller
2020-01-19 21:20 ` [PATCH v29 12/12] LRNG - add power-on and runtime self-tests Stephan Müller
2020-01-19 21:20 ` 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=202001161241.meGVaLli%lkp@intel.com \
--to=lkp@intel.com \
--cc=adilger.kernel@dilger.ca \
--cc=arnd@arndb.de \
--cc=darwish.07@gmail.com \
--cc=draht@schaltsekun.de \
--cc=ebiederm@xmission.com \
--cc=fweimer@redhat.com \
--cc=gregkh@linuxfoundation.org \
--cc=jack@suse.cz \
--cc=julia.lawall@inria.fr \
--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=luto@kernel.org \
--cc=marcelo.cerri@canonical.com \
--cc=matthias.peter@bsi.bund.de \
--cc=mccann@jhu.edu \
--cc=mjg59@srcf.ucam.org \
--cc=mzxreary@0pointer.de \
--cc=nhorman@redhat.com \
--cc=nstange@suse.de \
--cc=patrakov@gmail.com \
--cc=rdunlap@infradead.org \
--cc=rstrode@redhat.com \
--cc=smueller@chronox.de \
--cc=tytso@mit.edu \
--cc=vcaputo@pengaru.com \
--cc=w@1wt.eu \
--cc=zachary@baishancloud.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.