Pull randomness updates from Ted Ts'o: "Cleanups and bug fixes to /dev/random, add a new getrandom(2) system call, which is a superset of OpenBSD's getentropy(2) call, for use with userspace crypto libraries such as LibreSSL. Also add the ability to have a kernel thread to pull entropy from hardware rng devices into /dev/random" * tag 'random_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/random: hwrng: Pass entropy to add_hwgenerator_randomness() in bits, not bytes random: limit the contribution of the hw rng to at most half random: introduce getrandom(2) system call hw_random: fix sparse warning (NULL vs 0 for pointer) random: use registers from interrupted code for CPU's w/o a cycle counter hwrng: add per-device entropy derating hwrng: create filler thread random: add_hwgenerator_randomness() for feeding entropy from devices random: use an improved fast_mix() function random: clean up interrupt entropy accounting for archs w/o cycle counters random: only update the last_pulled time if we actually transferred entropy random: remove unneeded hash of a portion of the entropy pool random: always update the entropy pool under the spinlock
Showing the changes to include/uapi (2 of 8 files). Show all
Unified · Split
| @@ -701,9 +701,11 @@ __SYSCALL(__NR_sched_getattr, sys_sched_getattr) · 700 unmodified lines | |||
| 701 | __SYSCALL(__NR_renameat2, sys_renameat2) | 701 | __SYSCALL(__NR_renameat2, sys_renameat2) |
| 702 | #define __NR_seccomp 277 | 702 | #define __NR_seccomp 277 |
| 703 | __SYSCALL(__NR_seccomp, sys_seccomp) | 703 | __SYSCALL(__NR_seccomp, sys_seccomp) |
| 704 | #define __NR_getrandom 278 | ||
| 705 | __SYSCALL(__NR_getrandom, sys_getrandom) | ||
| 704 | 706 | ||
| 705 | #undef __NR_syscalls | 707 | #undef __NR_syscalls |
| 706 | #define __NR_syscalls 278 | 708 | #define __NR_syscalls 279 |
| 707 | 709 | ||
| 708 | /* | 710 | /* |
| 709 | * All syscalls below here should go away really, | 711 | * All syscalls below here should go away really, |
| @@ -40,4 +40,13 @@ struct rand_pool_info { · 39 unmodified lines | |||
| 40 | __u32 buf[0]; | 40 | __u32 buf[0]; |
| 41 | }; | 41 | }; |
| 42 | 42 | ||
| 43 | /* | ||
| 44 | * Flags for getrandom(2) | ||
| 45 | * | ||
| 46 | * GRND_NONBLOCK Don't block and return EAGAIN instead | ||
| 47 | * GRND_RANDOM Use the /dev/random pool instead of /dev/urandom | ||
| 48 | */ | ||
| 49 | #define GRND_NONBLOCK 0x0001 | ||
| 50 | #define GRND_RANDOM 0x0002 | ||
| 51 | |||
| 43 | #endif /* _UAPI_LINUX_RANDOM_H */ | 52 | #endif /* _UAPI_LINUX_RANDOM_H */ |