help with GPF on 5.4-STABLE - found fix

Sean McNeil sean at mcneil.com
Sun May 22 16:06:03 PDT 2005


Hi Doug,

I want to extend my appreciation for your questions as they steered me
in the right direction and helped me resolve the issue with atapicam.

I am puzzled as why I am the first to experience this problem.  It would
appear to be an issue that others should have run into before me.

There is a problem in sys/dev/ata/ata-queue.c with ata_completed().  In
the case where there is an ATAPI error, a new request is issued.  It is
a sense request.  The problem is, there is a value in donecount from the
previous request that isn't zero'd out.  The following patch fixes my
crash and makes burning CDs work again.

--- sys/dev/ata/ata-queue.c.orig        Sun May 22 15:28:03 2005
+++ sys/dev/ata/ata-queue.c     Sun May 22 15:28:27 2005
@@ -340,6 +340,7 @@
            request->data = (caddr_t)&request->u.atapi.sense_data;
            request->bytecount = sizeof(struct atapi_sense);
            request->transfersize = sizeof(struct atapi_sense);
+           request->donecount = 0;
            request->timeout = 5;
            request->flags &= (ATA_R_ATAPI | ATA_R_QUIET);
            request->flags |= (ATA_R_READ | ATA_R_IMMEDIATE | ATA_R_REQUEUE);

Now, how do I get this incorporated into -STABLE?  Do I need to submit a
bug report?  Is this simple enough that a team member can simply review
and commit?

Cheers,
Sean




More information about the freebsd-amd64 mailing list