Date: Sat, 01 Jul 2006 01:58:46 GMT From: tbyte@OTEL.net To: "freebsd-stable@freebsd.org" <freebsd-stable@freebsd.org> Subject: (no subject) Message-ID: <E1FwUkw-00063i-LR@mail.otel.net>
next in thread | raw e-mail | index | archive | help
[-- Attachment #1 --]
I found a little bug (probably) in sys/dev/ata-all.c which somehow corrupts
device parameters structure. When I first did "atacontrol list" device info
about ad0 looked like this:
Master: ad0 <Maxtor 6Y080P0/YAR41BW0> ATA/ATAPI revision 7
after I ran "atacontrol cap ad0" it printed somewhat messy output like
having enabled SMART but not supported...
then I did "atacontrol list" again and saw that the line about ad0 have
changed to something like this:
Master: ad0 <W0Maxtor 6Y080P0/YAR41BW0> ATA/ATAPI revision 0
or similar.
After some digging and comparing the way "IOCATADEVICES" and "IOCATAGPARM"
work I saw (probably) bogus ata_getparam() call. After removing this call to
ata_getparam() everything work as expected (atleast that's what it looks
like for ~30 min run). "atacontrol cap ad0" shows right results and doesn't
screw the device parameters. I just hope that this doesn't break something
else but I doubt it coz it just gets info and doesn't set anything.
The "giant" patch is attached. It's agains today's -STABLE.
regards
[-- Attachment #2 --]
--- ata-all.c.old Sat Jul 1 04:10:30 2006
+++ ata-all.c Sat Jul 1 04:40:26 2006
@@ -505,7 +505,6 @@
return error;
case IOCATAGPARM:
- ata_getparam(atadev, 0);
bcopy(&atadev->param, params, sizeof(struct ata_params));
return 0;
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?E1FwUkw-00063i-LR>
