git.openpandora.org
/
pandora-kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[SCSI] scsi_debug: fix map_region and unmap_region oops
[pandora-kernel.git]
/
drivers
/
scsi
/
scsi_debug.c
diff --git
a/drivers/scsi/scsi_debug.c
b/drivers/scsi/scsi_debug.c
index
136329b
..
b02bdc6
100644
(file)
--- a/
drivers/scsi/scsi_debug.c
+++ b/
drivers/scsi/scsi_debug.c
@@
-1991,7
+1991,8
@@
static void map_region(sector_t lba, unsigned int len)
block = lba + alignment;
rem = do_div(block, granularity);
block = lba + alignment;
rem = do_div(block, granularity);
- set_bit(block, map_storep);
+ if (block < map_size)
+ set_bit(block, map_storep);
lba += granularity - rem;
}
lba += granularity - rem;
}
@@
-2011,7
+2012,8
@@
static void unmap_region(sector_t lba, unsigned int len)
block = lba + alignment;
rem = do_div(block, granularity);
block = lba + alignment;
rem = do_div(block, granularity);
- if (rem == 0 && lba + granularity <= end)
+ if (rem == 0 && lba + granularity <= end &&
+ block < map_size)
clear_bit(block, map_storep);
lba += granularity - rem;
clear_bit(block, map_storep);
lba += granularity - rem;