From owner-freebsd-acpi@FreeBSD.ORG Mon Apr 7 18:55:35 2008 Return-Path: Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 91E7C106568B; Mon, 7 Apr 2008 18:55:35 +0000 (UTC) (envelope-from takawata@init-main.com) Received: from sana.init-main.com (unknown [IPv6:2001:240:28::1]) by mx1.freebsd.org (Postfix) with ESMTP id 3005F8FC23; Mon, 7 Apr 2008 18:55:35 +0000 (UTC) (envelope-from takawata@init-main.com) Received: from ns.init-main.com (localhost [127.0.0.1]) by sana.init-main.com (8.14.1/8.13.8) with ESMTP id m37IfukE027475; Tue, 8 Apr 2008 03:41:56 +0900 (JST) (envelope-from takawata@ns.init-main.com) Message-Id: <200804071841.m37IfukE027475@sana.init-main.com> To: jfv@freebsd.org Date: Tue, 08 Apr 2008 03:41:56 +0900 From: Takanori Watanabe Cc: freebsd-acpi@freebsd.org Subject: if_em locking issue in resume path. X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Apr 2008 18:55:35 -0000 This patch resolve a problem which will cause lock assertion in resume path. Comment? --- if_em.c.~1.190.~ 2008-02-29 21:50:10.000000000 +0000 +++ if_em.c 2008-04-08 03:04:05.000000000 +0000 @@ -915,12 +915,13 @@ EM_CORE_LOCK(adapter); em_init_locked(adapter); em_init_manageability(adapter); + EM_CORE_UNLOCK(adapter); + EM_TX_LOCK(adapter); if ((ifp->if_flags & IFF_UP) && (ifp->if_drv_flags & IFF_DRV_RUNNING)) em_start_locked(ifp); - - EM_CORE_UNLOCK(adapter); + EM_TX_UNLOCK(adapter); return bus_generic_resume(dev); }