The patch below implements the following changes:
authorvlnb <vlnb@d57e44dd-8a1f-0410-8b47-8ef2f437770f>
Wed, 9 Jul 2008 17:28:36 +0000 (17:28 +0000)
committervlnb <vlnb@d57e44dd-8a1f-0410-8b47-8ef2f437770f>
Wed, 9 Jul 2008 17:28:36 +0000 (17:28 +0000)
- The script specialize-patch now acts as if #define INSIDE_KERNEL_TREE 1
  is effective.
- The script generate-kernel-patch now renames sBUG_ON() into BUG_ON()
  and sBUG() into BUG(). The same script removes the definitions of the
  sBUG_ON(), sBUG() and WARN_ON_ONCE() macro's from the header file
  scst_debug.h. The last macro is only removed for kernel versions later than
  2.6.19.

This patch has been tested as follows:
- Compared the output of the command "scripts/generate-kernel-patch 2.6.25"
  before and after the changes.
- Verified the newly generated patch with checkpatch. Checkpatch statistics
  are now as follows:
    521 WARNING: line over 80 characters
     12 WARNING: consider using strict_strtoul in preference to simple_strtoul
     10 WARNING: printk() should include KERN_ facility level
      3 WARNING: CVS style keyword markers, these will _not_ be updated
      2 WARNING: do not add new typedefs
      1 WARNING: Use of volatile is usually wrong: see Documentation/volatile-considered-harmful.txt
- Verified that the generated kernel patch still applies cleanly to the
  2.6.25.10 kernel and that this kernel still compiles, installs and boots fine.

Signed-off-by: Bart Van Assche <bart.vanassche@gmail.com>
git-svn-id: https://scst.svn.sourceforge.net/svnroot/scst/trunk@445 d57e44dd-8a1f-0410-8b47-8ef2f437770f

scripts/generate-kernel-patch
scripts/specialize-patch
scst/include/scst_debug.h

index 9e671d0..ef83e25 100755 (executable)
@@ -64,9 +64,10 @@ diff -uprN orig/linux-${kernel_version}/$2 linux-${kernel_version}/$2
 @@ -0,0 +1,$(wc -l "$1" | { read a b; echo $a; }) @@
 EOF
     if [ "${2%.[ch]}" != "$2" ]; then
-      sed -e 's/^ \([^ ]*:\)$/\1/' -e 's/^/+/' < "$1"
+      sed -e 's/sBUG(/BUG(/g' -e 's/sBUG_ON(/BUG_ON(/g' -e 's/^/+/' \
+          -e 's/^ \([^ ]*:\)$/\1/' < "$1"
     else
-      sed -e 's/^/+/' < "$1"
+      sed -e 's/sBUG(/BUG(/g' -e 's/sBUG_ON(/BUG_ON(/g' -e 's/^/+/' < "$1"
     fi
   fi
 }
index a93e6e4..e3346e1 100755 (executable)
@@ -46,11 +46,13 @@ function evaluate(stmnt) {
 
   gsub("LINUX_VERSION_CODE", LINUX_VERSION_CODE, stmnt)
 
+  gsub("defined\\(INSIDE_KERNEL_TREE\\)", "1", stmnt)
+
   do
   {
     last_stmnt = stmnt
 
-    pattern = "! ([0-9]+)"
+    pattern = "! *([0-9]+)"
     while (match(stmnt, pattern, op) != 0)
     {
       sub(pattern, op[1] == 0, stmnt)
@@ -110,7 +112,7 @@ function handle_if()
 {
   # Only act on preprocessor conditional expressions with regard to the Linux
   # kernel version, and do not interpret other expressions.
-  if ($0 ~ "LINUX_VERSION_CODE")
+  if ($0 ~ "LINUX_VERSION_CODE" || $0 ~ "INSIDE_KERNEL_TREE")
   {
     $0 = evaluated
   }
index 4aeb39c..14e3b4a 100644 (file)
@@ -39,6 +39,7 @@
 #define DEBUG
 #endif
 
+#if !defined(INSIDE_KERNEL_TREE)
 #ifdef DEBUG
 
 #ifndef EXTRACHECKS
 #define sBUG() BUG()
 #define sBUG_ON(p) BUG_ON(p)
 
+#endif
 #endif
 
-#ifndef WARN_ON_ONCE
+#if LINUX_VERSION_CODE <= KERNEL_VERSION(2, 6, 19)
 #define WARN_ON_ONCE(condition) ({                             \
        static int __warned;                                    \
        typeof(condition) __ret_warn_once = (condition);        \