mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 11:11:45 -04:00
ide: another possible ide panic fix for blk-end-request
I have reviewed all blk-end-request patches again to confirm whether
there are any similar problems with the last week's ide-cd panic:
http://lkml.org/lkml/2008/1/29/140
And I found a possible similar bug in ide-io change:
ide_end_drive_cmd() could be called for blk_pc_request() which could
have bios. To complete such requests correctly, we need to pass
the actual size of the request.
Otherwise, __blk_end_request() returns 1 because the request still has
bios, and the system will BUG() unnecessarily.
The following patch fixes the bug and should be applied on top of
Linus' git.
Signed-off-by: Kiyoshi Ueda <[email protected]>
Signed-off-by: Jun'ichi Nomura <[email protected]>
Cc: Borislav Petkov <[email protected]>
Cc: Jens Axboe <[email protected]>
Signed-off-by: Bartlomiej Zolnierkiewicz <[email protected]>
This commit is contained in:
parent
0eccf60bfa
commit
3b0e044d5a
1 changed files with 2 additions and 1 deletions
|
|
@ -388,7 +388,8 @@ void ide_end_drive_cmd (ide_drive_t *drive, u8 stat, u8 err)
|
|||
spin_lock_irqsave(&ide_lock, flags);
|
||||
HWGROUP(drive)->rq = NULL;
|
||||
rq->errors = err;
|
||||
if (__blk_end_request(rq, (rq->errors ? -EIO : 0), 0))
|
||||
if (unlikely(__blk_end_request(rq, (rq->errors ? -EIO : 0),
|
||||
blk_rq_bytes(rq))))
|
||||
BUG();
|
||||
spin_unlock_irqrestore(&ide_lock, flags);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue