Date: Fri, 17 Jun 2016 16:22:07 GMT From: vincenzo@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r305288 - soc2016/vincenzo/head/sys/dev/netmap Message-ID: <201606171622.u5HGM7mR020483@socsvn.freebsd.org>
next in thread | raw e-mail | index | archive | help
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__);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201606171622.u5HGM7mR020483>