xref: /kernel/linux/linux-6.6/arch/x86/lib/error-inject.c
  • Home
  • History
  • Annotate Annotate
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
  • only in /kernel/linux/linux-6.6/arch/x86/lib/
162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0
262306a36Sopenharmony_ci
362306a36Sopenharmony_ci#include <linux/linkage.h>
462306a36Sopenharmony_ci#include <linux/error-injection.h>
562306a36Sopenharmony_ci#include <linux/kprobes.h>
662306a36Sopenharmony_ci#include <linux/objtool.h>
762306a36Sopenharmony_ci
862306a36Sopenharmony_ciasmlinkage void just_return_func(void);
962306a36Sopenharmony_ci
1062306a36Sopenharmony_ciasm(
1162306a36Sopenharmony_ci	".text\n"
1262306a36Sopenharmony_ci	".type just_return_func, @function\n"
1362306a36Sopenharmony_ci	".globl just_return_func\n"
1462306a36Sopenharmony_ci	ASM_FUNC_ALIGN
1562306a36Sopenharmony_ci	"just_return_func:\n"
1662306a36Sopenharmony_ci		ANNOTATE_NOENDBR
1762306a36Sopenharmony_ci		ASM_RET
1862306a36Sopenharmony_ci	".size just_return_func, .-just_return_func\n"
1962306a36Sopenharmony_ci);
2062306a36Sopenharmony_ci
2162306a36Sopenharmony_civoid override_function_with_return(struct pt_regs *regs)
2262306a36Sopenharmony_ci{
2362306a36Sopenharmony_ci	regs->ip = (unsigned long)&just_return_func;
2462306a36Sopenharmony_ci}
2562306a36Sopenharmony_ciNOKPROBE_SYMBOL(override_function_with_return);
26

Indexes created Thu Nov 07 10:32:03 CST 2024