From owner-svn-src-head@freebsd.org Fri Jun 9 15:21:30 2017 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 07ACBBF7628; Fri, 9 Jun 2017 15:21:30 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 8A35B70BA2; Fri, 9 Jun 2017 15:21:29 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v59FLSc6037425; Fri, 9 Jun 2017 15:21:28 GMT (envelope-from avg@FreeBSD.org) Received: (from avg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v59FLSbl037424; Fri, 9 Jun 2017 15:21:28 GMT (envelope-from avg@FreeBSD.org) Message-Id: <201706091521.v59FLSbl037424@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: avg set sender to avg@FreeBSD.org using -f From: Andriy Gapon Date: Fri, 9 Jun 2017 15:21:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r319747 - head/sys/dev/aacraid X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.23 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: Fri, 09 Jun 2017 15:21:30 -0000 Author: avg Date: Fri Jun 9 15:21:28 2017 New Revision: 319747 URL: https://svnweb.freebsd.org/changeset/base/319747 Log: remove an unrelated local change from r319746 MFC after: 1 day X-MFC with: r319746 Modified: head/sys/dev/aacraid/aacraid.c Modified: head/sys/dev/aacraid/aacraid.c ============================================================================== --- head/sys/dev/aacraid/aacraid.c Fri Jun 9 15:16:39 2017 (r319746) +++ head/sys/dev/aacraid/aacraid.c Fri Jun 9 15:21:28 2017 (r319747) @@ -670,10 +670,12 @@ aac_alloc(struct aac_softc *sc) TAILQ_INIT(&sc->aac_fibmap_tqh); sc->aac_commands = malloc(sc->aac_max_fibs * sizeof(struct aac_command), M_AACRAIDBUF, M_WAITOK|M_ZERO); + mtx_lock(&sc->aac_io_lock); while (sc->total_fibs < sc->aac_max_fibs) { if (aac_alloc_commands(sc) != 0) break; } + mtx_unlock(&sc->aac_io_lock); if (sc->total_fibs == 0) return (ENOMEM); @@ -1044,9 +1046,7 @@ aac_command_thread(struct aac_softc *sc) * will grab Giant, and would result in an LOR. */ if ((sc->aifflags & AAC_AIFFLAGS_ALLOCFIBS) != 0) { - mtx_unlock(&sc->aac_io_lock); aac_alloc_commands(sc); - mtx_lock(&sc->aac_io_lock); sc->aifflags &= ~AAC_AIFFLAGS_ALLOCFIBS; aacraid_startio(sc); } @@ -1193,6 +1193,7 @@ aac_alloc_commands(struct aac_softc *sc) u_int32_t maxsize; fwprintf(sc, HBA_FLAGS_DBG_FUNCTION_ENTRY_B, ""); + mtx_assert(&sc->aac_io_lock, MA_OWNED); if (sc->total_fibs + sc->aac_max_fibs_alloc > sc->aac_max_fibs) return (ENOMEM); @@ -1201,6 +1202,7 @@ aac_alloc_commands(struct aac_softc *sc) if (fm == NULL) return (ENOMEM); + mtx_unlock(&sc->aac_io_lock); /* allocate the FIBs in DMAable memory and load them */ if (bus_dmamem_alloc(sc->aac_fib_dmat, (void **)&fm->aac_fibs, BUS_DMA_NOWAIT, &fm->aac_fibmap)) { @@ -1218,6 +1220,7 @@ aac_alloc_commands(struct aac_softc *sc) (void)bus_dmamap_load(sc->aac_fib_dmat, fm->aac_fibmap, fm->aac_fibs, sc->aac_max_fibs_alloc * maxsize, aac_map_command_helper, &fibphys, 0); + mtx_lock(&sc->aac_io_lock); /* initialize constant fields in the command structure */ bzero(fm->aac_fibs, sc->aac_max_fibs_alloc * maxsize); @@ -1247,12 +1250,8 @@ aac_alloc_commands(struct aac_softc *sc) if ((error = bus_dmamap_create(sc->aac_buffer_dmat, 0, &cm->cm_datamap)) != 0) break; - if (sc->aac_max_fibs <= 1 || - sc->aac_max_fibs - sc->total_fibs > 1) { - mtx_lock(&sc->aac_io_lock); + if (sc->aac_max_fibs <= 1 || sc->aac_max_fibs - sc->total_fibs > 1) aacraid_release_command(cm); - mtx_unlock(&sc->aac_io_lock); - } sc->total_fibs++; } @@ -1501,7 +1500,6 @@ aac_unmap_command(struct aac_command *cm) if (!(cm->cm_flags & AAC_CMD_MAPPED)) return; - mtx_assert(&sc->aac_io_lock, MA_OWNED); if (cm->cm_datalen != 0 && cm->cm_passthr_dmat == 0) { if (cm->cm_flags & AAC_CMD_DATAIN) bus_dmamap_sync(sc->aac_buffer_dmat, cm->cm_datamap,