diff options
Diffstat (limited to 'drivers/block/z2ram.c')
-rw-r--r-- | drivers/block/z2ram.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/block/z2ram.c b/drivers/block/z2ram.c index 27de5046708a..968f9e52effa 100644 --- a/drivers/block/z2ram.c +++ b/drivers/block/z2ram.c | |||
@@ -87,13 +87,15 @@ static void do_z2_request(struct request_queue *q) | |||
87 | while (len) { | 87 | while (len) { |
88 | unsigned long addr = start & Z2RAM_CHUNKMASK; | 88 | unsigned long addr = start & Z2RAM_CHUNKMASK; |
89 | unsigned long size = Z2RAM_CHUNKSIZE - addr; | 89 | unsigned long size = Z2RAM_CHUNKSIZE - addr; |
90 | void *buffer = bio_data(req->bio); | ||
91 | |||
90 | if (len < size) | 92 | if (len < size) |
91 | size = len; | 93 | size = len; |
92 | addr += z2ram_map[ start >> Z2RAM_CHUNKSHIFT ]; | 94 | addr += z2ram_map[ start >> Z2RAM_CHUNKSHIFT ]; |
93 | if (rq_data_dir(req) == READ) | 95 | if (rq_data_dir(req) == READ) |
94 | memcpy(req->buffer, (char *)addr, size); | 96 | memcpy(buffer, (char *)addr, size); |
95 | else | 97 | else |
96 | memcpy((char *)addr, req->buffer, size); | 98 | memcpy((char *)addr, buffer, size); |
97 | start += size; | 99 | start += size; |
98 | len -= size; | 100 | len -= size; |
99 | } | 101 | } |