linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Or Gerlitz" <or.gerlitz@gmail.com>
To: "Roland Dreier" <rdreier@cisco.com>
Cc: linux-kernel@vger.kernel.org, openib-general@openib.org,
	michaelc@cs.wisc.edu, James.Bottomley@SteelEye.com
Subject: Re: [openib-general] [PATCH 6/6] iSER Kconfig and Makefile
Date: Thu, 11 May 2006 20:24:09 +0200	[thread overview]
Message-ID: <15ddcffd0605111124v390e1dbei18508787ec29afac@mail.gmail.com> (raw)
In-Reply-To: <adau07w1nks.fsf@cisco.com>

On 5/11/06, Roland Dreier <rdreier@cisco.com> wrote:
> 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/)

OK, will do that.

>
> 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?

Indeed since libiscsi does not have a CONFIG_ of its own, you need to
set CONFIG_ISCSI_TCP to have libiscsi being built and then iser links
with it.

So there are two options here: either to set a CONFIG_LIBISCSI and
select it by both CONFIG_ISCSI_TCP and CONFIG_INFINIBAND_ISER or the
approach you were suggesting. I am cc-ing Mike Christie and James
Bottomley on this email, if you guys have a preference, let me know
and i can produce a patch to drivers/scsi/Kconfig and 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.

What's little wrong here is that hdr->itt is __be32 but it never gets
htonl-ed before placing on the wire so i can't ntohl it back before
AND-ing it with the ITT_MASK. Its only little wrong b/c in a way the
target treats the ITT (Initiator Task Tag) as an opaque tag and hence
it just returns on the command/control response the itt of the
command/control.

At the bottom line, its need to be fixed by converting the itt to
network order in libiscsi and then converting it to host order in iser
before doing the arthimetic AND, so the sparse endianess related
warning will be gone. I  will be able to fix that on Sunday and send
the fixes to linux-scsi and openib.

> Thanks,
>   Roland

Thanks to you for pointing these issues, also, in drivers/infiniband/Makefile

> +obj-$(CONFIG_INFINIBAND_SRP)           += ulp/iser/

should be

> +obj-$(CONFIG_INFINIBAND_ISER)           += ulp/iser/

Or.

> diff-tree 9120bc6c8b5bdd1f4c85df7a04779ae8faa0c1a5 (from 4161cba09429dae06d249584ee1c7d63c672422c)
> Author: Or Gerlitz <ogerlitz@voltaire.com>
> 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@voltaire.com>
>     Signed-off-by: Roland Dreier <rolandd@cisco.com>
>
> 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

  reply	other threads:[~2006-05-11 18:24 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-05-11  6:59 [PATCH 0/6] iSER (iSCSI Extensions for RDMA) initiator Or Gerlitz
2006-05-11  7:00 ` [PATCH 1/6] iSCSI iSER transport provider header file Or Gerlitz
2006-05-11  7:00   ` [PATCH 2/6] iSCSI iSER transport provider high level code Or Gerlitz
2006-05-11  7:02     ` [PATCH 3/6] iSER initiator iSCSI PDU and TX/RX completions processing Or Gerlitz
2006-05-11  7:02       ` [PATCH 4/6] iSER RDMA CM (CMA) and IB verbs interaction Or Gerlitz
2006-05-11  7:03         ` [PATCH 5/6] iSER handling of memory for RDMA Or Gerlitz
2006-05-11  7:03           ` [PATCH 6/6] iSER Kconfig and Makefile Or Gerlitz
2006-05-11 17:24             ` [openib-general] " Roland Dreier
2006-05-11 18:24               ` Or Gerlitz [this message]
2006-05-11 18:29                 ` Roland Dreier

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=15ddcffd0605111124v390e1dbei18508787ec29afac@mail.gmail.com \
    --to=or.gerlitz@gmail.com \
    --cc=James.Bottomley@SteelEye.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=michaelc@cs.wisc.edu \
    --cc=openib-general@openib.org \
    --cc=rdreier@cisco.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).