Re: [PATCH] ide: another possible ide panic fix for blk-end-request

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Feb 04, 2008 at 02:53:12PM -0500, Kiyoshi Ueda wrote:
> Hi Jens, Bart, Boris,
> 
> 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.

You mean ide_abort() and ide_error(), right? Because ide{-tape,-floppy,-scsi}
do call already ide_end_request() for non-special rq's
(!blk_special_request()), except ide-scsi filters also on !blk_sense_request().

> 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.
> Please review and apply.
> 
> 
> Cc: Bartlomiej Zolnierkiewicz <bzolnier@xxxxxxxxx>
> Cc: Borislav Petkov <petkovbb@xxxxxxxxxxxxxx>
> Signed-off-by: Kiyoshi Ueda <k-ueda@xxxxxxxxxxxxx>
> Signed-off-by: Jun'ichi Nomura <j-nomura@xxxxxxxxxxxxx>
> ---
>  drivers/ide/ide-io.c |    3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> --- a/drivers/ide/ide-io.c	2008-02-01 18:20:02.000000000 -0500
> +++ b/drivers/ide/ide-io.c	2008-02-01 18:21:50.000000000 -0500
> @@ -388,7 +388,8 @@ void ide_end_drive_cmd (ide_drive_t *dri
>  	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);
>  }
> 
> Thanks,
> Kiyoshi Ueda

-- 
Regards/Gruß,
    Boris.
-
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Filesystems]     [Linux SCSI]     [Linux RAID]     [Git]     [Kernel Newbies]     [Linux Newbie]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Samba]     [Device Mapper]

  Powered by Linux