Re: one-line-patch against SCSI-Read-Error-BUG()

From: Jens Axboe (axboe@suse.de)
Date: Tue Feb 05 2002 - 09:24:34 EST


On Tue, Feb 05 2002, Ralf Oehler wrote:
> Hi, List
>
> I think, I found a very simple solution for this annoying BUG().

You fail to understand that the BUG triggering indicates that their is a
BUG _somewhere_ -- the triggered BUG is not the bug itself, of course,
that would be stupid :-)

> Since at least kernel 2.4.16 there is a BUG() in pci.h,
> that crashes the kernel on any attempt to read a SCSI-Sector
> from an erased MO-Medium and on any attempt to read
> a sector from a SCSI-disk, which returns "Read-Error".
>
> There seems to be a thinko in the corresponding code, which
> does not take into account the case where a SCSI-READ
> does not return any data because of a "sense code: read error"
> or a "sense code: blank sector".
>
> I simply commented out this BUG() statement (see below)
> and everything worked well from there on. The BUG()
> seems to be inadequate.

The BUG is dangerous, because it means mapping DMA to a 0 address (plus
offset). Naturally there is no way in hell your "fix" will be applied,
since it a pretty bad bandaid.

A safer solution for you right now would be to just terminate the
mapping when you encounter this. So something ala

        if (!sg[i].page && !sg[i].address)
                return i;

That's not a bug fix either, but at least it's safer than your version.
Stock kernel won't be patched until the real problem is found, though.

-- 
Jens Axboe

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Thu Feb 07 2002 - 21:00:42 EST