Index: if_dc.c =================================================================== RCS file: /home/ncvs/src/sys/dev/dc/if_dc.c,v retrieving revision 1.172 diff -u -r1.172 if_dc.c --- if_dc.c 11 Nov 2005 16:04:50 -0000 1.172 +++ if_dc.c 20 Nov 2005 01:08:09 -0000 @@ -1126,9 +1126,9 @@ } /* Set our MAC address */ - sp[39] = DC_SP_MAC(((u_int16_t *)IF_LLADDR(sc->dc_ifp))[0]); - sp[40] = DC_SP_MAC(((u_int16_t *)IF_LLADDR(sc->dc_ifp))[1]); - sp[41] = DC_SP_MAC(((u_int16_t *)IF_LLADDR(sc->dc_ifp))[2]); + sp[39] = DC_SP_MAC((u_int16_t *)IF_LLADDR(sc->dc_ifp) + 0); + sp[40] = DC_SP_MAC((u_int16_t *)IF_LLADDR(sc->dc_ifp) + 1); + sp[41] = DC_SP_MAC((u_int16_t *)IF_LLADDR(sc->dc_ifp) + 2); sframe->dc_status = htole32(DC_TXSTAT_OWN); CSR_WRITE_4(sc, DC_TXSTART, 0xFFFFFFFF); @@ -1324,9 +1324,9 @@ } /* Set our MAC address */ - sp[0] = DC_SP_MAC(((u_int16_t *)IF_LLADDR(sc->dc_ifp))[0]); - sp[1] = DC_SP_MAC(((u_int16_t *)IF_LLADDR(sc->dc_ifp))[1]); - sp[2] = DC_SP_MAC(((u_int16_t *)IF_LLADDR(sc->dc_ifp))[2]); + sp[0] = DC_SP_MAC((u_int16_t *)IF_LLADDR(sc->dc_ifp) + 0); + sp[1] = DC_SP_MAC((u_int16_t *)IF_LLADDR(sc->dc_ifp) + 1); + sp[2] = DC_SP_MAC((u_int16_t *)IF_LLADDR(sc->dc_ifp) + 2); DC_SETBIT(sc, DC_NETCFG, DC_NETCFG_TX_ON); DC_SETBIT(sc, DC_NETCFG, DC_NETCFG_RX_ON); Index: if_dcreg.h =================================================================== RCS file: /home/ncvs/src/sys/dev/dc/if_dcreg.h,v retrieving revision 1.45 diff -u -r1.45 if_dcreg.h --- if_dcreg.h 10 Aug 2005 20:33:46 -0000 1.45 +++ if_dcreg.h 20 Nov 2005 01:07:24 -0000 @@ -473,9 +473,9 @@ (uintptr_t)(sc->dc_ldata->dc_tx_list + i) - (uintptr_t)sc->dc_ldata) #if BYTE_ORDER == BIG_ENDIAN -#define DC_SP_MAC(x) ((x) << 16) +#define DC_SP_MAC(ptr) (be16dec(ptr) << 16) #else -#define DC_SP_MAC(x) (x) +#define DC_SP_MAC(ptr) (le16dec(ptr)) #endif struct dc_list_data {