From b3c388844d5b29890df7c536d07e640ee5f6d189 Mon Sep 17 00:00:00 2001 From: Martin Svec Date: Tue, 15 Jan 2013 12:43:35 -0800 Subject: [PATCH] --- yaml --- r: 358896 b: refs/heads/master c: 8f67835f1e389978bb0809d5e528961986aa2a69 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/target/target_core_rd.c | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 79aedd43715f..72def61744d1 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: d09816ae8fc05322b4e37a589537b4ecdca28a0d +refs/heads/master: 8f67835f1e389978bb0809d5e528961986aa2a69 diff --git a/trunk/drivers/target/target_core_rd.c b/trunk/drivers/target/target_core_rd.c index 0457de362e68..b0fff52c990e 100644 --- a/trunk/drivers/target/target_core_rd.c +++ b/trunk/drivers/target/target_core_rd.c @@ -256,10 +256,12 @@ static void rd_free_device(struct se_device *dev) static struct rd_dev_sg_table *rd_get_sg_table(struct rd_dev *rd_dev, u32 page) { - u32 i; struct rd_dev_sg_table *sg_table; + u32 i, sg_per_table = (RD_MAX_ALLOCATION_SIZE / + sizeof(struct scatterlist)); - for (i = 0; i < rd_dev->sg_table_count; i++) { + i = page / sg_per_table; + if (i < rd_dev->sg_table_count) { sg_table = &rd_dev->sg_table_array[i]; if ((sg_table->page_start_offset <= page) && (sg_table->page_end_offset >= page))