aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ata/libata-core.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/ata/libata-core.c')
-rw-r--r--drivers/ata/libata-core.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
index 629eadbd0ec0..69092bce1ada 100644
--- a/drivers/ata/libata-core.c
+++ b/drivers/ata/libata-core.c
@@ -4296,7 +4296,7 @@ void ata_sg_clean(struct ata_queued_cmd *qc)
4296 sg_last(sg, qc->orig_n_elem)->length += qc->pad_len; 4296 sg_last(sg, qc->orig_n_elem)->length += qc->pad_len;
4297 if (pad_buf) { 4297 if (pad_buf) {
4298 struct scatterlist *psg = &qc->pad_sgent; 4298 struct scatterlist *psg = &qc->pad_sgent;
4299 void *addr = kmap_atomic(psg->page, KM_IRQ0); 4299 void *addr = kmap_atomic(sg_page(psg), KM_IRQ0);
4300 memcpy(addr + psg->offset, pad_buf, qc->pad_len); 4300 memcpy(addr + psg->offset, pad_buf, qc->pad_len);
4301 kunmap_atomic(addr, KM_IRQ0); 4301 kunmap_atomic(addr, KM_IRQ0);
4302 } 4302 }
@@ -4686,11 +4686,11 @@ static int ata_sg_setup(struct ata_queued_cmd *qc)
4686 * data in this function or read data in ata_sg_clean. 4686 * data in this function or read data in ata_sg_clean.
4687 */ 4687 */
4688 offset = lsg->offset + lsg->length - qc->pad_len; 4688 offset = lsg->offset + lsg->length - qc->pad_len;
4689 psg->page = nth_page(lsg->page, offset >> PAGE_SHIFT); 4689 sg_set_page(psg, nth_page(sg_page(lsg), offset >> PAGE_SHIFT));
4690 psg->offset = offset_in_page(offset); 4690 psg->offset = offset_in_page(offset);
4691 4691
4692 if (qc->tf.flags & ATA_TFLAG_WRITE) { 4692 if (qc->tf.flags & ATA_TFLAG_WRITE) {
4693 void *addr = kmap_atomic(psg->page, KM_IRQ0); 4693 void *addr = kmap_atomic(sg_page(psg), KM_IRQ0);
4694 memcpy(pad_buf, addr + psg->offset, qc->pad_len); 4694 memcpy(pad_buf, addr + psg->offset, qc->pad_len);
4695 kunmap_atomic(addr, KM_IRQ0); 4695 kunmap_atomic(addr, KM_IRQ0);
4696 } 4696 }
@@ -4836,7 +4836,7 @@ static void ata_pio_sector(struct ata_queued_cmd *qc)
4836 if (qc->curbytes == qc->nbytes - qc->sect_size) 4836 if (qc->curbytes == qc->nbytes - qc->sect_size)
4837 ap->hsm_task_state = HSM_ST_LAST; 4837 ap->hsm_task_state = HSM_ST_LAST;
4838 4838
4839 page = qc->cursg->page; 4839 page = sg_page(qc->cursg);
4840 offset = qc->cursg->offset + qc->cursg_ofs; 4840 offset = qc->cursg->offset + qc->cursg_ofs;
4841 4841
4842 /* get the current page and offset */ 4842 /* get the current page and offset */
@@ -4988,7 +4988,7 @@ next_sg:
4988 4988
4989 sg = qc->cursg; 4989 sg = qc->cursg;
4990 4990
4991 page = sg->page; 4991 page = sg_page(sg);
4992 offset = sg->offset + qc->cursg_ofs; 4992 offset = sg->offset + qc->cursg_ofs;
4993 4993
4994 /* get the current page and offset */ 4994 /* get the current page and offset */