/* SPDX-License-Identifier: GPL-2.0 */#ifndef _ASM_RISCV_STACKPROTECTOR_H#define _ASM_RISCV_STACKPROTECTOR_H#include <linux/random.h>#include <linux/version.h>externunsignedlong__stack_chk_guard;/* * Initialize the stackprotector canary value. * * NOTE: this must only be called from functions that never return, * and it must always be inlined. */static__always_inlinevoidboot_init_stack_canary(void){unsignedlongcanary;/* Try to get a semi random initial value. */get_random_bytes(&canary,sizeof(canary));canary^=LINUX_VERSION_CODE;canary&=CANARY_MASK;current->stack_canary=canary;