diff --git a/drivers/ata/libata-sff.c b/drivers/ata/libata-sff.c
index 741065c9da6700245a2ddb70f19908e3589f85c1..730ef3c384ca190818857c89ab044006dccfe75d 100644
--- a/drivers/ata/libata-sff.c
+++ b/drivers/ata/libata-sff.c
@@ -893,6 +893,9 @@ static void ata_pio_sector(struct ata_queued_cmd *qc)
 				       do_write);
 	}
 
+	if (!do_write)
+		flush_dcache_page(page);
+
 	qc->curbytes += qc->sect_size;
 	qc->cursg_ofs += qc->sect_size;