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