The current status of the QLogic target driver in the SCST project is as
authorvlnb <vlnb@d57e44dd-8a1f-0410-8b47-8ef2f437770f>
Thu, 8 Oct 2009 16:53:17 +0000 (16:53 +0000)
committervlnb <vlnb@d57e44dd-8a1f-0410-8b47-8ef2f437770f>
Thu, 8 Oct 2009 16:53:17 +0000 (16:53 +0000)
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 <bart.vanassche@gmail.com>
git-svn-id: https://scst.svn.sourceforge.net/svnroot/scst/trunk@1189 d57e44dd-8a1f-0410-8b47-8ef2f437770f

qla2x00t/Makefile
scripts/generate-kernel-patch

index 2d9fefe..8efb4ff 100644 (file)
@@ -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
index 08470c7..79522fa 100755 (executable)
@@ -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