From owner-cvs-src-old@FreeBSD.ORG Thu Mar 19 00:54:09 2009 Return-Path: Delivered-To: cvs-src-old@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B3BD4106564A for ; Thu, 19 Mar 2009 00:54:09 +0000 (UTC) (envelope-from yongari@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id A05EB8FC12 for ; Thu, 19 Mar 2009 00:54:09 +0000 (UTC) (envelope-from yongari@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n2J0s9qn057211 for ; Thu, 19 Mar 2009 00:54:09 GMT (envelope-from yongari@repoman.freebsd.org) Received: (from svn2cvs@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n2J0s9vb057210 for cvs-src-old@freebsd.org; Thu, 19 Mar 2009 00:54:09 GMT (envelope-from yongari@repoman.freebsd.org) Message-Id: <200903190054.n2J0s9vb057210@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: svn2cvs set sender to yongari@repoman.freebsd.org using -f From: Pyun YongHyeon Date: Thu, 19 Mar 2009 00:52:30 +0000 (UTC) To: cvs-src-old@freebsd.org X-FreeBSD-CVS-Branch: RELENG_7 Subject: cvs commit: src/sys/dev/sis if_sis.c if_sisreg.h X-BeenThere: cvs-src-old@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: **OBSOLETE** CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 19 Mar 2009 00:54:10 -0000 yongari 2009-03-19 00:52:30 UTC FreeBSD src repository Modified files: (Branch: RELENG_7) sys/dev/sis if_sis.c if_sisreg.h Log: SVN rev 190008 on 2009-03-19 00:52:30Z by yongari MFC r185784: Fix a long standing VLAN tagged frame handling bug. When VLAN tagged frame is received the hardware sets 'LONG' bit of Rx status word. It is always set when the size of received frame exceeded 1518 bytes, including CRC. This VLAN tagged frame clears 'OK' bit of Rx status word such that driver should not rely on 'OK' bit of Rx status word to pass the VLAN tagged frame to upper stack. To fix the bug, don't use SIS_CMDSTS_PKT_OK for Rx error check and introduce SIS_RXSTAT_ERROR macro that checks Rx errors. If we are configured to accept VLAN tagged frames and the received frame size is less than or equal to maximum allowed length of VLAN tagged frame, clear 'LONG' bit of Rx status word before checking Rx errors. Reported by: Vladimir Ermako < samflanker <> gmail DOT com > Tested by: Vladimir Ermako < samflanker <> gmail DOT com > Revision Changes Path 1.7.2.2 +5 -1 src/sys/dev/sis/if_sis.c 1.2.2.2 +5 -0 src/sys/dev/sis/if_sisreg.h