On Mon, Nov 27 2006, Mike Christie wrote: > Mike Christie wrote: > > Boaz Harrosh wrote: > >> Playing with some tests which I admit are not 100% orthodox I have > >> stumbled upon a bug that raises a serious question: > >> > >> In the call to scsi_execute_async() in the use_sg case, must the > >> scatterlist* (pointed to by buffer) map a buffer that's contiguous in > >> virtual memory or is it allowed to map disjoint segments of memory? > > > > I thought they were continguous. I think James has said before that they > > can be disjoint. When we converted sg it did not look like sg or st > > supported disjoint. The main non dio path used a buffer from > > get_free_pages so I thought that would always be contiguous. The dio > > path then always set the first sg offset, but the rest it set to zero. > > And the len is set to page size for the middle entries too. > > But for the non DIO st path we can end up with some middle sg entires > that are not a full page so that code in scsi_execute_async is broken > for that. If something doesn't work with non-contig sg entries, that would be a bug. If the question is regarding holes in the sg list, that is probably unchartered territory and I would not regard that as supported. -- Jens Axboe - 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