FUJITA Tomonori wrote:
> From: Benny Halevy <[EMAIL PROTECTED]>
> Subject: Re: [PATCH 1/19] add data buffer accessors
> Date: Mon, 14 May 2007 10:57:08 +0300
> 
>> FUJITA Tomonori wrote:
>>> +#define scsi_for_each_sg(cmd, sg, nseg, __i)                       \
>>> +   for (__i = 0, sg = scsi_sglist(cmd); __i < (nseg); __i++, (sg)++)
>>> +
>> This feels like a layering violation, why not use for_each_sg()?
>>
>> +#define scsi_for_each_sg(cmd, sg, nseg, __i)                        \
>>      for_each_sg(scsi_sglist(cmd), (sg), (nseg), (__i))      \
> 
> As I said before, when for_each_sg is ready, we'll convert
> scsi_for_each_sg to use for_each_sg.

thanks. works for me.

> 
> 
>> That said, I'm not sure that scsi_for_each_sg() is worth abstracting
>> since the caller can just as well do for_each_sg() directly
>> as sketched above...
> 
> I'm not sure why you think it's a layering violation.

I'd like to think of struct scatterlist as an abstract data type
with its own traversal method that hides its internals.
Not a layer per-se but more of an abstraction...

> 
> With scsi_for_each_sg(), many drivers don't need scsi_sglist().

Sure, just my two cents...

-
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to