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>