ps3disk.c (df668a5fe461bb9d7e899c538acc7197746038f4) ps3disk.c (6e0a48552b8cfc3767b98e3e8beed3f4cbafc9f4)
1// SPDX-License-Identifier: GPL-2.0-only
2/*
3 * PS3 Disk Storage Driver
4 *
5 * Copyright (C) 2007 Sony Computer Entertainment Inc.
6 * Copyright 2007 Sony Corp.
7 */
8

--- 69 unchanged lines hidden (view full) ---

78
79
80static void ps3disk_scatter_gather(struct ps3_storage_device *dev,
81 struct request *req, int gather)
82{
83 unsigned int offset = 0;
84 struct req_iterator iter;
85 struct bio_vec bvec;
1// SPDX-License-Identifier: GPL-2.0-only
2/*
3 * PS3 Disk Storage Driver
4 *
5 * Copyright (C) 2007 Sony Computer Entertainment Inc.
6 * Copyright 2007 Sony Corp.
7 */
8

--- 69 unchanged lines hidden (view full) ---

78
79
80static void ps3disk_scatter_gather(struct ps3_storage_device *dev,
81 struct request *req, int gather)
82{
83 unsigned int offset = 0;
84 struct req_iterator iter;
85 struct bio_vec bvec;
86 unsigned int i = 0;
87 size_t size;
88 void *buf;
89
90 rq_for_each_segment(bvec, req, iter) {
86
87 rq_for_each_segment(bvec, req, iter) {
91 unsigned long flags;
92 dev_dbg(&dev->sbd.core, "%s:%u: bio %u: %u sectors from %llu\n",
93 __func__, __LINE__, i, bio_sectors(iter.bio),
94 iter.bio->bi_iter.bi_sector);
95
96 size = bvec.bv_len;
97 buf = bvec_kmap_irq(&bvec, &flags);
98 if (gather)
88 if (gather)
99 memcpy(dev->bounce_buf+offset, buf, size);
89 memcpy_from_bvec(dev->bounce_buf + offset, &bvec);
100 else
90 else
101 memcpy(buf, dev->bounce_buf+offset, size);
102 offset += size;
103 flush_kernel_dcache_page(bvec.bv_page);
104 bvec_kunmap_irq(buf, &flags);
105 i++;
91 memcpy_to_bvec(&bvec, dev->bounce_buf + offset);
106 }
107}
108
109static blk_status_t ps3disk_submit_request_sg(struct ps3_storage_device *dev,
110 struct request *req)
111{
112 struct ps3disk_private *priv = ps3_system_bus_get_drvdata(&dev->sbd);
113 int write = rq_data_dir(req), res;

--- 457 unchanged lines hidden ---
92 }
93}
94
95static blk_status_t ps3disk_submit_request_sg(struct ps3_storage_device *dev,
96 struct request *req)
97{
98 struct ps3disk_private *priv = ps3_system_bus_get_drvdata(&dev->sbd);
99 int write = rq_data_dir(req), res;

--- 457 unchanged lines hidden ---