The patch below implements the following changes:

- 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: http://svn.code.sf.net/p/scst/svn/trunk@445 d57e44dd-8a1f-0410-8b47-8ef2f437770f
This commit is contained in:
Vladislav Bolkhovitin
2008-07-09 17:28:36 +00:00
parent 2853eeec6c
commit 1c9a2b3f4b
3 changed files with 10 additions and 5 deletions

View File

@@ -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
}

View File

@@ -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
}

View File

@@ -39,6 +39,7 @@
#define DEBUG
#endif
#if !defined(INSIDE_KERNEL_TREE)
#ifdef DEBUG
#ifndef EXTRACHECKS
@@ -68,9 +69,10 @@
#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); \