Re: [RFC] FC pass thru - Rev V

FUJITA Tomonori
2009-02-21T06:00:21Z

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.