From owner-svn-soc-all@freebsd.org Fri Jun 17 16:22:08 2016 Return-Path: Delivered-To: svn-soc-all@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 67383A775C4 for ; Fri, 17 Jun 2016 16:22:08 +0000 (UTC) (envelope-from vincenzo@FreeBSD.org) Received: from socsvn.freebsd.org (socsvn.freebsd.org [IPv6:2001:1900:2254:206a::50:2]) (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 429882465 for ; Fri, 17 Jun 2016 16:22:08 +0000 (UTC) (envelope-from vincenzo@FreeBSD.org) Received: from socsvn.freebsd.org ([127.0.1.124]) by socsvn.freebsd.org (8.15.2/8.15.2) with ESMTP id u5HGM8kv020508 for ; Fri, 17 Jun 2016 16:22:08 GMT (envelope-from vincenzo@FreeBSD.org) Received: (from www@localhost) by socsvn.freebsd.org (8.15.2/8.15.2/Submit) id u5HGM7mR020483 for svn-soc-all@FreeBSD.org; Fri, 17 Jun 2016 16:22:07 GMT (envelope-from vincenzo@FreeBSD.org) Date: Fri, 17 Jun 2016 16:22:07 GMT Message-Id: <201606171622.u5HGM7mR020483@socsvn.freebsd.org> X-Authentication-Warning: socsvn.freebsd.org: www set sender to vincenzo@FreeBSD.org using -f From: vincenzo@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r305288 - soc2016/vincenzo/head/sys/dev/netmap MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 17 Jun 2016 16:22:08 -0000 Author: vincenzo Date: Fri Jun 17 16:22:07 2016 New Revision: 305288 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=305288 Log: freebsd: ptnet: rearrange core lock initialization Modified: soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c Modified: soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c ============================================================================== --- soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c Fri Jun 17 16:21:58 2016 (r305287) +++ soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c Fri Jun 17 16:22:07 2016 (r305288) @@ -101,14 +101,19 @@ int kring_id; struct ptnet_ring *ptring; unsigned int kick; + struct mtx lock; + char lock_name[16]; }; +#define PTNET_Q_LOCK(_pq) mtx_lock(&(_pq_->lock) +#define PTNET_Q_UNLOCK(_pq) mtx_unlock(&(_pq_->lock) + struct ptnet_softc { device_t dev; struct ifnet *ifp; struct ifmedia media; - struct mtx core_mtx; - char core_mtx_name[16]; + struct mtx lock; + char lock_name[16]; char hwaddr[ETHER_ADDR_LEN]; /* Mirror of PTFEAT register. */ @@ -133,17 +138,8 @@ * netmap_pt_guest_adapter and have just one instance of that. */ }; -#define PTNET_CORE_LOCK_INIT(_sc) do { \ - snprintf((_sc)->core_mtx_name, sizeof((_sc)->core_mtx_name), \ - "%s", device_get_nameunit(sc->dev)); \ - mtx_init(&(_sc)->core_mtx, (_sc)->core_mtx_name, \ - "ptnet core lock", MTX_DEF); \ - } while (0) - -#define PTNET_CORE_LOCK_FINI(_sc) mtx_destroy(&(_sc)->core_mtx) - -#define PTNET_CORE_LOCK(_sc) mtx_lock(&(_sc)->core_mtx) -#define PTNET_CORE_UNLOCK(_sc) mtx_unlock(&(_sc)->core_mtx) +#define PTNET_CORE_LOCK(_sc) mtx_lock(&(_sc)->lock) +#define PTNET_CORE_UNLOCK(_sc) mtx_unlock(&(_sc)->lock) static int ptnet_probe(device_t); static int ptnet_attach(device_t); @@ -298,6 +294,9 @@ if (i >= num_tx_rings) { pq->kring_id -= num_tx_rings; } + snprintf(pq->lock_name, sizeof(pq->lock_name), "%s-%d", + device_get_nameunit(dev), i); + mtx_init(&pq->lock, pq->lock_name, NULL, MTX_DEF); } err = ptnet_irqs_init(sc); @@ -343,7 +342,9 @@ ifp->if_capenable = ifp->if_capabilities; - PTNET_CORE_LOCK_INIT(sc); + snprintf(sc->lock_name, sizeof(sc->lock_name), + "%s", device_get_nameunit(dev)); + mtx_init(&sc->lock, sc->lock_name, "ptnet core lock", MTX_DEF); sc->backend_regifs = 0; @@ -428,7 +429,7 @@ sc->iomem = NULL; } - PTNET_CORE_LOCK_FINI(sc); + mtx_destroy(&sc->lock); device_printf(dev, "%s() completed\n", __func__);