android_kernel_sony_sdm845/include/linux/bug.h
Greg Kroah-Hartman 93c6cebbd0 This is the 4.9.297 stable release
-----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEZH8oZUiU471FcZm+ONu9yGCSaT4FAmHdejgACgkQONu9yGCS
 aT73xQ/+JkyRiZb0QcCNNPd3lFZ2ZmObHr3bXZGwn0BGsJ3aoqqG5PV9uUUAZH0d
 BNsv+ETQOQ/4HDB3b+eYKxpnUeK1tXC6ZvqetADf5rSoDiCuHka4gFNHX8qUYwUv
 YBicoYvx+6IStovLFCgGL1ZTXpn3aWU+oHzzNn4Kn1iniIf+faj391um9QYMjMOX
 29M/PT4841onFjDsd1ndp0ONsQY1x1IGKOXwUgz9gd4xAbgBtAweb5+CtBwBPtw2
 4BbPG/rYO+IGROoz29yNPZNaORX1jPOV+DUijklDmte2iIi5Abkh8SUZY78SwGDX
 J2mj1PgsbNDO6svM1bZF7lopdbBmDpVfTAE+tALDSRv3h7KcLFwS8F0EieKmJGbN
 Ixxm5gZ3D8xi9zgfolP4xbQ6oJJGxvjqcXyIeKXvs7aPCDbhSqjvsfkZBomSLMYQ
 F3tIr7gkiLmr5QnRxcgwnmMlLXgH9cEiok0xD0qaMB+qZF26QGyT2WpniADamPkj
 LXGEdYXKXN5LEb3EgYWPfZQiNX9DLkCiTtvWCIk2KlCXqkF68AlPWIe5t5TZaoOq
 ag+BMvS8e8cMjNby7wR6X0LjmtdibtOr/tLD93tKRm0m6BlQv3LoxcINL+NiVRBx
 QYmi0vriknJgNm8jS8GBoq89+tsQyJI3ehwBdV9whLUydANZ7V8=
 =ECUm
 -----END PGP SIGNATURE-----

Merge 4.9.297 into android-4.9-q

Changes in 4.9.297
	Bluetooth: btusb: Apply QCA Rome patches for some ATH3012 models
	tracing: Fix check for trace_percpu_buffer validity in get_trace_buf()
	tracing: Tag trace_percpu_buffer as a percpu pointer
	virtio_pci: Support surprise removal of virtio pci device
	ieee802154: atusb: fix uninit value in atusb_set_extended_addr
	mac80211: initialize variable have_higher_than_11mbit
	i40e: Fix incorrect netdev's real number of RX/TX queues
	sch_qfq: prevent shift-out-of-bounds in qfq_init_qdisc
	xfs: map unwritten blocks in XFS_IOC_{ALLOC,FREE}SP just like fallocate
	rndis_host: support Hytera digital radios
	bug: split BUILD_BUG stuff out into <linux/build_bug.h>
	arm64: Remove a redundancy in sysreg.h
	arm64: reduce el2_setup branching
	arm64: move !VHE work to end of el2_setup
	arm64: sysreg: Move to use definitions for all the SCTLR bits
	phonet: refcount leak in pep_sock_accep
	scsi: libiscsi: Fix UAF in iscsi_conn_get_param()/iscsi_conn_teardown()
	ip6_vti: initialize __ip6_tnl_parm struct in vti6_siocdevprivate
	net: udp: fix alignment problem in udp4_seq_show()
	mISDN: change function names to avoid conflicts
	power: reset: ltc2952: Fix use of floating point literals
	Linux 4.9.297

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I1b6c457971ca5e3b4d2354852a7eeeaccc965a46
2022-01-11 15:21:18 +01:00

83 lines
1.9 KiB
C

#ifndef _LINUX_BUG_H
#define _LINUX_BUG_H
#include <asm/bug.h>
#include <linux/compiler.h>
#include <linux/build_bug.h>
enum bug_trap_type {
BUG_TRAP_TYPE_NONE = 0,
BUG_TRAP_TYPE_WARN = 1,
BUG_TRAP_TYPE_BUG = 2,
};
struct pt_regs;
#ifdef __CHECKER__
#define MAYBE_BUILD_BUG_ON(cond) (0)
#else /* __CHECKER__ */
#define MAYBE_BUILD_BUG_ON(cond) \
do { \
if (__builtin_constant_p((cond))) \
BUILD_BUG_ON(cond); \
else \
BUG_ON(cond); \
} while (0)
#endif /* __CHECKER__ */
#ifdef CONFIG_GENERIC_BUG
#include <asm-generic/bug.h>
static inline int is_warning_bug(const struct bug_entry *bug)
{
return bug->flags & BUGFLAG_WARNING;
}
const struct bug_entry *find_bug(unsigned long bugaddr);
enum bug_trap_type report_bug(unsigned long bug_addr, struct pt_regs *regs);
/* These are defined by the architecture */
int is_valid_bugaddr(unsigned long addr);
#else /* !CONFIG_GENERIC_BUG */
static inline void *find_bug(unsigned long bugaddr)
{
return NULL;
}
static inline enum bug_trap_type report_bug(unsigned long bug_addr,
struct pt_regs *regs)
{
return BUG_TRAP_TYPE_BUG;
}
#endif /* CONFIG_GENERIC_BUG */
#ifdef CONFIG_PANIC_ON_DATA_CORRUPTION
#define PANIC_CORRUPTION 1
#else
#define PANIC_CORRUPTION 0
#endif /* CONFIG_PANIC_ON_DATA_CORRUPTION */
/*
* Since detected data corruption should stop operation on the affected
* structures. Return value must be checked and sanely acted on by caller.
*/
static inline __must_check bool check_data_corruption(bool v) { return v; }
#define CHECK_DATA_CORRUPTION(condition, fmt, ...) \
check_data_corruption(({ \
bool corruption = unlikely(condition); \
if (corruption) { \
if (IS_ENABLED(CONFIG_BUG_ON_DATA_CORRUPTION)) { \
pr_err(fmt, ##__VA_ARGS__); \
BUG(); \
} else \
WARN(1, fmt, ##__VA_ARGS__); \
} \
corruption; \
}))
#endif /* _LINUX_BUG_H */