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 | 701 | __SYSCALL(__NR_renameat2, sys_renameat2) |
| 702 | 702 | #define __NR_seccomp 277 |
| 703 | 703 | __SYSCALL(__NR_seccomp, sys_seccomp) |
| 704 | +#define __NR_getrandom 278 | |
| 705 | +__SYSCALL(__NR_getrandom, sys_getrandom) | |
| 704 | 706 | |
| 705 | 707 | #undef __NR_syscalls |
| 706 | −#define __NR_syscalls 278 | |
| 708 | +#define __NR_syscalls 279 | |
| 707 | 709 | |
| 708 | 710 | /* |
| 709 | 711 | * All syscalls below here should go away really, |
| @@ -40,4 +40,13 @@ struct rand_pool_info { · 39 unmodified lines | ||
| 40 | 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 | 52 | #endif /* _UAPI_LINUX_RANDOM_H */ |