Index: if_msk.c =================================================================== RCS file: /home/ncvs/src/sys/dev/msk/if_msk.c,v retrieving revision 1.8 diff -u -r1.8 if_msk.c --- if_msk.c 9 Jan 2007 01:31:22 -0000 1.8 +++ if_msk.c 13 Feb 2007 05:43:55 -0000 @@ -3029,11 +3029,13 @@ cons = sc_if->msk_cdata.msk_rx_cons; do { rxlen = status >> 16; - if ((status & GMR_FS_VLAN) != 0) + if ((status & GMR_FS_VLAN) != 0 && + (ifp->if_capenable & IFCAP_VLAN_HWTAGGING) != 0) rxlen -= ETHER_VLAN_ENCAP_LEN; if (len > sc_if->msk_framesize || ((status & GMR_FS_ANY_ERR) != 0) || ((status & GMR_FS_RX_OK) == 0) || (rxlen != len)) { + printf("0x%08x : %d : %d\n", status, rxlen, len); /* Don't count flow-control packet as errors. */ if ((status & GMR_FS_GOOD_FC) == 0) ifp->if_ierrors++; @@ -3081,7 +3083,8 @@ cons = sc_if->msk_cdata.msk_rx_cons; do { rxlen = status >> 16; - if ((status & GMR_FS_VLAN) != 0) + if ((status & GMR_FS_VLAN) != 0 && + (ifp->if_capenable & IFCAP_VLAN_HWTAGGING) != 0) rxlen -= ETHER_VLAN_ENCAP_LEN; if (len > sc_if->msk_framesize || ((status & GMR_FS_ANY_ERR) != 0) ||