1*c0087d80SHeiko Carstens // SPDX-License-Identifier: GPL-2.0 2*c0087d80SHeiko Carstens 3*c0087d80SHeiko Carstens #include <asm/facility.h> 4*c0087d80SHeiko Carstens #include <uapi/asm-generic/errno.h> 5*c0087d80SHeiko Carstens #include "vdso.h" 6*c0087d80SHeiko Carstens 7*c0087d80SHeiko Carstens ssize_t __kernel_getrandom(void *buffer, size_t len, unsigned int flags, void *opaque_state, size_t opaque_len) 8*c0087d80SHeiko Carstens { 9*c0087d80SHeiko Carstens if (test_facility(129)) 10*c0087d80SHeiko Carstens return __cvdso_getrandom(buffer, len, flags, opaque_state, opaque_len); 11*c0087d80SHeiko Carstens if (unlikely(opaque_len == ~0UL && !buffer && !len && !flags)) 12*c0087d80SHeiko Carstens return -ENOSYS; 13*c0087d80SHeiko Carstens return getrandom_syscall(buffer, len, flags); 14*c0087d80SHeiko Carstens } 15