Re: [PATCH] 2.4.32 Don't panic on IDE DMA errors

From: Marcelo Tosatti
Date: Mon Nov 28 2005 - 12:50:39 EST



Applied, thanks Chris.

On Wed, Nov 23, 2005 at 03:56:00PM +0000, Chris Ross wrote:
> Kernel 2.4.32 and earlier can panic when trying to read a corrupted
> sector from an IDE disk.
>
> The function ide_dma_timeout_retry can end a request early by calling
> idedisk_error, but then goes on to use the request anyway causing a
> kernel panic due to a null pointer exception. This patch fixes that.
>
> Regards,
> Chris R.
>
>
> diff -urN -X dontdiff linux-2.4.32/drivers/ide/ide-io.c
> patched-linux-2.4.32/drivers/ide/ide-io.c
> --- linux-2.4.32/drivers/ide/ide-io.c 2003-11-28 18:26:20.000000000 +0000
> +++ patched-linux-2.4.32/drivers/ide/ide-io.c 2005-11-23
> 12:33:37.000000000 +0000
> @@ -899,11 +899,13 @@
> rq = HWGROUP(drive)->rq;
> HWGROUP(drive)->rq = NULL;
>
> - rq->errors = 0;
> - rq->sector = rq->bh->b_rsector;
> - rq->current_nr_sectors = rq->bh->b_size >> 9;
> - rq->hard_cur_sectors = rq->current_nr_sectors;
> - rq->buffer = rq->bh->b_data;
> + if (rq) {
> + rq->errors = 0;
> + rq->sector = rq->bh->b_rsector;
> + rq->current_nr_sectors = rq->bh->b_size >> 9;
> + rq->hard_cur_sectors = rq->current_nr_sectors;
> + rq->buffer = rq->bh->b_data;
> + }
>
> return ret;
> }
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/