Virgin import of Xircom PCCARD driver v1.16.

v1.16 (1999/03/08) fixed BPF input hang and infinite loop on CE2
short-packet output.

Developed by:	Scott Mitchell <scott@uk.freebsd.org>
Obtained from:	http://www.freebsd-uk.eu.org/~scott/xe_drv/
This commit is contained in:
David E. O'Brien 1999-05-14 01:53:32 +00:00
parent f69b347623
commit bd49f2f01b
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/vendor-sys/xe/dist/; revision=47142
svn path=/vendor-sys/xe/1.16/; revision=47144; tag=vendor/xe/1.16

View File

@ -23,7 +23,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: if_xe.c,v 1.15 1999/03/05 12:11:40 root Exp $
* $Id: if_xe.c,v 1.16 1999/03/08 16:28:50 root Exp $
*/
/*
@ -1112,8 +1112,8 @@ xe_card_intr(struct pccard_devinfo *devi) {
mbp->m_data += ETHER_HDR_LEN; /* Strip off Ethernet header */
ether_input(ifp, ehp, mbp); /* Send the packet on its way */
ifp->if_ipackets++; /* Success! */
XE_OUTW(XE_DOR, 0x8000); /* skip_rx_packet command */
}
XE_OUTW(XE_DOR, 0x8000); /* skip_rx_packet command */
}
}
else if (rsr & XE_RSR_LONG_PKT) { /* Packet length >1518 bytes */
@ -1829,8 +1829,10 @@ xe_pio_write_packet(struct xe_softc *scp, struct mbuf *mbp) {
if (scp->ce3)
XE_OUTB(XE_CR, XE_CR_TX_PACKET|XE_CR_ENABLE_INTR);
else
while (pad > 0)
XE_OUTW(XE_EDP, 0xfeed);
while (pad > 0) {
XE_OUTW(XE_EDP, 0xdead);
pad--;
}
return 0;
}