floppy.c vs. IDE ioport conflict

Jeff Long (JwL@gis.net)
Wed, 01 Sep 1999 23:25:31 -0400


Resource conflict between an IDE controller and a plain old floppy
drive.
This all worked a few 2.3 kernels ago, but I don't use the drive much,
so
I'm not sure exactly where it broke. Drive works if I bypass
'check_region'
calls in floppy.c, but that's obviously not the solution.

Doing 'check_region' one byte at a time, by the way, there is no
conflict.
Doing the whole range there is a conflict. Is this something weird with

the 'request_range' code? Didn't go too deep into it, but the bounds
all
looked right in kernel/resource.c.

>cat /proc/ioports

0000-001f : dma1
0020-003f : pic1
0040-005f : timer
0060-006f : keyboard
0080-008f : dma page reg
00a0-00bf : pic2
00c0-00df : dma2
00f0-00ff : fpu
0170-0177 : Silicon Integrated Systems 85C5513 IDE
0170-0177 : ide1
01f0-01f7 : Silicon Integrated Systems 85C5513 IDE
01f0-01f7 : ide0
02e8-02ef : serial(auto)
0374-0377 : Silicon Integrated Systems 85C5513 IDE
0376-0376 : ide1
0378-037a : parport0
03c0-03df : vesafb
03f4-03f7 : Silicon Integrated Systems 85C5513 IDE
03f6-03f6 : ide0
03f8-03ff : serial(auto)

and so on, ...

>modprobe floppy (for testing, same problem when compiled in)
/lib/modules/2.3.16/block/floppy.o: init_module: Device or resource busy

>dmesg
Floppy drive(s): fd0 is 1.44M
floppy0: Floppy io-port 0x03f0 in use

Floppy driver is hard wired to take 0x3f0-0x3f6, 0x3f7, which
overlaps with one of the SiS lines. 'check_region' call from floppy.c
fails, and the driver won't install.

IDE devices are:
hda: HDD, hdb: none, hdc: CD R/W, hdd: CD.

Anyone else having similar problems? Chipset problem? Kernel problem?

JwL.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/