Re: [RFC] FC pass thru - Rev V

Seokmann Ju
2009-02-24T14:25:40Z

On Feb 20, 2009, at 10:00 PM, FUJITA Tomonori wrote:

> On Thu, 19 Feb 2009 18:33:43 -0800
> Seokmann Ju <seokmann.ju@qlogic.com> wrote:
>
>>
>> On Feb 11, 2009, at 7:43 AM, Seokmann Ju wrote:
>>
>>>
>>> On Feb 11, 2009, at 7:13 AM, James Smart wrote:
>>>
>>>> Trying to kick-start this again...
>>>> I've updated the prior RFC with the comments from Seokmann,
>>>> SvenFujita, and Boaz. I would still like review on the
>>>> blk_xxx completion calls in the std and error paths.
>>> I'm looking the driver changes to match it with latest updates in
>>> the transport layer.
>>> The driver with the changes should be available within a couple of
>>> weeks.
>> When the FC transport layer calls fc_bsg_map_buffer(), it eventually
>> calls
>> blk_rq_map_sg() to build sg_list for mapped bio in the request
>> structure.
>> I'm having trouble, however, in getting the sg_list for both
>> dout_xferp
>> and din_xferp, which is mapped into the bio in the request structure.
>> With the pass-thru - Rev V, the sg_list returned from the
>> fc_bsg_map_buffer()
>> seems not right, particularly, the dma_address and dma_length fields
>> are NULL.
>> The sg_cnt and payload_len of the request_payload/reply_payload are
>> correctly
>> set by the function, though.
>
> I've not read the code yet but the above behavior doesn't sound a bug.
>
> dma_map_sg is a function that sets up the dma_address and dma_length
> fields in a scatter list. LLDs gets a request from the transport layer
> and need to call dma_map_sg.
Thanks for the point.
Actually, we talked about this before as below, somehow, I've forgotten.