From owner-cvs-src@FreeBSD.ORG Thu Oct 18 01:28:30 2007 Return-Path: Delivered-To: cvs-src@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9CFE616A418; Thu, 18 Oct 2007 01:28:30 +0000 (UTC) (envelope-from thompsa@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 9301F13C447; Thu, 18 Oct 2007 01:28:30 +0000 (UTC) (envelope-from thompsa@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l9I1SUkg081170; Thu, 18 Oct 2007 01:28:30 GMT (envelope-from thompsa@repoman.freebsd.org) Received: (from thompsa@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l9I1SURY081169; Thu, 18 Oct 2007 01:28:30 GMT (envelope-from thompsa) Message-Id: <200710180128.l9I1SURY081169@repoman.freebsd.org> From: Andrew Thompson Date: Thu, 18 Oct 2007 01:28:30 +0000 (UTC) To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org X-FreeBSD-CVS-Branch: RELENG_7 Cc: Subject: cvs commit: src/sys/net if_lagg.c if_lagg.h X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 18 Oct 2007 01:28:30 -0000 thompsa 2007-10-18 01:28:30 UTC FreeBSD src repository Modified files: (Branch: RELENG_7) sys/net if_lagg.c if_lagg.h Log: MFC if_lagg.c r1.20, if_lagg.h r1.11 Fix two panics in lagg. 1. The locking was changed to shared but roundrobin mode still updated a pointer in the softc with the next tx interface to use. This will panic under high load. Change this to an atomically incremented sequence number in order to choose the tx port in round robin. 2. IFQ_HANDOFF will free the mbuf if the queue is full, this will then be freed again by lagg_start() and panic. Reorganised the error handling and freeing to fix this. Approved by: re (kensmith) Revision Changes Path 1.19.2.1 +33 -36 src/sys/net/if_lagg.c 1.10.2.1 +1 -0 src/sys/net/if_lagg.h