On 14 Aug, FUJITA Tomonori wrote: > On Wed, 13 Aug 2008 12:19:59 +0200 (CEST) > Stefan Richter <stefanr@xxxxxxxxxxxxxxxxx> wrote: >> I keep the original scsi_sg_count to call dma_unmap_sg with it >> later. > > You need to keep it? You can access to it via scsi_sg_count when > calling dma_unmap_sg? Seems that firewire code does. Yes, I can easily do it this way; fixed below. [...nents in dma_unmap_sg...] > This is from Documentation/DMA-mapping.txt Right. How did I forget about that? From: Stefan Richter <stefanr@xxxxxxxxxxxxxxxxx> Subject: ieee1394: sbp2: remove redundant struct members Signed-off-by: Stefan Richter <stefanr@xxxxxxxxxxxxxxxxx> --- drivers/ieee1394/sbp2.c | 14 +++++--------- drivers/ieee1394/sbp2.h | 4 ---- 2 files changed, 5 insertions(+), 13 deletions(-) Index: linux/drivers/ieee1394/sbp2.c =================================================================== --- linux.orig/drivers/ieee1394/sbp2.c +++ linux/drivers/ieee1394/sbp2.c @@ -656,11 +656,11 @@ static struct sbp2_command_info *sbp2uti static void sbp2util_mark_command_completed(struct sbp2_lu *lu, struct sbp2_command_info *cmd) { - if (cmd->sg_buffer) { - dma_unmap_sg(lu->ud->ne->host->device.parent, cmd->sg_buffer, - cmd->sg_count, cmd->sg_dir); - cmd->sg_buffer = NULL; - } + if (scsi_sg_count(cmd->Current_SCpnt) > 0) + dma_unmap_sg(lu->ud->ne->host->device.parent, + scsi_sglist(cmd->Current_SCpnt), + scsi_sg_count(cmd->Current_SCpnt), + cmd->Current_SCpnt->sc_data_direction); list_move_tail(&cmd->list, &lu->cmd_orb_completed); } @@ -1505,10 +1505,6 @@ static int sbp2_prep_command_orb_sg(stru if (n == 0) return -ENOMEM; - cmd->sg_buffer = sg; - cmd->sg_count = sg_count; - cmd->sg_dir = dma_dir; - orb->data_descriptor_hi = ORB_SET_NODE_ID(hi->host->node_id); orb->misc |= ORB_SET_DIRECTION(orb_direction); Index: linux/drivers/ieee1394/sbp2.h =================================================================== --- linux.orig/drivers/ieee1394/sbp2.h +++ linux/drivers/ieee1394/sbp2.h @@ -252,10 +252,6 @@ struct sbp2_command_info { struct sbp2_unrestricted_page_table scatter_gather_element[SG_ALL] __attribute__((aligned(8))); dma_addr_t sge_dma; - - struct scatterlist *sg_buffer; - int sg_count; - enum dma_data_direction sg_dir; }; /* Per FireWire host */ -- 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