Commit 6789ab96 authored by Hao Luo's avatar Hao Luo Committed by Alexei Starovoitov

compiler_types: Refactor the use of btf_type_tag attribute.

Previous patches have introduced the compiler attribute btf_type_tag for
__user and __percpu. The availability of this attribute depends on
some CONFIGs and compiler support. This patch refactors the use
of btf_type_tag by introducing BTF_TYPE_TAG, which hides all the
dependencies.

No functional change.
Suggested-by: default avatarAndrii Nakryiko <andrii@kernel.org>
Signed-off-by: default avatarHao Luo <haoluo@google.com>
Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
Acked-by: default avatarYonghong Song <yhs@fb.com>
Link: https://lore.kernel.org/bpf/20220310211655.3173786-1-haoluo@google.com
parent a77c2cfd
...@@ -4,6 +4,13 @@ ...@@ -4,6 +4,13 @@
#ifndef __ASSEMBLY__ #ifndef __ASSEMBLY__
#if defined(CONFIG_DEBUG_INFO_BTF) && defined(CONFIG_PAHOLE_HAS_BTF_TAG) && \
__has_attribute(btf_type_tag)
# define BTF_TYPE_TAG(value) __attribute__((btf_type_tag(#value)))
#else
# define BTF_TYPE_TAG(value) /* nothing */
#endif
#ifdef __CHECKER__ #ifdef __CHECKER__
/* address spaces */ /* address spaces */
# define __kernel __attribute__((address_space(0))) # define __kernel __attribute__((address_space(0)))
...@@ -31,19 +38,11 @@ static inline void __chk_io_ptr(const volatile void __iomem *ptr) { } ...@@ -31,19 +38,11 @@ static inline void __chk_io_ptr(const volatile void __iomem *ptr) { }
# define __kernel # define __kernel
# ifdef STRUCTLEAK_PLUGIN # ifdef STRUCTLEAK_PLUGIN
# define __user __attribute__((user)) # define __user __attribute__((user))
# elif defined(CONFIG_DEBUG_INFO_BTF) && defined(CONFIG_PAHOLE_HAS_BTF_TAG) && \
__has_attribute(btf_type_tag)
# define __user __attribute__((btf_type_tag("user")))
# else # else
# define __user # define __user BTF_TYPE_TAG(user)
# endif # endif
# define __iomem # define __iomem
# if defined(CONFIG_DEBUG_INFO_BTF) && defined(CONFIG_PAHOLE_HAS_BTF_TAG) && \ # define __percpu BTF_TYPE_TAG(percpu)
__has_attribute(btf_type_tag)
# define __percpu __attribute__((btf_type_tag("percpu")))
# else
# define __percpu
# endif
# define __rcu # define __rcu
# define __chk_user_ptr(x) (void)0 # define __chk_user_ptr(x) (void)0
# define __chk_io_ptr(x) (void)0 # define __chk_io_ptr(x) (void)0
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment