On Oct 30, 2008, at 6:37 AM, Seokmann Ju wrote:
On Oct 29, 2008, at 9:18 PM, FUJITA Tomonori wrote:
[snip]
+ GFP_KERNEL);
+ sg_init_table(service->payload_dma, req->nr_phys_segments);
+ service->payload_sg_cnt =
+ blk_rq_map_sg(q, req, service->payload_dma);
+ service->payload = (void *) bio_data(req->bio);
You don't need service->payload. We use scatterlist for data
transfer.
Yes. Removed.
I need a step back here.
I understand that modules get involved in handling pass through are
treat
FC service requests as opaque data.
However, there are some case where LLDs need to retrieve the contents of
the service request and pull out some information - for example, opcode
of the ELS for the case of qla2xxx.
I guess there might be some other LLDs that need to pull out some
information from the service request for similar reasons.
For that purpose, I think it would be good to keep 'payload' and
'response'
field instead.
Any comment?
+ service->payload_size = req->data_len;
+
+ service->response_dma = (struct scatterlist *)
+ kzalloc(sizeof (struct scatterlist) * rsp->nr_phys_segments,
+ GFP_KERNEL);
+ sg_init_table(service->response_dma, rsp->nr_phys_segments);
+ service->response_sg_cnt =
+ blk_rq_map_sg(q, rsp, service->response_dma);
+ service->response = bio_data(rsp->bio);
Ditto.
OK.
Same here.
Seokmann
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html