Date: Sun, 19 Sep 2004 23:32:49 -0700 From: Nate Lawson <nate@root.org> To: Warner Losh <imp@FreeBSD.org> Cc: cvs-all@FreeBSD.org Subject: Re: cvs commit: src/sys/dev/fdc fdc_isa.c Message-ID: <414E7991.6050000@root.org> In-Reply-To: <20040920061223.0FDD916A4FD@hub.freebsd.org> References: <20040920061223.0FDD916A4FD@hub.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Warner Losh wrote: > imp 2004-09-20 06:12:19 UTC > > FreeBSD src repository > > Modified files: > sys/dev/fdc fdc_isa.c > Log: > das@ has a ACPI bios that lists 0x3f0-0x3f1, 0x3f2-0x3f3, 0x3f4-0x3f5 > and 0x3f7. fdc_isa_alloc_resource() didn't work right in this case > (it accessed FDOUT correctly due to an overflow of the first resource. > It accesed FDSTS and FDDATA incorrectly via the second resource (which > wound up accessing FDOUT and the tape register at 0x3f3) and badly for > the CTL register (at location 0x3f4). This is a minimal fix that just > 'eats' the first one if it covers two locations and has an offset of > 0. This confusion lead the floppy driver to think there'd been a disk > change, which uncovered a deadlock in the floppy/geom code which lead > to a panic. These changes fix that by fixing the underlying resource > problem, but doesn't address the potential deadlock issue that might > still be there. > > This is a minimal fix so it can more safely be merged into 5 w/o risk > for known working configurations (hence the use of the ugly goto, > which reduces case 8 to case 6 w/o affecting cases 1-7). A more > invasive fix that will handle more ACPI resource list diversity is in > the pipeline that should kill these issues once and for all, while > staying within the resources that we allocate. > > Tested/Reported by: das > Reviewed by: njl > MFC before: re->next_release_name(5.3-BETA5); > > Revision Changes Path > 1.15 +14 -4 src/sys/dev/fdc/fdc_isa.c Thanks for you and phk working on this. -Nate
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?414E7991.6050000>