// SPDX-License-Identifier: GPL-2.0-only #include <linux/types.h> #include <linux/init.h> #include <linux/libfdt.h> /* * Declare the functions that are exported (but prefixed) here so that LLVM * does not complain it lacks the 'static' keyword (which, if added, makes * LLVM complain because the function is actually unused in this file). */ u64 get_kaslr_seed(uintptr_t dtb_pa); u64 get_kaslr_seed(uintptr_t dtb_pa) { int node, len; fdt64_t *prop; u64 ret; node = fdt_path_offset((void *)dtb_pa, "/chosen"); if (node < 0) return 0; prop = fdt_getprop_w((void *)dtb_pa, node, "kaslr-seed", &len); if (!prop || len != sizeof(u64)) return 0; ret = fdt64_to_cpu(*prop); *prop = 0; return ret; }