File Index
Files and directories
Sign in
FILE

jump_label.c

File preview with syntax highlighting.

linux-6.19.14/arch/arm64/kernel/jump_label.c C
 1// SPDX-License-Identifier: GPL-2.0-only
 2/*
 3 * Copyright (C) 2013 Huawei Ltd.
 4 * Author: Jiang Liu <liuj97@gmail.com>
 5 *
 6 * Based on arch/arm/kernel/jump_label.c
 7 */
 8#include <linux/kernel.h>
 9#include <linux/jump_label.h>
10#include <linux/smp.h>
11#include <asm/insn.h>
12#include <asm/text-patching.h>
13
14bool arch_jump_label_transform_queue(struct jump_entry *entry,
15				     enum jump_label_type type)
16{
17	void *addr = (void *)jump_entry_code(entry);
18	u32 insn;
19
20	if (type == JUMP_LABEL_JMP) {
21		insn = aarch64_insn_gen_branch_imm(jump_entry_code(entry),
22						   jump_entry_target(entry),
23						   AARCH64_INSN_BRANCH_NOLINK);
24	} else {
25		insn = aarch64_insn_gen_nop();
26	}
27
28	aarch64_insn_patch_text_nosync(addr, insn);
29	return true;
30}
31
32void arch_jump_label_transform_apply(void)
33{
34	kick_all_cpus_sync();
35}
~/ Read-only file preview.