All of lore.kernel.org
 help / color / mirror / Atom feed
From: Boaz Harrosh <bharrosh@panasas.com>
To: FUJITA Tomonori <tomof@acm.org>
Cc: linux-scsi@vger.kernel.org, jens.axboe@oracle.com,
	James.Bottomley@SteelEye.com, fujita.tomonori@lab.ntt.co.jp
Subject: Re: [PATCH 6/9] tgt: convert ibmvstgt and libsrp to use scsi_data_buffer
Date: Sun, 09 Sep 2007 17:28:41 +0300	[thread overview]
Message-ID: <46E40319.4030704@panasas.com> (raw)
In-Reply-To: <20070909045722P.tomof@acm.org>

On Sun, Sep 09 2007 at 16:47 +0300, FUJITA Tomonori <tomof@acm.org> wrote:
> On Sun, 09 Sep 2007 13:12:03 +0300
> Boaz Harrosh <bharrosh@panasas.com> wrote:
> 
>> On Fri, Sep 07 2007 at 0:50 +0300, FUJITA Tomonori <tomof@acm.org> wrote:
>>> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
>>> ---
>>> ...
>>> @@ -425,8 +426,8 @@ int srp_cmd_queue(struct Scsi_Host *shost, struct srp_cmd *cmd, void *info,
>>>  
>>>  	sc->SCp.ptr = info;
>>>  	memcpy(sc->cmnd, cmd->cdb, MAX_COMMAND_SIZE);
>>> -	sc->request_bufflen = len;
>>> -	sc->request_buffer = (void *) (unsigned long) addr;
>>> +	sc->sdb.length = len;
>>> +	sc->sdb.sglist = (void *) (unsigned long) addr;
>>>  	sc->tag = tag;
>>>  	err = scsi_tgt_queue_command(sc, (struct scsi_lun *) &cmd->lun, cmd->tag);
>>>  	if (err)
>> What is done here in srp_cmd_queue() looks scary to me. even today.
>> What is that u64 addr that gets truncated to unsigned long and put
>> on sglist? What data-buffer "len" is suppose to describe? And "dir"
>> is for what data?
> 
> No trancated since it's used for an address. addr, data length, and
> data transfer direction though they are not used now.
> 
I wish you could maybe clean up the unused stuff, and/or give addr 
its proper type. If it's a pointer than make it a pointer.
Also you are implying a use_sg==0 here which is not allowed.

> 
>> It is made to look like addr is a linear pointer with a use_sg==0
>> issued command, which is no longer allowed. Only we know it is not,
>> because of the "(void *)(unsigned long) addr;" which is a bug in
>> 64-bit.
>>
>> If this is a totally private message sent threw the scsi-ml. I would
>> rather it was done with DMA_NONE,bufflen=0,sglist=NULL and put all
>> the user-info into scsi_cmnd.SCp like above "void* info".
> 
> tgt doesn't queue a command to scsi-ml. It queues it to user space.

Even though. Please don't misuse scsi_cmnd members in this way.
If you are not using any of scsi-ml functions on these commands and
they do not carry sg-lists than why use a scsi_cmnd at all? You can
just use a tgt private structure. If these commands do go through
some scsi-ml functions than banging scsi_cmnd.sdb.sglist this way
is dangerous.

Boaz


  reply	other threads:[~2007-09-09 14:29 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-09-06 21:50 [PATCH 6/9] tgt: convert ibmvstgt and libsrp to use scsi_data_buffer FUJITA Tomonori
2007-09-09 10:12 ` Boaz Harrosh
2007-09-09 13:47   ` FUJITA Tomonori
2007-09-09 14:28     ` Boaz Harrosh [this message]
2007-09-09 14:38       ` FUJITA Tomonori
2007-09-09 14:42         ` FUJITA Tomonori
2007-09-09 15:09         ` Boaz Harrosh

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=46E40319.4030704@panasas.com \
    --to=bharrosh@panasas.com \
    --cc=James.Bottomley@SteelEye.com \
    --cc=fujita.tomonori@lab.ntt.co.jp \
    --cc=jens.axboe@oracle.com \
    --cc=linux-scsi@vger.kernel.org \
    --cc=tomof@acm.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.