> From: James Smart [mailto:James.Smart@xxxxxxxxxx] > Sent: Wednesday, February 11, 2009 7:14 AM > > 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. <snip> > +static int > +fc_bsg_map_buffer(struct fc_bsg_buffer *buf, struct request *req) > +{ > + size_t sz = (sizeof(struct scatterlist) * req->nr_phys_segments); > + > + BUG_ON(!req->nr_phys_segments); > + > + buf->sg_list = kzalloc(sz, GFP_KERNEL); > + if (!buf->sg_list) > + return -ENOMEM; > + sg_init_table(buf->sg_list, req->nr_phys_segments); > + buf->sg_cnt = blk_rq_map_sg(req->q, req, buf->sg_list); > + buf->payload_len = req->data_len; > + return 0; > +} It looks like that there is possibility that the dma buffer with more than one sg element for ELS services - which is not allowed per FC spec. I've seen a couple of times from the driver testing. I'm looking for some ways to making sure the ELS services to get single sg for both request/reply_payload. Any comments/suggestion? Thank you, 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