557 Commits

Author SHA1 Message Date
Vladislav Bolkhovitin
22a46ff163 Patch from Bart Van Assche <bart.vanassche@gmail.com>:
The patch below implements the following changes:
- Make sure the output of the make command does not appear in the generated
  kernel patch.
- Changed interpreter of scripts/specialize-patch from /usr/bin/gawk to
  /usr/bin/awk in order to make sure this awk script also runs on systems
  where awk is installed but not gawk.
- Added an extra evaluation rule such that expressions like (0) are rewritten
  as 0.
- Fixed a spelling error.
- Expressions that can only be partially evaluated are now partially evaluated.
  E.g. #if defined(EXTRACHECKS) && (LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 18))
  becomes #if defined(EXTRACHECKS) && 0 in the output.
- Code between #if 0 / #endif or #if 1 / #endif is included in the generated
  kernel patch, including the surrounding preprocessor directives.
- Preprocessor statements with spaces behind # are now recognized (e.g. "#   if").
- Expression evaluator now supports ! (logical not) and () (braces).
- #elif is now evaluated correctly.
- Nested #if / #elif / #else / #endif are now interpreted correctly.

Signed-off-by: Bart Van Assche <bart.vanassche@gmail.com>



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@385 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2008-05-22 15:55:23 +00:00
Vladislav Bolkhovitin
e1cd55070d Patch from Bart Van Assche <bart.vanassche@gmail.com>:
The patch below contains a script that removes C preprocessor tests on the
LINUX_VERSION_CODE macro, depending on the kernel version that was passed as
an argument to that script. Furthermore, the generate-kernel-patch script has
been modified such that its output is filtered by the specialize-patch script.
This eliminates another class of checkpatch errors.

Note: due to the way the specialize-patch script is implemented, #if 0 and
#if 1 statements are also processed.

The patch below has been verified as follows:
- Checked that checkpatch does no longer complain about LINUX_VERSION_CODE
  on the generated patch.
- Checked that the generated kernel patch applies cleanly to the 2.6.25.4
  kernel.
- Checked that the patched kernel compiles and installs cleanly, and that
  after reboot it was possible to load the iscsi-scst and ib_srpt kernel modules.

I will wait with sending more patches until this and the previous two patches
have been reviewed and/or applied.

Signed-off-by: Bart Van Assche <bart.vanassche@gmail.com>



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@384 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2008-05-21 15:48:02 +00:00
Vladislav Bolkhovitin
56e642cf77 Patch from Bart Van Assche <bart.vanassche@gmail.com>:
The patch below implements the following changes:
- Fixes the remaining warnings reported by checkpatch.pl with regard to the use
  of whitespace in C code.
- Adds double qoutes around some #warning messages, such that checkpatch.pl
  does no longer try to interprete the text behind the #warning preprocessor
  directive.
- Adds an extra conversion to the generate-kernel-patch script that removes
  the single space from before goto-labels while generating the kernel patch.

This patch has been tested as follows:
- Verified that svn diff -x -w only shows changes in the #warning preprocessor directives.
- Verified the output of svn diff by reading it.
- Verified that checkpatch.pl does no longer complain on the use of whitespace
  (searched through the checkpatch.pl output for the text ' space').
- Verified that the patch generated by the generate-kernel-patch script still
  applies cleanly to the 2.6.24 kernel, and that the patched kernel still compiles cleanly.

Please let me know if I have to resubmit parts of this patch to other SCST authors.

Signed-off-by: Bart Van Assche <bart.vanassche@gmail.com>



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@381 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2008-05-21 11:56:09 +00:00
Vladislav Bolkhovitin
8eb92a6582 Patch from Bart Van Assche <bart.vanassche@gmail.com>:
I don't know when this was broken, but with the current SVN version, after 
having generated and applied a kernel patch for SCST, iscsi-scst doesn't 
build anymore. The patch below fixes this and also includes a cleanup patch 
for the generate-kernel-patch'>generate-kernel-patch script. The generated kernel patch has been 
tested with the 2.6.24 and 2.6.25.4 kernels (extracted kernel sources + 
applied patch + built kernel + installed kernel + reboot + load SCST 
modules).

Signed-off-by: <bart.vanassche@gmail.com>



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@375 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2008-05-16 10:29:34 +00:00
Vladislav Bolkhovitin
00bca6ce75 Patch from Bart Van Assche <bart.vanassche@gmail.com>:
By this time I have reworked the update of scripts/generate-kernel-patch'>scripts/generate-kernel-patch. 
These are the changes that were already present in version 1 of this patch 
and that have been kept in this patch:
- The SCST code has been moved from drivers/scsi/scsi_tgt to drivers/scst.
- Moved SCST header files from include/scsi_tgt to include/scst.
- Added iscsi-scst in drivers/scst/iscsi-scst.

For the time being the generate-kernel-patch does no longer try to add the 
qla2x00t driver in drivers/scst/qla2x00-target -- I have not yet been able to 
figure out how to get qla2x00t/qla2x00-target compiled without the initiator 
code.

Just as in version 1 of this patch, the following files in the Subversion 
repository have been renamed to reflect the above changes:
- Renamed scst/kernel/in-tree/Makefile.scsi.Linux-2.6.24.patch'>scst/kernel/in-tree/Makefile.scsi.Linux-2.6.24.patch to
scst/kernel/in-tree/Makefile.drivers.Linux-2.6.24.patch'>scst/kernel/in-tree/Makefile.drivers.Linux-2.6.24.patch.
- Renamed Kconfig'>scst/kernel/in-tree/Kconfig.scsi.Linux-2.6.24.patch to
scst/kernel/in-tree/Kconfig.drivers.Linux-2.6.24.patch'>scst/kernel/in-tree/Kconfig.drivers.Linux-2.6.24.patch.
- Renamed scst/kernel/in-tree/Makefile.scsi_tgt'>scst/kernel/in-tree/Makefile.scsi_tgt to
scst/kernel/in-tree/Makefile.scst'>scst/kernel/in-tree/Makefile.scst.
- Renamed scst/kernel/in-tree/Kconfig.scsi_tgt'>scst/kernel/in-tree/Kconfig.scsi_tgt to
scst/kernel/in-tree/Kconfig.scst'>scst/kernel/in-tree/Kconfig.scst.

Because of the above changes the include path specified in the following
Makefiles had to be changed:
- scst/kernel/in-tree/Makefile.dev_handlers'>scst/kernel/in-tree/Makefile.dev_handlers
- srpt/src/Makefile.in_kernel'>srpt/src/Makefile.in_kernel

Other changes:
- I have added menu/endmenu entries in file scst/kernel/in-tree/Kconfig.scst
such that the SCST entries become visible when running make xconfig or make
menuconfig.
- Elaborated the SCST help texts a little bit (in file
scst/kernel/in-tree/Kconfig.scst).

New in version 2 of this patch:
- Moved remaining patches in the generate-kernel-patch script to separate 
files.
- Added support for the 2.6.25 kernel.

This patch has been tested as follows:

mkdir -p tmp
cd tmp
rm -rf linux-2.6.25.3 /lib/modules/2.6.25.3-scst
tar xjf ~vanasscb/software/downloads/linux-2.6.25.3.tar.bz2
cd linux-2.6.25.3
cp ../.config-2.6.25 .
(cd ~vanasscb/software/scst
&& ~vanasscb/software/scst/scripts/generate-kernel-patch \
2.6.25) | patch -p1
make oldconfig
diff ../.config .
make xconfig
make menuconfig
make -j5 bzImage modules
make modules_install install
cp -r /lib/firmware/$(uname -r) /lib/firmware/2.6.25.3-scst
update-initramfs -k 2.6.25.3-scst -c
reboot
modprobe iscsi-scst
modprobe ib_srpt
lsmod | grep -E 'scst|ib_srpt'
dmesg

Signed-off-by: bart.vanassche@gmail.com 


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@373 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2008-05-15 15:00:21 +00:00
Vladislav Bolkhovitin
87e8cf6123 Patch from Bart Van Assche <bart.vanassche@gmail.com>:
The script generate-kernel-patch generates a kernel tree based on the sources 
and the in-tree kernel patches in the SCST Subversion repository. When I 
submitted the first version of the generate-kernel-patch script most but not 
all in-tree patches were present as separate files in the SCST Subversion 
repository. The patch below moves the two remaining patches that are contained 
inline in the generate-kernel-patch script to separate files. This should 
make it possible to use the script on future Linux kernels without having to 
modify the script itself. The patch below does not contain functional 
changes, it only moves two patches out of the script.

Modified:
* scripts/generate-kernel-patch'>scripts/generate-kernel-patch
Added:
* srpt/src/Makefile.infiniband.Linux-2.6.24.patch'>srpt/src/Makefile.infiniband.Linux-2.6.24.patch
* srpt/src/Kconfig.infiniband.Linux-2.6.24.patch'>srpt/src/Kconfig.infiniband.Linux-2.6.24.patch

Also Makefile and Kconfig files were renamed (".drivers." was replaced by ".scsi.")



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@369 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2008-05-14 10:01:30 +00:00
Vladislav Bolkhovitin
8e5bb8a22f Series of patches from Bart Van Assche <bart.vanassche@gmail.com>:
- Added Makefile.scsi.Linux-2.6.24.patch and Kconfig.scsi.Linux-2.6.24.patch
 - Updated Makefile.scsi_tgt to reflect move of the SCST device handlers from scst/src/ to scst/src/dev_handlers/
 - Added Makefile.dev_handlers
 - SCST include path fixed in srpt/ Makefile.in_kernel
 - Added script for converting the SCST source tree to a kernel patch. More comment on it:

The SCST source tree as it exists in the current Subversion repository will 
have to be maintained for some time. And if SCST is submitted for inclusion 
in the mainline kernel, this tree will have to be converted to a kernel 
patch, reviewer comments will have to be processed, and the patch will have 
to be resubmitted. So it's convenient to have a script available that 
converts the Subversion source tree into a kernel patch. The patch below does 
just that: convert the scst and srpt directories into a kernel patch 
(iscsi-scst support will be added later on). I have tested the script 
contained in the patch below as follows:

rm -rf linux-2.6.24
rm -rf /lib/modules/2.6.24-scst
tar xjf ~vanasscb/software/downloads/linux-2.6.24.tar.bz2
cd linux-2.6.24
cp ../.config .
(cd ~vanasscb/software/scst 
&& ~vanasscb/software/scst/scripts/generate-kernel-patch \
2.6.24) | patch -p1
make -j5 bzImage modules && make modules_install install
cp -r /lib/firmware/$(uname -r) /lib/firmware/2.6.24-scst
update-initramfs -k 2.6.24-scst -c
reboot



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@366 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2008-05-13 09:27:16 +00:00