Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 01 Jul 2006 02:01:57 GMT
From:      tbyte@OTEL.net
To:        "freebsd-stable@freebsd.org" <freebsd-stable@freebsd.org>
Subject:   Bug in ata (ata-all.c) driver
Message-ID:  <E1FwUo1-000666-32@mail.otel.net>

next in thread | raw e-mail | index | archive | help
This is a MIME-formatted message.  If you see this text it means that your
mail software cannot handle MIME-formatted messages.

--=_0_23441_1151719317
Content-Type: text/plain; format=flowed; charset=iso-8859-1
Content-Transfer-Encoding: 7bit

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 


--=_0_23441_1151719317
Content-Disposition: attachment; filename="ata-all.c.diff"
Content-Type: text/plain; charset="iso-8859-1"; name="ata-all.c.diff"
Content-Transfer-Encoding: 7bit

--- 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;
 	

--=_0_23441_1151719317--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?E1FwUo1-000666-32>