2019-05-27 14:55:01 +08:00
|
|
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
2011-06-30 03:16:59 +08:00
|
|
|
/*
|
|
|
|
* Copyright 2010 Michael Ellerman, IBM Corp.
|
|
|
|
*/
|
|
|
|
|
|
|
|
#include <linux/kernel.h>
|
|
|
|
#include <linux/jump_label.h>
|
|
|
|
#include <asm/code-patching.h>
|
2020-05-06 11:40:26 +08:00
|
|
|
#include <asm/inst.h>
|
2011-06-30 03:16:59 +08:00
|
|
|
|
|
|
|
void arch_jump_label_transform(struct jump_entry *entry,
|
|
|
|
enum jump_label_type type)
|
|
|
|
{
|
2020-05-06 11:40:31 +08:00
|
|
|
struct ppc_inst *addr = (struct ppc_inst *)(unsigned long)entry->code;
|
2011-06-30 03:16:59 +08:00
|
|
|
|
2015-07-24 20:45:44 +08:00
|
|
|
if (type == JUMP_LABEL_JMP)
|
2011-06-30 03:16:59 +08:00
|
|
|
patch_branch(addr, entry->target, 0);
|
|
|
|
else
|
2020-05-06 11:40:26 +08:00
|
|
|
patch_instruction(addr, ppc_inst(PPC_INST_NOP));
|
2011-06-30 03:16:59 +08:00
|
|
|
}
|