Pete Wyckoff wrote: > dougg@xxxxxxxxxx wrote on Wed, 14 Mar 2007 12:18 -0400: >> After reviewing this post by Pete Wyckoff: >> http://marc.theaimsgroup.com/?l=linux-scsi&m=117278879816029&w=2 >> >> I decided to update my sg v4 interface document originally >> posted 20061106 which I will now call release 1.1 : >> http://lwn.net/Articles/208082/ >> >> Pete was proposing to put back din_iovec_count and >> dout_iovec_count that had been dropped out of bsg but >> had been in release 1.1 . Hmm. >> >> Some other items have been picked up from the bsg >> implementation plus the suggestion from LSF'07 to >> add dout_resid. >> >> See the attachment, comments welcome. > > Do you want to define the iovec format too? As I commented in my > patch, v3 sg_iovec has pointers with 32/64-bit issues. Would be > nice to see you declare v4 sg_iovec as pure u64. (By the way, don't > use the patch: casting from the new to the old can put junk in the > top half of the 64-bit sg_iovec.iov_len). > > Another issue I wonder about is queue DMA alignment. In bsg, > blk_rq_map_user will use a bounce buffer if the user-supplied start > and end addresses are not aligned. sg will happily map user pages > at any offset without checking, although I haven't checked if Mike's > patches change this. ll_rw_blk.c says regarding blk_rq_map_user: > Currently and before any of my patches, sg checked the start if (((unsigned long)hp->dxferp & queue_dma_alignment(sdev->request_queue)) != 0) It did not check the start and end like blk_rq_map_user. With my updated patches, blk_rq_map_user is just checking the start. There was a thread about not checking the end on linux-scsi. I will try to dig it up. A couple kernels ago the bio map helpers were modified to only check the start. - 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