Commit 3b0e044d authored by Kiyoshi Ueda's avatar Kiyoshi Ueda Committed by Bartlomiej Zolnierkiewicz
Browse files

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:

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: default avatarKiyoshi Ueda <>
Signed-off-by: default avatarJun'ichi Nomura <>
Cc: Borislav Petkov <>
Cc: Jens Axboe <>
Signed-off-by: default avatarBartlomiej Zolnierkiewicz <>
parent 0eccf60b
......@@ -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),
spin_unlock_irqrestore(&ide_lock, flags);
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment