diff options
Diffstat (limited to 'include/asm-generic/bug.h')
| -rw-r--r-- | include/asm-generic/bug.h | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/include/asm-generic/bug.h b/include/asm-generic/bug.h index 8af276361bf2..37b82cb96c89 100644 --- a/include/asm-generic/bug.h +++ b/include/asm-generic/bug.h | |||
| @@ -28,6 +28,17 @@ struct bug_entry { | |||
| 28 | #define BUGFLAG_WARNING (1<<0) | 28 | #define BUGFLAG_WARNING (1<<0) |
| 29 | #endif /* CONFIG_GENERIC_BUG */ | 29 | #endif /* CONFIG_GENERIC_BUG */ |
| 30 | 30 | ||
| 31 | /* | ||
| 32 | * Don't use BUG() or BUG_ON() unless there's really no way out; one | ||
| 33 | * example might be detecting data structure corruption in the middle | ||
| 34 | * of an operation that can't be backed out of. If the (sub)system | ||
| 35 | * can somehow continue operating, perhaps with reduced functionality, | ||
| 36 | * it's probably not BUG-worthy. | ||
| 37 | * | ||
| 38 | * If you're tempted to BUG(), think again: is completely giving up | ||
| 39 | * really the *only* solution? There are usually better options, where | ||
| 40 | * users don't need to reboot ASAP and can mostly shut down cleanly. | ||
| 41 | */ | ||
| 31 | #ifndef HAVE_ARCH_BUG | 42 | #ifndef HAVE_ARCH_BUG |
| 32 | #define BUG() do { \ | 43 | #define BUG() do { \ |
| 33 | printk("BUG: failure at %s:%d/%s()!\n", __FILE__, __LINE__, __func__); \ | 44 | printk("BUG: failure at %s:%d/%s()!\n", __FILE__, __LINE__, __func__); \ |
| @@ -39,6 +50,12 @@ struct bug_entry { | |||
| 39 | #define BUG_ON(condition) do { if (unlikely(condition)) BUG(); } while(0) | 50 | #define BUG_ON(condition) do { if (unlikely(condition)) BUG(); } while(0) |
| 40 | #endif | 51 | #endif |
| 41 | 52 | ||
| 53 | /* | ||
| 54 | * WARN(), WARN_ON(), WARN_ON_ONCE, and so on can be used to report | ||
| 55 | * significant issues that need prompt attention if they should ever | ||
| 56 | * appear at runtime. Use the versions with printk format strings | ||
| 57 | * to provide better diagnostics. | ||
| 58 | */ | ||
| 42 | #ifndef __WARN | 59 | #ifndef __WARN |
| 43 | #ifndef __ASSEMBLY__ | 60 | #ifndef __ASSEMBLY__ |
| 44 | extern void warn_slowpath(const char *file, const int line, | 61 | extern void warn_slowpath(const char *file, const int line, |
