diff options
author | Dan Carpenter <error27@gmail.com> | 2010-06-01 06:17:48 -0400 |
---|---|---|
committer | Jens Axboe <jaxboe@fusionio.com> | 2010-06-01 06:17:48 -0400 |
commit | 713b686494a577b3c4f4f9f585a4705fc30d51c2 (patch) | |
tree | 3b7fa639a3b1bf1a6addd0d317558ca66bf9dd6c /drivers/block/cciss_scsi.c | |
parent | 099c5c310e9744bd0654881bb55c137051228e56 (diff) |
cciss: call BUG() earlier
I moved the range check after the increment. The current code would
write past the end of the array once before calling BUG().
Signed-off-by: Dan Carpenter <error27@gmail.com>
Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
Diffstat (limited to 'drivers/block/cciss_scsi.c')
-rw-r--r-- | drivers/block/cciss_scsi.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/block/cciss_scsi.c b/drivers/block/cciss_scsi.c index e1d0e2cfec72..3381505c8a6c 100644 --- a/drivers/block/cciss_scsi.c +++ b/drivers/block/cciss_scsi.c | |||
@@ -188,11 +188,11 @@ scsi_cmd_free(ctlr_info_t *h, CommandList_struct *cmd) | |||
188 | 188 | ||
189 | sa = h->scsi_ctlr; | 189 | sa = h->scsi_ctlr; |
190 | stk = &sa->cmd_stack; | 190 | stk = &sa->cmd_stack; |
191 | stk->top++; | ||
191 | if (stk->top >= CMD_STACK_SIZE) { | 192 | if (stk->top >= CMD_STACK_SIZE) { |
192 | printk("cciss: scsi_cmd_free called too many times.\n"); | 193 | printk("cciss: scsi_cmd_free called too many times.\n"); |
193 | BUG(); | 194 | BUG(); |
194 | } | 195 | } |
195 | stk->top++; | ||
196 | stk->elem[stk->top] = (struct cciss_scsi_cmd_stack_elem_t *) cmd; | 196 | stk->elem[stk->top] = (struct cciss_scsi_cmd_stack_elem_t *) cmd; |
197 | } | 197 | } |
198 | 198 | ||