struct bio_vec *tovec, *fromvec;
int i;
- bio_for_each_segment(tovec, to, i) {
+ __bio_for_each_segment(tovec, to, i, 0) {
fromvec = from->bi_io_vec + i;
/*
*/
vfrom = page_address(fromvec->bv_page) + tovec->bv_offset;
+ flush_dcache_page(tovec->bv_page);
bounce_copy_vec(tovec, vfrom);
}
}
/*
* free up bounce indirect pages used
*/
- bio_for_each_segment(bvec, bio, i) {
+ __bio_for_each_segment(bvec, bio, i, 0) {
org_vec = bio_orig->bi_io_vec + i;
if (bvec->bv_page == org_vec->bv_page)
continue;
if (rw == WRITE) {
char *vto, *vfrom;
+ flush_dcache_page(from->bv_page);
vto = page_address(to->bv_page) + to->bv_offset;
vfrom = kmap(from->bv_page) + from->bv_offset;
memcpy(vto, vfrom, to->bv_len);