]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
ps3disk: use memcpy_{from,to}_bvec index
authorRene Rebe <rene@exactco.de>
Fri, 14 Nov 2025 14:30:33 +0000 (15:30 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 19 Jan 2026 12:09:29 +0000 (13:09 +0100)
[ Upstream commit 79bd8c9814a273fa7ba43399e1c07adec3fc95db ]

With 6e0a48552b8c (ps3disk: use memcpy_{from,to}_bvec) converting
ps3disk to new bvec helpers, incrementing the offset was accidently
lost, corrupting consecutive buffers. Restore index for non-corrupted
data transfers.

Fixes: 6e0a48552b8c (ps3disk: use memcpy_{from,to}_bvec)
Signed-off-by: René Rebe <rene@exactco.de>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/block/ps3disk.c

index 8d51efbe045ddc63e98241c69ef0bf2dcee78e66..8628ee818da962966d5a1fb274b508aee735945b 100644 (file)
@@ -85,10 +85,14 @@ static void ps3disk_scatter_gather(struct ps3_storage_device *dev,
        struct bio_vec bvec;
 
        rq_for_each_segment(bvec, req, iter) {
+               dev_dbg(&dev->sbd.core, "%s:%u: %u sectors from %llu\n",
+                       __func__, __LINE__, bio_sectors(iter.bio),
+                       iter.bio->bi_iter.bi_sector);
                if (gather)
                        memcpy_from_bvec(dev->bounce_buf + offset, &bvec);
                else
                        memcpy_to_bvec(&bvec, dev->bounce_buf + offset);
+               offset += bvec.bv_len;
        }
 }