asm_goto_workaround.h (725B)
1/* SPDX-License-Identifier: GPL-2.0 */ 2/* Copyright (c) 2019 Facebook */ 3#ifndef __ASM_GOTO_WORKAROUND_H 4#define __ASM_GOTO_WORKAROUND_H 5 6/* 7 * This will bring in asm_volatile_goto and asm_inline macro definitions 8 * if enabled by compiler and config options. 9 */ 10#include <linux/types.h> 11 12#ifdef asm_volatile_goto 13#undef asm_volatile_goto 14#define asm_volatile_goto(x...) asm volatile("invalid use of asm_volatile_goto") 15#endif 16 17/* 18 * asm_inline is defined as asm __inline in "include/linux/compiler_types.h" 19 * if supported by the kernel's CC (i.e CONFIG_CC_HAS_ASM_INLINE) which is not 20 * supported by CLANG. 21 */ 22#ifdef asm_inline 23#undef asm_inline 24#define asm_inline asm 25#endif 26 27#define volatile(x...) volatile("") 28#endif