ANDROID: fix redefinition error for restricted vendor hooks

Because of the multi-inclusion oddities of tracepoints, the
multi-inclusion protection in vendor_hooks.h caused issues
if more than 1 vendor hook header file with restricted vendor
hooks defined were included with "CREATE_TRACE_POINTS"
defined (redefinition of symbol errors).

The problem is fixed by removing the multiple-inclusion
protection as is done for regular tracepoints.

Fixes: 5965ee663d66 ("ANDROID: add support for vendor hooks")
Bug: 163076069
Signed-off-by: Todd Kjos <tkjos@google.com>
Change-Id: Ic177db1693a6a2db58f08917e9115c7e6c2971b6
This commit is contained in:
Todd Kjos
2020-08-07 16:41:41 -07:00
committed by bengris32
parent e337088063
commit 42f10ea491

View File

@@ -1,7 +1,11 @@
/* SPDX-License-Identifier: GPL-2.0 */
#if !defined(_TRACE_VENDOR_HOOKS_H) || defined(TRACE_HEADER_MULTI_READ)
#define _TRACE_VENDOR_HOOKS_H
/*
* Note: we intentionally omit include file ifdef protection
* This is due to the way trace events work. If a file includes two
* trace event headers under one "CREATE_TRACE_POINTS" the first include
* will override the DECLARE_RESTRICTED_HOOK and break the second include.
*/
#include <linux/tracepoint.h>
@@ -13,6 +17,7 @@
#define DECLARE_RESTRICTED_HOOK(name, proto, args, cond) \
DEFINE_TRACE(name)
/* prevent additional recursion */
#undef TRACE_HEADER_MULTI_READ
#else /* TRACE_HEADER_MULTI_READ */
@@ -61,6 +66,7 @@
} \
/* vendor hooks cannot be unregistered */ \
#undef DECLARE_RESTRICTED_HOOK
#define DECLARE_RESTRICTED_HOOK(name, proto, args, cond) \
__DECLARE_HOOK(name, PARAMS(proto), PARAMS(args), \
cond, \
@@ -68,5 +74,3 @@
PARAMS(__data, args))
#endif /* TRACE_HEADER_MULTI_READ */
#endif /* _TRACE_VENDOR_HOOKS_H */