Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 42262780 authored by Todd Kjos's avatar Todd Kjos
Browse files

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: 5965ee66 ("ANDROID: add support for vendor hooks")
Bug: 163076069
Signed-off-by: default avatarTodd Kjos <tkjos@google.com>
Change-Id: Ic177db1693a6a2db58f08917e9115c7e6c2971b6
parent 62162d68
Loading
Loading
Loading
Loading
+8 −4
Original line number Original line Diff line number Diff line
/* SPDX-License-Identifier: GPL-2.0 */
/* 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>
#include <linux/tracepoint.h>


@@ -13,6 +17,7 @@
#define DECLARE_RESTRICTED_HOOK(name, proto, args, cond) \
#define DECLARE_RESTRICTED_HOOK(name, proto, args, cond) \
	DEFINE_TRACE(name)
	DEFINE_TRACE(name)



/* prevent additional recursion */
/* prevent additional recursion */
#undef TRACE_HEADER_MULTI_READ
#undef TRACE_HEADER_MULTI_READ
#else /* TRACE_HEADER_MULTI_READ */
#else /* TRACE_HEADER_MULTI_READ */
@@ -61,6 +66,7 @@
	}								\
	}								\
	/* vendor hooks cannot be unregistered */			\
	/* vendor hooks cannot be unregistered */			\


#undef DECLARE_RESTRICTED_HOOK
#define DECLARE_RESTRICTED_HOOK(name, proto, args, cond)		\
#define DECLARE_RESTRICTED_HOOK(name, proto, args, cond)		\
	__DECLARE_HOOK(name, PARAMS(proto), PARAMS(args),		\
	__DECLARE_HOOK(name, PARAMS(proto), PARAMS(args),		\
			cond,						\
			cond,						\
@@ -68,5 +74,3 @@
			PARAMS(__data, args))
			PARAMS(__data, args))


#endif /* TRACE_HEADER_MULTI_READ */
#endif /* TRACE_HEADER_MULTI_READ */

#endif /* _TRACE_VENDOR_HOOKS_H */