I fixed up this patch so that it actually hooks into the build (as
below). (BTW, when sending patches in the future, please make them
apply with "-p1" -- your patches had paths like
/usr/src/linux-2.6.17-rc3/drivers/infiniband/ulp/iser-x/Kconfig
so I had to manually strip off the /usr/src/)
Anyway, with a config like
CONFIG_SCSI_ISCSI_ATTRS=y
# CONFIG_ISCSI_TCP is not set
CONFIG_INFINIBAND_ISER=y
My build fails with a bunch of errors like:
drivers/built-in.o: In function `iser_comp_error_worker':iser_verbs.c:(.text+0x7d7cd): undefined reference to `iscsi_conn_failure'
and so on. Is the correct fix for this to add
obj-$(CONFIG_INFINIBAND_ISER) += libiscsi.o
to drivers/scsi/Makefile?
Also, I get the following sparse warning:
drivers/infiniband/ulp/iser/iser_initiator.c:610:25: error: incompatible types for operation (&)
and the code there does look fishy:
itt = hdr->itt & ISCSI_ITT_MASK; /* mask out cid and age bits */
hdr->itt is __be32 but ISCSI_ITT_MASK is just (0xfff), so it seems
that there is something wrong, either with the iSCSI endianness
annotation or with the code itself.
Thanks,
Roland
+obj-$(CONFIG_INFINIBAND_SRP) += ulp/iser/
+obj-$(CONFIG_INFINIBAND_ISER) += ulp/iser/
diff-tree 9120bc6c8b5bdd1f4c85df7a04779ae8faa0c1a5 (from 4161cba09429dae06d249584ee1c7d63c672422c)-
Author: Or Gerlitz <ogerlitz@xxxxxxxxxxxx>
Date: Thu May 11 10:03:30 2006 +0300
IB/iser: iSER Kconfig and Makefile
Kconfig and Makefile for iSER.
Signed-off-by: Or Gerlitz <ogerlitz@xxxxxxxxxxxx>
Signed-off-by: Roland Dreier <rolandd@xxxxxxxxx>
diff --git a/drivers/infiniband/Kconfig b/drivers/infiniband/Kconfig
index ba2d650..69a53d4 100644
--- a/drivers/infiniband/Kconfig
+++ b/drivers/infiniband/Kconfig
@@ -41,4 +41,6 @@ source "drivers/infiniband/ulp/ipoib/Kco
source "drivers/infiniband/ulp/srp/Kconfig"
+source "drivers/infiniband/ulp/iser/Kconfig"
+
endmenu
diff --git a/drivers/infiniband/Makefile b/drivers/infiniband/Makefile
index eea2732..abeaf79 100644
--- a/drivers/infiniband/Makefile
+++ b/drivers/infiniband/Makefile
@@ -3,3 +3,4 @@ obj-$(CONFIG_INFINIBAND_MTHCA) += hw/mt
obj-$(CONFIG_IPATH_CORE) += hw/ipath/
obj-$(CONFIG_INFINIBAND_IPOIB) += ulp/ipoib/
obj-$(CONFIG_INFINIBAND_SRP) += ulp/srp/
+obj-$(CONFIG_INFINIBAND_SRP) += ulp/iser/
diff --git a/drivers/infiniband/ulp/iser/Kconfig b/drivers/infiniband/ulp/iser/Kconfig
new file mode 100644
index 0000000..fead87d
--- /dev/null
+++ b/drivers/infiniband/ulp/iser/Kconfig
@@ -0,0 +1,11 @@
+config INFINIBAND_ISER
+ tristate "ISCSI RDMA Protocol"
+ depends on INFINIBAND && SCSI
+ select SCSI_ISCSI_ATTRS
+ ---help---
+ Support for the ISCSI RDMA Protocol over InfiniBand. This
+ allows you to access storage devices that speak ISER/ISCSI
+ over InfiniBand.
+
+ The ISER protocol is defined by IETF.
+ See <http://www.ietf.org/>.
diff --git a/drivers/infiniband/ulp/iser/Makefile b/drivers/infiniband/ulp/iser/Makefile
new file mode 100644
index 0000000..fe6cd15
--- /dev/null
+++ b/drivers/infiniband/ulp/iser/Makefile
@@ -0,0 +1,4 @@
+obj-$(CONFIG_INFINIBAND_ISER) += ib_iser.o
+
+ib_iser-y := iser_verbs.o iser_initiator.o iser_memory.o \
+ iscsi_iser.o