mirror of
https://github.com/SCST-project/scst.git
synced 2026-05-14 09:11:27 +00:00
- 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
182 lines
4.8 KiB
Bash
Executable File
182 lines
4.8 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
############################################################################
|
|
#
|
|
# Script for converting the SCST source tree as it exists in the Subversion
|
|
# repository to a Linux kernel patch.
|
|
#
|
|
# Copyright (C) 2008 Bart Van Assche <bart.vanassche@gmail.com>
|
|
#
|
|
# This program is free software; you can redistribute it and/or
|
|
# modify it under the terms of the GNU General Public License
|
|
# as published by the Free Software Foundation, version 2
|
|
# of the License.
|
|
#
|
|
# This program is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
#
|
|
############################################################################
|
|
|
|
########################
|
|
# Function definitions #
|
|
########################
|
|
|
|
# Convert an existing patch.
|
|
# $1: path of patch to be added.
|
|
# $2: path in kernel tree of file to be patched.
|
|
function add_patch {
|
|
if [ ! -e "$1" ]; then
|
|
echo "Error: could not find $1."
|
|
exit 1
|
|
fi
|
|
|
|
sed -e "s:^--- [^ ]*:--- orig/$2:" -e "s:^+++ [^ ]*:+++ $2:" < "$1"
|
|
}
|
|
|
|
# Generate a patch for a file to be added to the kernel source tree.
|
|
# $1: path of file to be added.
|
|
# $2: path in kernel tree where file should be added.
|
|
function add_file {
|
|
local a b
|
|
|
|
if [ ! -e "$1" ]; then
|
|
echo "Error: could not find $1."
|
|
exit 1
|
|
fi
|
|
|
|
cat <<EOF
|
|
diff -uprN orig/$2 $2
|
|
--- orig/$2
|
|
+++ $2
|
|
@@ -0,0 +1,$(wc -l "$1" | { read a b; echo $a; }) @@
|
|
EOF
|
|
sed "s/^/+/" <"$1"
|
|
}
|
|
|
|
|
|
#########################
|
|
# Argument verification #
|
|
#########################
|
|
|
|
if [ ! -e scst -o ! -e iscsi-scst -o ! -e srpt ]; then
|
|
echo "Please run this script from inside the SCST subversion source tree."
|
|
exit 1
|
|
fi
|
|
|
|
if [ $# != 1 ]; then
|
|
echo "Usage: $0 <kernel version>."
|
|
exit 1
|
|
fi
|
|
|
|
####################
|
|
# Patch Generation #
|
|
####################
|
|
|
|
kernel_version="$1"
|
|
kpatch=( \
|
|
"scst/kernel/scst_exec_req_fifo-${kernel_version}.patch" \
|
|
"iscsi-scst/kernel/patches/put_page_callback-${kernel_version}.patch" \
|
|
)
|
|
|
|
for p in "${kpatch[@]}"
|
|
do
|
|
if [ ! -e "$p" ]; then
|
|
echo "Error: kernel version ${kernel_version} is not supported by SCST."
|
|
echo "(could not find file $p)."
|
|
exit 1
|
|
fi
|
|
done
|
|
|
|
|
|
# Kernel patches for other directories than drivers/scsi/scsi_tgt/.
|
|
|
|
for p in "${kpatch[@]}"
|
|
do
|
|
cat "$p"
|
|
echo ''
|
|
echo ''
|
|
done
|
|
|
|
add_patch "scst/kernel/in-tree/Kconfig.scsi.Linux-${kernel_version}.patch" \
|
|
"linux-${kernel_version}/drivers/scsi/Kconfig"
|
|
|
|
add_patch "scst/kernel/in-tree/Makefile.scsi.Linux-${kernel_version}.patch" \
|
|
"linux-${kernel_version}/drivers/scsi/Makefile"
|
|
|
|
|
|
# Directory include/scsi_tgt/
|
|
|
|
for f in scst/include/*h
|
|
do
|
|
add_file "${f}" "linux-${kernel_version}/include/scsi_tgt/${f#scst/include/}"
|
|
done
|
|
|
|
|
|
# Directory drivers/scsi/scsi_tgt/
|
|
|
|
add_file "scst/kernel/in-tree/Kconfig.scsi_tgt" \
|
|
"drivers/scsi/scsi_tgt/Kconfig"
|
|
add_file "scst/kernel/in-tree/Makefile.scsi_tgt" \
|
|
"drivers/scsi/scsi_tgt/Makefile"
|
|
|
|
|
|
for f in scst/src/*[ch]
|
|
do
|
|
add_file ${f} linux-${kernel_version}/drivers/scsi/scsi_tgt/${f#scst/src/}
|
|
echo ''
|
|
echo ''
|
|
done
|
|
|
|
|
|
# Directory drivers/scsi/scsi_tgt/dev_handlers/
|
|
|
|
add_file "scst/kernel/in-tree/Makefile.dev_handlers" \
|
|
"linux-${kernel_version}/drivers/scsi/scsi_tgt/dev_handlers/Makefile"
|
|
|
|
for f in scst/src/dev_handlers/*.[ch]
|
|
do
|
|
add_file ${f} linux-${kernel_version}/drivers/scsi/scsi_tgt/dev_handlers/${f#scst/src/dev_handlers/}
|
|
echo ''
|
|
echo ''
|
|
done
|
|
|
|
|
|
# Directory drivers/infiniband/ulp/srpt/
|
|
|
|
cat <<'EOF'
|
|
diff -uprN orig/linux-2.6.24/drivers/infiniband/Kconfig linux-2.6.24/drivers/infiniband/Kconfig
|
|
--- orig/linux-2.6.24/drivers/infiniband/Kconfig 2008-01-24 23:58:37.000000000 +0100
|
|
+++ linux-2.6.24/drivers/infiniband/Kconfig 2008-05-09 13:55:27.000000000 +0200
|
|
@@ -51,6 +51,8 @@
|
|
|
|
source "drivers/infiniband/ulp/srp/Kconfig"
|
|
|
|
+source "drivers/infiniband/ulp/srpt/Kconfig"
|
|
+
|
|
source "drivers/infiniband/ulp/iser/Kconfig"
|
|
|
|
endif # INFINIBAND
|
|
diff -uprN orig/linux-2.6.24/drivers/infiniband/Makefile linux-2.6.24/drivers/infiniband/Makefile
|
|
--- orig/linux-2.6.24/drivers/infiniband/Makefile 2008-01-24 23:58:37.000000000 +0100
|
|
+++ linux-2.6.24/drivers/infiniband/Makefile 2008-05-09 13:57:00.000000000 +0200
|
|
@@ -7,4 +7,5 @@
|
|
obj-$(CONFIG_MLX4_INFINIBAND) += hw/mlx4/
|
|
obj-$(CONFIG_INFINIBAND_IPOIB) += ulp/ipoib/
|
|
obj-$(CONFIG_INFINIBAND_SRP) += ulp/srp/
|
|
+obj-$(CONFIG_INFINIBAND_SRPT) += ulp/srpt/
|
|
obj-$(CONFIG_INFINIBAND_ISER) += ulp/iser/
|
|
EOF
|
|
|
|
add_file "srpt/src/Kconfig" "drivers/infiniband/ulp/srpt/Kconfig"
|
|
|
|
add_file "srpt/src/Makefile.in_kernel" "drivers/infiniband/ulp/srpt/Makefile"
|
|
|
|
for f in srpt/src/*[ch]
|
|
do
|
|
add_file ${f} linux-${kernel_version}/drivers/infiniband/ulp/srpt/${f#srpt/src/}
|
|
echo ''
|
|
echo ''
|
|
done
|