Date: Fri, 9 May 2008 12:00:04 GMT From: Benjamin Close <Benjamin.Close@clearchain.com> To: freebsd-bugs@FreeBSD.org Subject: Re: kern/122847: [ata] atacontrol reports "ioctl(IOCATADEVICES): Device not configured" with ATI IXP600 Message-ID: <200805091200.m49C04fC048532@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
The following reply was made to PR kern/122847; it has been noted by GNATS. From: Benjamin Close <Benjamin.Close@clearchain.com> To: bug-followup@FreeBSD.org, arnaud.houdelette@tzim.net Cc: Subject: Re: kern/122847: [ata] atacontrol reports "ioctl(IOCATADEVICES): Device not configured" with ATI IXP600 Date: Fri, 09 May 2008 21:05:49 +0930 This bug occurs when there is missing controllers in the 0..n range. Ie, if the box has controllers: ata2 ata3 via a atapci but no native controllers (ie ata0, ata1) atacontrol list 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 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.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200805091200.m49C04fC048532>