From owner-svn-src-head@FreeBSD.ORG Tue Apr 7 16:40:32 2009 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B80961065696; Tue, 7 Apr 2009 16:40:32 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id A5DD78FC38; Tue, 7 Apr 2009 16:40:32 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n37GeW2u014707; Tue, 7 Apr 2009 16:40:32 GMT (envelope-from delphij@svn.freebsd.org) Received: (from delphij@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n37GeWGb014706; Tue, 7 Apr 2009 16:40:32 GMT (envelope-from delphij@svn.freebsd.org) Message-Id: <200904071640.n37GeWGb014706@svn.freebsd.org> From: Xin LI Date: Tue, 7 Apr 2009 16:40:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r190810 - head/sys/dev/hptmv X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Apr 2009 16:40:34 -0000 Author: delphij Date: Tue Apr 7 16:40:31 2009 New Revision: 190810 URL: http://svn.freebsd.org/changeset/base/190810 Log: When multiple cards are present, register a shutdown handler for each card instead of just register one for the first adapter. Without doing this there would be some data loss upon shutdown because data could be ignored when flushing to disk. MFC after: 3 days Modified: head/sys/dev/hptmv/entry.c Modified: head/sys/dev/hptmv/entry.c ============================================================================== --- head/sys/dev/hptmv/entry.c Tue Apr 7 16:38:25 2009 (r190809) +++ head/sys/dev/hptmv/entry.c Tue Apr 7 16:40:31 2009 (r190810) @@ -2138,14 +2138,15 @@ hpt_attach(device_t dev) xpt_action((union ccb *)ccb); free(ccb, M_DEVBUF); - /* Register shutdown handler, and start the work thread. */ - if (device_get_unit(dev) == 0) { - pAdapter->eh = EVENTHANDLER_REGISTER(shutdown_final, - hpt_shutdown, dev, SHUTDOWN_PRI_DEFAULT); - if (pAdapter->eh) - launch_worker_thread(); - else - hpt_printk(("shutdown event registration failed\n")); + /* Register a shutdown handler to flush data for the current adapter */ + pAdapter->eh = EVENTHANDLER_REGISTER(shutdown_final, + hpt_shutdown, dev, SHUTDOWN_PRI_DEFAULT); + if (pAdapter->eh == NULL) { + device_printf(pAdapter->hpt_dev, + "shutdown event registration failed\n"); + } else if (device_get_unit(dev) == 0) { + /* Start the work thread. XXX */ + launch_worker_thread(); } return 0;