On Tue, Jun 08, 2021 at 06:05:56PM +0200, Christoph Hellwig wrote:
>  
>       rq_for_each_segment(bvec, req, iter) {
> -             unsigned long flags;
> -             dev_dbg(&dev->sbd.core, "%s:%u: bio %u: %u sectors from %llu\n",
> -                     __func__, __LINE__, i, bio_sectors(iter.bio),
> -                     iter.bio->bi_iter.bi_sector);
> -
> -             size = bvec.bv_len;
> -             buf = bvec_kmap_irq(&bvec, &flags);
>               if (gather)
> -                     memcpy(dev->bounce_buf+offset, buf, size);
> +                     memcpy_from_bvec(dev->bounce_buf + offset, &bvec);
>               else
> -                     memcpy(buf, dev->bounce_buf+offset, size);
> -             offset += size;
> -             flush_kernel_dcache_page(bvec.bv_page);

I'm still not 100% sure that these flushes are needed but the are not no-ops on
every arch.  Would it be best to preserve them after the memcpy_to/from_bvec()?

Same thing in patch 11 and 14.

Ira

Reply via email to