From owner-cvs-all@FreeBSD.ORG Fri Apr 28 20:08:17 2006 Return-Path: X-Original-To: cvs-all@FreeBSD.org Delivered-To: cvs-all@FreeBSD.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 6AC7416A403; Fri, 28 Apr 2006 20:08:17 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 1767943D48; Fri, 28 Apr 2006 20:08:17 +0000 (GMT) (envelope-from jhb@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k3SK8Gvq045068; Fri, 28 Apr 2006 20:08:16 GMT (envelope-from jhb@repoman.freebsd.org) Received: (from jhb@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k3SK8Gqe045067; Fri, 28 Apr 2006 20:08:16 GMT (envelope-from jhb) Message-Id: <200604282008.k3SK8Gqe045067@repoman.freebsd.org> From: John Baldwin Date: Fri, 28 Apr 2006 20:08:16 +0000 (UTC) To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org X-FreeBSD-CVS-Branch: HEAD Cc: Subject: cvs commit: src/sys/dev/nve if_nve.c X-BeenThere: cvs-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: CVS commit messages for the entire tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 28 Apr 2006 20:08:17 -0000 jhb 2006-04-28 20:08:16 UTC FreeBSD src repository Modified files: sys/dev/nve if_nve.c Log: The nvidia binary blob sometimes defers tx completion notification to the OS dependent layer. Thus, the watchdog timer can go off when the tx engine is working fine but the OS dependent layer just hasn't been called to cleanup finished tx transactions. To workaround this, when the watchdog fires, poke the binary blob to force it to flush any pending tx completions. If this drops the pending tx count to zero then just return without logging a message or resetting the chip. This reportedly fixes the 'device timeout()' errors with at least several NF4 nve(4) parts. Submitted by: Nathan Alexander Whitehorn (code) Submitted by: dg (inspiration for comment and explanation) MFC after: 1 week Revision Changes Path 1.21 +19 -1 src/sys/dev/nve/if_nve.c