diff options
Diffstat (limited to 'drivers/scsi/ibmvscsi')
-rw-r--r-- | drivers/scsi/ibmvscsi/ibmvfc.c | 1 | ||||
-rw-r--r-- | drivers/scsi/ibmvscsi/ibmvscsi.c | 30 | ||||
-rw-r--r-- | drivers/scsi/ibmvscsi/ibmvstgt.c | 1 | ||||
-rw-r--r-- | drivers/scsi/ibmvscsi/rpa_vscsi.c | 1 |
4 files changed, 6 insertions, 27 deletions
diff --git a/drivers/scsi/ibmvscsi/ibmvfc.c b/drivers/scsi/ibmvscsi/ibmvfc.c index 4e577e2fee3..c2eea711a5c 100644 --- a/drivers/scsi/ibmvscsi/ibmvfc.c +++ b/drivers/scsi/ibmvscsi/ibmvfc.c | |||
@@ -28,6 +28,7 @@ | |||
28 | #include <linux/delay.h> | 28 | #include <linux/delay.h> |
29 | #include <linux/interrupt.h> | 29 | #include <linux/interrupt.h> |
30 | #include <linux/kthread.h> | 30 | #include <linux/kthread.h> |
31 | #include <linux/slab.h> | ||
31 | #include <linux/of.h> | 32 | #include <linux/of.h> |
32 | #include <linux/pm.h> | 33 | #include <linux/pm.h> |
33 | #include <linux/stringify.h> | 34 | #include <linux/stringify.h> |
diff --git a/drivers/scsi/ibmvscsi/ibmvscsi.c b/drivers/scsi/ibmvscsi/ibmvscsi.c index dc1bcbe3b17..88bad0e81bd 100644 --- a/drivers/scsi/ibmvscsi/ibmvscsi.c +++ b/drivers/scsi/ibmvscsi/ibmvscsi.c | |||
@@ -70,6 +70,7 @@ | |||
70 | #include <linux/moduleparam.h> | 70 | #include <linux/moduleparam.h> |
71 | #include <linux/dma-mapping.h> | 71 | #include <linux/dma-mapping.h> |
72 | #include <linux/delay.h> | 72 | #include <linux/delay.h> |
73 | #include <linux/slab.h> | ||
73 | #include <linux/of.h> | 74 | #include <linux/of.h> |
74 | #include <linux/pm.h> | 75 | #include <linux/pm.h> |
75 | #include <asm/firmware.h> | 76 | #include <asm/firmware.h> |
@@ -322,16 +323,6 @@ static void set_srp_direction(struct scsi_cmnd *cmd, | |||
322 | srp_cmd->buf_fmt = fmt; | 323 | srp_cmd->buf_fmt = fmt; |
323 | } | 324 | } |
324 | 325 | ||
325 | static void unmap_sg_list(int num_entries, | ||
326 | struct device *dev, | ||
327 | struct srp_direct_buf *md) | ||
328 | { | ||
329 | int i; | ||
330 | |||
331 | for (i = 0; i < num_entries; ++i) | ||
332 | dma_unmap_single(dev, md[i].va, md[i].len, DMA_BIDIRECTIONAL); | ||
333 | } | ||
334 | |||
335 | /** | 326 | /** |
336 | * unmap_cmd_data: - Unmap data pointed in srp_cmd based on the format | 327 | * unmap_cmd_data: - Unmap data pointed in srp_cmd based on the format |
337 | * @cmd: srp_cmd whose additional_data member will be unmapped | 328 | * @cmd: srp_cmd whose additional_data member will be unmapped |
@@ -349,24 +340,9 @@ static void unmap_cmd_data(struct srp_cmd *cmd, | |||
349 | 340 | ||
350 | if (out_fmt == SRP_NO_DATA_DESC && in_fmt == SRP_NO_DATA_DESC) | 341 | if (out_fmt == SRP_NO_DATA_DESC && in_fmt == SRP_NO_DATA_DESC) |
351 | return; | 342 | return; |
352 | else if (out_fmt == SRP_DATA_DESC_DIRECT || | ||
353 | in_fmt == SRP_DATA_DESC_DIRECT) { | ||
354 | struct srp_direct_buf *data = | ||
355 | (struct srp_direct_buf *) cmd->add_data; | ||
356 | dma_unmap_single(dev, data->va, data->len, DMA_BIDIRECTIONAL); | ||
357 | } else { | ||
358 | struct srp_indirect_buf *indirect = | ||
359 | (struct srp_indirect_buf *) cmd->add_data; | ||
360 | int num_mapped = indirect->table_desc.len / | ||
361 | sizeof(struct srp_direct_buf); | ||
362 | 343 | ||
363 | if (num_mapped <= MAX_INDIRECT_BUFS) { | 344 | if (evt_struct->cmnd) |
364 | unmap_sg_list(num_mapped, dev, &indirect->desc_list[0]); | 345 | scsi_dma_unmap(evt_struct->cmnd); |
365 | return; | ||
366 | } | ||
367 | |||
368 | unmap_sg_list(num_mapped, dev, evt_struct->ext_list); | ||
369 | } | ||
370 | } | 346 | } |
371 | 347 | ||
372 | static int map_sg_list(struct scsi_cmnd *cmd, int nseg, | 348 | static int map_sg_list(struct scsi_cmnd *cmd, int nseg, |
diff --git a/drivers/scsi/ibmvscsi/ibmvstgt.c b/drivers/scsi/ibmvscsi/ibmvstgt.c index d5eaf972710..e2056d517e9 100644 --- a/drivers/scsi/ibmvscsi/ibmvstgt.c +++ b/drivers/scsi/ibmvscsi/ibmvstgt.c | |||
@@ -23,6 +23,7 @@ | |||
23 | */ | 23 | */ |
24 | #include <linux/interrupt.h> | 24 | #include <linux/interrupt.h> |
25 | #include <linux/module.h> | 25 | #include <linux/module.h> |
26 | #include <linux/slab.h> | ||
26 | #include <scsi/scsi.h> | 27 | #include <scsi/scsi.h> |
27 | #include <scsi/scsi_host.h> | 28 | #include <scsi/scsi_host.h> |
28 | #include <scsi/scsi_transport_srp.h> | 29 | #include <scsi/scsi_transport_srp.h> |
diff --git a/drivers/scsi/ibmvscsi/rpa_vscsi.c b/drivers/scsi/ibmvscsi/rpa_vscsi.c index 63a30cbbf9d..a864ccc0a34 100644 --- a/drivers/scsi/ibmvscsi/rpa_vscsi.c +++ b/drivers/scsi/ibmvscsi/rpa_vscsi.c | |||
@@ -32,6 +32,7 @@ | |||
32 | #include <asm/iommu.h> | 32 | #include <asm/iommu.h> |
33 | #include <asm/hvcall.h> | 33 | #include <asm/hvcall.h> |
34 | #include <linux/dma-mapping.h> | 34 | #include <linux/dma-mapping.h> |
35 | #include <linux/gfp.h> | ||
35 | #include <linux/interrupt.h> | 36 | #include <linux/interrupt.h> |
36 | #include "ibmvscsi.h" | 37 | #include "ibmvscsi.h" |
37 | 38 | ||