Matthias Meixner pointed out to me that several PCI drivers are doing a poll loop with timeout in *_poll. This should not be necessary, as the Etherboot routines will do the looping. This practice seems to have started with the eepro100 driver and spread to the other drivers. This problem may be causing problems with flushing the input buffer where there are many broadcast packets. As I do not have any of the cards affected (eepro100, epic100, 3c905b, rtl8139), would kind readers of this list please make a small modification in your source and tell me it it worked or not. In the *_poll routine, alter the code to just test for a packet and return 0 if none. eepro100 should be: if (!rxfd.status) return (0); epic100 should be: if ( (status & RRING_OWN) != RRING_OWN) return (0); 3c905b should be: to = 1; /* for the moment, doing it right requires more edits */ rtl8139 should be: status = inw(ioaddr + IntrStatus); outw(status, ioaddr + IntrStatus); if (!(status & (RxOK | RxErr))) return (0); Thanks, Ken =========================================================================== This Mail was sent to netboot mailing list by: Ken Yap <ken@nlc.net.au> To get help about this list, send a mail with 'help' as the only string in it's body to majordomo@baghira.han.de. If you have problems with this list, send a mail to netboot-owner@baghira.han.de.
For requests or suggestions regarding this mailing list archive please write to netboot@gkminix.han.de.