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