kern/122847: [ata] atacontrol reports "ioctl(IOCATADEVICES): Device not configured" with ATI IXP600

Andrey V. Elsukov bu7cher at yandex.ru
Mon May 12 05:20:38 UTC 2008


Benjamin Close wrote:
>  Will fail to list any controllers.
>  This is due to atacontrol requesting information about a non existent 
>  channel (ata0) as it sequentially goes from 0..n (where n is obtained 
>  from IOATAGMAXCHANNEL). ata(4) notices the invalid controller request 
>  and returns EXIO. Hence atacontrol thinks it's an error and exits.
>  
>  A potential fix is at:
>  
>  http://lists.freebsd.org/pipermail/freebsd-stable/2008-April/041991.html

There also was the much simpler patch:
http://lists.freebsd.org/pipermail/freebsd-stable/2008-April/041994.html

>  However this simply avoids the real problem, that is, there needs to be 
>  a way to ask the kernel what channels exist.
>  One potential solution is to introduce a IOATAGCHANNELS ioctl which 
>  returns a list of valid channels taking a struct like:
>  
>  struct ata_ioc_channels {
>      int max;
>      int channels[n];
>  }
>  
>  
>  and replace the MAXCHANNELS request.
>  Till then the patch will ignore the error state.

I asked phk@ to commit this patch and he said that he is going to
do this, but it seems that he's busy...
So if Poul or Soren are wanting make it in another way, i can do it.

-- 
WBR, Andrey V. Elsukov


More information about the freebsd-bugs mailing list