aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/sata_qstor.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/scsi/sata_qstor.c')
-rw-r--r--drivers/scsi/sata_qstor.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/scsi/sata_qstor.c b/drivers/scsi/sata_qstor.c
index d95a02fa7af..8c20229b01b 100644
--- a/drivers/scsi/sata_qstor.c
+++ b/drivers/scsi/sata_qstor.c
@@ -270,16 +270,17 @@ static void qs_scr_write (struct ata_port *ap, unsigned int sc_reg, u32 val)
270 270
271static void qs_fill_sg(struct ata_queued_cmd *qc) 271static void qs_fill_sg(struct ata_queued_cmd *qc)
272{ 272{
273 struct scatterlist *sg = qc->sg; 273 struct scatterlist *sg;
274 struct ata_port *ap = qc->ap; 274 struct ata_port *ap = qc->ap;
275 struct qs_port_priv *pp = ap->private_data; 275 struct qs_port_priv *pp = ap->private_data;
276 unsigned int nelem; 276 unsigned int nelem;
277 u8 *prd = pp->pkt + QS_CPB_BYTES; 277 u8 *prd = pp->pkt + QS_CPB_BYTES;
278 278
279 assert(sg != NULL); 279 assert(qc->__sg != NULL);
280 assert(qc->n_elem > 0); 280 assert(qc->n_elem > 0);
281 281
282 for (nelem = 0; nelem < qc->n_elem; nelem++,sg++) { 282 nelem = 0;
283 ata_for_each_sg(sg, qc) {
283 u64 addr; 284 u64 addr;
284 u32 len; 285 u32 len;
285 286
@@ -293,6 +294,7 @@ static void qs_fill_sg(struct ata_queued_cmd *qc)
293 294
294 VPRINTK("PRD[%u] = (0x%llX, 0x%X)\n", nelem, 295 VPRINTK("PRD[%u] = (0x%llX, 0x%X)\n", nelem,
295 (unsigned long long)addr, len); 296 (unsigned long long)addr, len);
297 nelem++;
296 } 298 }
297} 299}
298 300