Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 12 May 2008 09:20:32 +0400
From:      "Andrey V. Elsukov" <bu7cher@yandex.ru>
To:        Benjamin Close <Benjamin.Close@clearchain.com>
Cc:        freebsd-bugs@FreeBSD.org, Poul-Henning Kamp <phk@phk.freebsd.dk>, =?UTF-8?B?U8O4cmVuIFNjaG1pZHQ=?= <sos@FreeBSD.org>
Subject:   Re: kern/122847: [ata] atacontrol reports "ioctl(IOCATADEVICES): Device not configured" with ATI IXP600
Message-ID:  <4827D3A0.7000704@yandex.ru>
In-Reply-To: <200805091200.m49C04fC048532@freefall.freebsd.org>
References:  <200805091200.m49C04fC048532@freefall.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4827D3A0.7000704>