Hello, Sergei. On Sun, May 26, 2013 at 03:34:54AM +0400, Sergei Shtylyov wrote: > Because with SFF-8038i (BMIDE) controllers transfer can't cross > 64KiB address boundaries. This function has to break up those S/G > entries that do cross them. I.e. the PRD length is actually additionally > limited by an offset of its start within 64KiB memory segment. > Does this make sense? Or does the block layer already care about this? > Hm, I'm not confident now, should revisit this after some sleep. Yeah, that's exactly where I'm confused. ATA_DMA_BOUNDARY is 64k which becomes both queue_segment_boundary and dma seg_boundary. AFAICS, both __blk_segment_map_sg() and dma mapping won't merge across seg_boundary and as each bvec is a single page at most, we shouldn't need to worry about getting sg's which cross 64k boundaries in bmdma controllers. Hmmmmm...... I gotta be missing something. What am I missing here? Thanks. -- tejun -- To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html