Date: Mon, 6 Jan 2003 15:46:47 -0800 (PST) From: John Polstra <jdp@FreeBSD.org> To: cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/sys/dev/bge if_bge.c if_bgereg.h Message-ID: <200301062346.h06NklsP071141@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
jdp 2003/01/06 15:46:47 PST
Modified files:
sys/dev/bge if_bge.c if_bgereg.h
Log:
Don't reference the maxlen and flags fields in the ring control blocks
as separate 16-bit entities. Some of the ring control blocks are
in NIC memory, so they must be referenced using 32-bit accesses.
Smaller accesses have been observed to fail under some conditions.
This caused the rings to be set up wrong, leading to writes by the
card outside of the intended bounds of the rings. This problem was
diagnosed by Michael Barthelow. Don Bowman submitted a patch which
fixed the problem using a slightly different approach.
Reference ring control blocks in NIC memory using a pointer to
volatile.
Parenthesize the BGE_HOSTADDR macro definition properly.
MFC after: 3 days
Revision Changes Path
1.26 +42 -47 src/sys/dev/bge/if_bge.c
1.12 +3 -10 src/sys/dev/bge/if_bgereg.h
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe cvs-all" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200301062346.h06NklsP071141>
