Date: Wed, 20 Nov 1996 23:02:14 -0800 From: "Jon Morgan" <morgan@terminus.trailblazer.com> To: freebsd-hackers@freebsd.org Subject: vx driver problems Message-ID: <9611202302.ZM8284@terminus.trailblazer.com>
index | next in thread | raw e-mail
I found problems in if_vx.c where the driver handles ifconfig link[012] flags.
The driver is ANDing the index into the connector_table rather than the
actual bit value out of the table.
Here's the code for 2.1.6-RELEASE that fixes the problem:
*** if_vx.c.orig Wed Nov 20 20:07:59 1996
--- if_vx.c Wed Nov 20 21:45:35 1996
***************
*** 355,365 ****
* (if present on card or AUI if not).
*/
/* Set the xcvr. */
! if(ifp->if_flags & IFF_LINK0 && sc->vx_connectors & CONNECTOR_AUI) {
i = CONNECTOR_AUI;
! } else if(ifp->if_flags & IFF_LINK1 && sc->vx_connectors & CONNECTOR_BNC)
{
i = CONNECTOR_BNC;
! } else if(ifp->if_flags & IFF_LINK2 && sc->vx_connectors & CONNECTOR_UTP)
{
i = CONNECTOR_UTP;
} else {
i = sc->vx_connector;
--- 355,365 ----
* (if present on card or AUI if not).
*/
/* Set the xcvr. */
! if(ifp->if_flags & IFF_LINK0 && sc->vx_connectors &
connector_table[CONNECTOR_AUI].bit) {
i = CONNECTOR_AUI;
! } else if(ifp->if_flags & IFF_LINK1 && sc->vx_connectors &
connector_table[CONNECTOR_BNC].bit) {
i = CONNECTOR_BNC;
! } else if(ifp->if_flags & IFF_LINK2 && sc->vx_connectors &
connector_table[CONNECTOR_UTP].bit) {
i = CONNECTOR_UTP;
} else {
i = sc->vx_connector;
and here's the equivalent code for 3.0-CURRENT (I havn't tested this, but it
should be the same):
*** if_vx.c.orig Wed Nov 20 20:07:59 1996
--- if_vx.c Wed Nov 20 21:45:35 1996
***************
*** 355,365 ****
* (if present on card or AUI if not).
*/
/* Set the xcvr. */
! if(ifp->if_flags & IFF_LINK0 && sc->vx_connectors & CONNECTOR_AUI) {
i = CONNECTOR_AUI;
! } else if(ifp->if_flags & IFF_LINK1 && sc->vx_connectors & CONNECTOR_BNC)
{
i = CONNECTOR_BNC;
! } else if(ifp->if_flags & IFF_LINK2 && sc->vx_connectors & CONNECTOR_UTP)
{
i = CONNECTOR_UTP;
} else {
i = sc->vx_connector;
--- 355,365 ----
* (if present on card or AUI if not).
*/
/* Set the xcvr. */
! if(ifp->if_flags & IFF_LINK0 && sc->vx_connectors &
connector_table[CONNECTOR_AUI].bit) {
i = CONNECTOR_AUI;
! } else if(ifp->if_flags & IFF_LINK1 && sc->vx_connectors &
connector_table[CONNECTOR_BNC].bit) {
i = CONNECTOR_BNC;
! } else if(ifp->if_flags & IFF_LINK2 && sc->vx_connectors &
connector_table[CONNECTOR_UTP].bit) {
i = CONNECTOR_UTP;
} else {
i = sc->vx_connector;
help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?9611202302.ZM8284>
