summaryrefslogtreecommitdiffstats
path: root/sys/dev/re
diff options
context:
space:
mode:
authorimp <imp@FreeBSD.org>2004-09-20 06:12:19 +0000
committerimp <imp@FreeBSD.org>2004-09-20 06:12:19 +0000
commit9ee28251177e93c5acc68b1b2fc030fa01f49769 (patch)
treea7e68e03cc17a3f41607e39f5bf58a3d435c15ee /sys/dev/re
parent3c09ffb8d96ce21904234240869560df65deb8ed (diff)
downloadFreeBSD-src-9ee28251177e93c5acc68b1b2fc030fa01f49769.zip
FreeBSD-src-9ee28251177e93c5acc68b1b2fc030fa01f49769.tar.gz
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);
Diffstat (limited to 'sys/dev/re')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud