From 6e2c69c4c44929bbe1a44395fa8d77ea9961fe28 Mon Sep 17 00:00:00 2001 From: Vladislav Bolkhovitin Date: Thu, 8 Oct 2009 16:53:17 +0000 Subject: [PATCH] The current status of the QLogic target driver in the SCST project is as follows: - Building the QLogic target driver is possible by following the instructions in qla2x00t/qla2x00-target/README. - Some but not all of the qla2x00-target code is included in the output of scripts/generate-kernel-patch. This is unfortunate because it is the output of this script that is posted to the LKML each time SCST is submitted for review. - Most of the qla2x00-target code is checked during the nightly build by checkpatch. None of the qla2x00-target code is checked during the nightly build by sparse. The patch below makes sure that all of the qla2x00-target code is included in the generate-kernel-patch output and also that all of the qla2x00-target code is checked during the nightly build by both checkpatch and sparse. This has been realized by including the diff of the linux-2.6.26.8/drivers/scsi/qla2xxx source files and the source files in qla2x00t/*[ch] as individual patches under qla2x00t/in-tree-patches. These patches are generated from downloaded linux-2.6.26.8 sources and the sources in the SCST SVN repository. The next step is to fix the checkpatch and sparse warnings triggered by the qla2x00-target code and to port the latest qla2xxx patches to the SCST qla2x00t implementation. Signed-off-by: Bart Van Assche git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1189 d57e44dd-8a1f-0410-8b47-8ef2f437770f --- qla2x00t/Makefile | 76 ++++++++++++++++++++++++++++++++++- scripts/generate-kernel-patch | 16 +++++++- 2 files changed, 89 insertions(+), 3 deletions(-) diff --git a/qla2x00t/Makefile b/qla2x00t/Makefile index 2d9fefea5..8efb4ff27 100644 --- a/qla2x00t/Makefile +++ b/qla2x00t/Makefile @@ -6,8 +6,82 @@ obj-$(CONFIG_SCSI_QLA_FC) += qla2xxx.o clean: rm -f *.o *.ko .*.cmd *.mod.c .*.d .depend *~ Modules.symvers \ Module.symvers Module.markers modules.order + rm -f in-tree-patches/*.patch + rm -rf qla2xxx-orig rm -rf .tmp_versions extraclean: clean -.PHONY: clean extraclean +DOWNLOAD_DIR=$(HOME)/software/downloads + +QLA2XXX_ORIG = \ + Kconfig \ + Makefile \ + qla_attr.c \ + qla_dbg.c \ + qla_dbg.h \ + qla_def.h \ + qla_devtbl.h \ + qla_dfs.c \ + qla_fw.h \ + qla_gbl.h \ + qla_gs.c \ + qla_init.c \ + qla_inline.h \ + qla_iocb.c \ + qla_isr.c \ + qla_mbx.c \ + qla_mid.c \ + qla_os.c \ + qla_settings.h \ + qla_sup.c \ + qla_version.h + +GENERATED_PATCHES = \ + in-tree-patches/qla2xxx-Kconfig-2.6.26.patch \ + in-tree-patches/qla2xxx-qla_def.h-2.6.26.patch \ + in-tree-patches/qla2xxx-qla_gs.c-2.6.26.patch \ + in-tree-patches/qla2xxx-qla_mbx.c-2.6.26.patch \ + in-tree-patches/qla2xxx-qla_version.h-2.6.26.patch \ + in-tree-patches/qla2xxx-Makefile-2.6.26.patch \ + in-tree-patches/qla2xxx-qla_devtbl.h-2.6.26.patch \ + in-tree-patches/qla2xxx-qla_init.c-2.6.26.patch \ + in-tree-patches/qla2xxx-qla_mid.c-2.6.26.patch \ + in-tree-patches/qla2xxx-qla_attr.c-2.6.26.patch \ + in-tree-patches/qla2xxx-qla_dfs.c-2.6.26.patch \ + in-tree-patches/qla2xxx-qla_inline.h-2.6.26.patch \ + in-tree-patches/qla2xxx-qla_os.c-2.6.26.patch \ + in-tree-patches/qla2xxx-qla_dbg.c-2.6.26.patch \ + in-tree-patches/qla2xxx-qla_fw.h-2.6.26.patch \ + in-tree-patches/qla2xxx-qla_iocb.c-2.6.26.patch \ + in-tree-patches/qla2xxx-qla_settings.h-2.6.26.patch \ + in-tree-patches/qla2xxx-qla_dbg.h-2.6.26.patch \ + in-tree-patches/qla2xxx-qla_gbl.h-2.6.26.patch \ + in-tree-patches/qla2xxx-qla_isr.c-2.6.26.patch \ + in-tree-patches/qla2xxx-qla_sup.c-2.6.26.patch + +$(DOWNLOAD_DIR)/linux-%: + cd $(DOWNLOAD_DIR) \ + && wget -q -nc ftp://ftp.eu.kernel.org/pub/linux/kernel/v2.6/$(@F) + +$(DOWNLOAD_DIR)/patch-%: + cd $(DOWNLOAD_DIR) \ + && wget -q -nc ftp://ftp.eu.kernel.org/pub/linux/kernel/v2.6/$(@F) + +qla2xxx-orig/%: $(DOWNLOAD_DIR)/linux-2.6.26.tar.bz2 \ + $(DOWNLOAD_DIR)/patch-2.6.26.8.bz2 + rm -rf linux-2.6.26 + tar -xjf $(DOWNLOAD_DIR)/linux-2.6.26.tar.bz2 + cd linux-2.6.26 \ + && bzip2 -cd < $(DOWNLOAD_DIR)/patch-2.6.26.8.bz2 | patch -p1 -f -s + touch linux-2.6.26/drivers/scsi/qla2xxx/* + mkdir -p qla2xxx-orig + mv linux-2.6.26/drivers/scsi/qla2xxx/* qla2xxx-orig + rm -rf linux-2.6.26 + +in-tree-patches/qla2xxx-%-2.6.26.patch: % qla2xxx-orig/% + f="$$(echo "$@" | sed -e 's:^in-tree-patches/qla2xxx-::' -e 's:-2.6.26.patch$$::')"; diff -up "qla2xxx-orig/$$f" "$$f" >"$@"; true + +patches: $(GENERATED_PATCHES) + +.PHONY: clean extraclean patches diff --git a/scripts/generate-kernel-patch b/scripts/generate-kernel-patch index 08470c7f4..79522fa3d 100755 --- a/scripts/generate-kernel-patch +++ b/scripts/generate-kernel-patch @@ -339,14 +339,26 @@ add_file "iscsi-scst/README_in-tree" "Documentation/scst/README.iscsi" \ if [ "${qla2x00t}" = "true" ]; then + make -C qla2x00t -s patches + + for f in $(ls qla2x00t/in-tree-patches/qla2xxx-*-${kernel_version}.patch) + do + g="${f#qla2x00t/in-tree-patches/qla2xxx-}" + g="${g%-${kernel_version}.patch}" + add_patch "${f}" "drivers/scsi/qla2xxx/${g}" + done + add_file "qla2x00t/qla2x00-target/Makefile_in-tree" \ "drivers/scst/qla2xxx-target/Makefile" add_file "qla2x00t/qla2x00-target/Kconfig" \ "drivers/scst/qla2xxx-target/Kconfig" -# add_file "qla2x00t/qla2x_tgt_def.h" \ -# "drivers/scst/qla2x00-target/qla2x_tgt_def.h" + add_file "qla2x00t/qla2x_tgt.h" \ + "drivers/scsi/qla2xxx/qla2x_tgt.h" + + add_file "qla2x00t/qla2x_tgt_def.h" \ + "drivers/scsi/qla2xxx/qla2x_tgt_def.h" for f in $(ls qla2x00t/qla2x00-target/*.[ch]) do