[SCSI] scsi_debug: fix map_region and unmap_region oops
[pandora-kernel.git] / drivers / scsi / scsi_debug.c
index 136329b..b02bdc6 100644 (file)
@@ -1991,7 +1991,8 @@ static void map_region(sector_t lba, unsigned int len)
                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;
        }
@@ -2011,7 +2012,8 @@ static void unmap_region(sector_t lba, unsigned int len)
                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;