Skip to contentSkip to conversation

2.4: BUG_ON (1/2)

PATCH New Robert Love 1 participant 1 message Mar 21, 2002

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 2.4: BUG_ON (1/2)

Marcelo and Alan,

The attached patch adds 2.5's BUG_ON construct to the 2.4 kernel. This is done to facilitate portability and back-porting 2.4 <=> 2.5, because BUG_ON is a very readable construct, and because it is a small optimization over standard BUG.

For the unaware, BUG_ON(condition) is basically

	if (unlikely(condition) != 0) BUG();

There was some talk in one of Andrew's aa-vm threads over introducing BUG_ON in 2.4 - so I resend this patch. There was also talk of a new name (Jeff Garzik mentioned kassert). This is fine, but since much of the goal is portability between 2.4 and 2.5 the change needs to subsequently be made in 2.5. We can handle that later, if need be.

This patch is against 2.4.19-pre4, but also applies to 2.4.19-ac. Alan and Marcelo - please apply.

Robert Love

include/linux/kernel.h +2 -0
diff -urN linux-2.4.19-pre4/include/linux/kernel.h linux/include/linux/kernel.h
@@ -11,6 +11,7 @@
 #include <linux/linkage.h>
 #include <linux/stddef.h>
 #include <linux/types.h>
+#include <linux/compiler.h>
 
 /* Optimization barrier */
 /* The "volatile" is due to gcc bugs */
@@ -181,4 +182,5 @@
 	char _f[20-2*sizeof(long)-sizeof(int)];	/* Padding: libc5 uses this.. */
 };
 
+#define BUG_ON(condition) do { if (unlikely((condition)!=0)) BUG(); } while(0)
 #endif