Unexpected interaction between PCI IDE DMA and 3C905 Driver? [was: IP subsystem lockup]

Ben McCann (bmccann@indusriver.com)
Mon, 16 Feb 1998 10:38:42 -0500

Hi Donald,

I encountered a problem with Linux 2.1.84 about a week ago where I
could hang the IP subsystem after doing 10MB FTP transfers. Networking
worked OK when I first booted if I sent small files but it would stop
doing anything (ping, rlogin, ftp, etc) after a large FTP. For what's
its worth, about 6 of 10MB made it through FTP before this hang occurred.

Another developer here built a 2.1.84 that worked correctly so we surmised that
there was a difference in our .config's which introduced the bug. I have
isolated the difference which 'enables' the bug. I believe it has to do with an
interaction between PCI IDE DMA support and the 3c905 ethernet driver (which is,
I think, capable of doing DMA).
(I obviously have 3c905 ethernet NIC's in my machines).

The problem occurs when "Generic PCI Bus Master DMA Support" is DISABLED
(set to N) under the "Floppy, IDE, and other Block Device" menu of
'make xconfig'. I'm guessing that this is a problem in the 3c905 driver:

1. The driver relies upon some portion of the generic PCI DMA support to perform
DMA's correctly. If so, the configuration subsystem needs to
be annotated or changed to assure generic PCI DMA is enabled when 3c905
(and possibly other?) drivers are present. Or,

2. Perhaps the 3c905 driver falls back to a CPU-directed (inb/outb) data
transfer if DMA support is not available. Perhaps that code has a bug
which is unmasked when large numbers of skbuff's are transferred.

Please take a look at this problem to confirm or deny these diagnoses.
If neither of these is right then perhaps there is a broader problem
which needs the attention of someone like Alan Cox.

Ben McCann

Ben McCann                              Indus River Networks
                                        31 Nagog Park
                                        Acton, MA, 01720
email: bmccann@indusriver.com           web: www.indusriver.com 
phone: (978) 266-8140                   fax: (978) 266-8111

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu