Netboot Mailing List (by thread)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

PCI drivers bug in Etherboot 4.2.3



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.