diff options
-rw-r--r-- | drivers/target/target_core_rd.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/target/target_core_rd.c b/drivers/target/target_core_rd.c index 0457de362e68..b0fff52c990e 100644 --- a/drivers/target/target_core_rd.c +++ b/drivers/target/target_core_rd.c | |||
@@ -256,10 +256,12 @@ static void rd_free_device(struct se_device *dev) | |||
256 | 256 | ||
257 | static struct rd_dev_sg_table *rd_get_sg_table(struct rd_dev *rd_dev, u32 page) | 257 | static struct rd_dev_sg_table *rd_get_sg_table(struct rd_dev *rd_dev, u32 page) |
258 | { | 258 | { |
259 | u32 i; | ||
260 | struct rd_dev_sg_table *sg_table; | 259 | struct rd_dev_sg_table *sg_table; |
260 | u32 i, sg_per_table = (RD_MAX_ALLOCATION_SIZE / | ||
261 | sizeof(struct scatterlist)); | ||
261 | 262 | ||
262 | for (i = 0; i < rd_dev->sg_table_count; i++) { | 263 | i = page / sg_per_table; |
264 | if (i < rd_dev->sg_table_count) { | ||
263 | sg_table = &rd_dev->sg_table_array[i]; | 265 | sg_table = &rd_dev->sg_table_array[i]; |
264 | if ((sg_table->page_start_offset <= page) && | 266 | if ((sg_table->page_start_offset <= page) && |
265 | (sg_table->page_end_offset >= page)) | 267 | (sg_table->page_end_offset >= page)) |