On Oct 30 yoma sophian wrote: > in scsi_init_sgtable, we create sgtable, sdb->table.sgl, and get the > page from blk_rq_map_sg. > But when the dma_address of sdb->table.sgl will be calclated out > before send the scsi command down to the lower level driver? The low level driver, not SCSI core, is responsible to obtain a DMA address. dma_map_sg() maps the scatter-gather list into DMA memory. Then you can iterate over the list with for_each_sg and obtain DMA handles and lengths with sg_dma_address() and sg_dma_len(). E.g.: http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=blob;f=drivers/firewire/sbp2.c;h=41841a3e3f99c9acd4c4fc72c972626d8dffdcee;hb=02f8c6aee8df3cdc935e9bdd4f2d020306035dbe#l1398 -- Stefan Richter -=====-==-== =-=- ====- http://arcgraph.de/sr/ -- 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