Date: Sat, 4 Jun 2016 14:11:32 +0000 (UTC) From: Andrew Rybchenko <arybchik@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r301315 - stable/10/sys/dev/sfxge Message-ID: <201606041411.u54EBWNJ082096@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: arybchik Date: Sat Jun 4 14:11:32 2016 New Revision: 301315 URL: https://svnweb.freebsd.org/changeset/base/301315 Log: MFC r301105 sfxge(4): cope with code duplication on SW events composition Sponsored by: Solarflare Communications, Inc. Modified: stable/10/sys/dev/sfxge/sfxge.h stable/10/sys/dev/sfxge/sfxge_ev.c stable/10/sys/dev/sfxge/sfxge_rx.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/dev/sfxge/sfxge.h ============================================================================== --- stable/10/sys/dev/sfxge/sfxge.h Sat Jun 4 14:09:39 2016 (r301314) +++ stable/10/sys/dev/sfxge/sfxge.h Sat Jun 4 14:11:32 2016 (r301315) @@ -129,6 +129,26 @@ enum sfxge_sw_ev { #define SFXGE_SW_EV_MAGIC(_sw_ev) \ (SFXGE_MAGIC_RESERVED | ((_sw_ev) << SFXGE_MAGIC_DMAQ_LABEL_WIDTH)) +static inline uint16_t +sfxge_sw_ev_mk_magic(enum sfxge_sw_ev sw_ev, unsigned int label) +{ + KASSERT((label & SFXGE_MAGIC_DMAQ_LABEL_MASK) == label, + ("(label & SFXGE_MAGIC_DMAQ_LABEL_MASK) != label")); + return SFXGE_SW_EV_MAGIC(sw_ev) | label; +} + +static inline uint16_t +sfxge_sw_ev_rxq_magic(enum sfxge_sw_ev sw_ev, struct sfxge_rxq *rxq) +{ + return sfxge_sw_ev_mk_magic(sw_ev, 0); +} + +static inline uint16_t +sfxge_sw_ev_txq_magic(enum sfxge_sw_ev sw_ev, struct sfxge_txq *txq) +{ + return sfxge_sw_ev_mk_magic(sw_ev, txq->type); +} + enum sfxge_evq_state { SFXGE_EVQ_UNINITIALIZED = 0, SFXGE_EVQ_INITIALIZED, Modified: stable/10/sys/dev/sfxge/sfxge_ev.c ============================================================================== --- stable/10/sys/dev/sfxge/sfxge_ev.c Sat Jun 4 14:09:39 2016 (r301314) +++ stable/10/sys/dev/sfxge/sfxge_ev.c Sat Jun 4 14:11:32 2016 (r301315) @@ -202,7 +202,6 @@ sfxge_ev_rxq_flush_done(void *arg, uint3 struct sfxge_softc *sc; struct sfxge_rxq *rxq; unsigned int index; - unsigned int label; uint16_t magic; evq = (struct sfxge_evq *)arg; @@ -221,11 +220,7 @@ sfxge_ev_rxq_flush_done(void *arg, uint3 } evq = sc->evq[index]; - - label = 0; - KASSERT((label & SFXGE_MAGIC_DMAQ_LABEL_MASK) == label, - ("(label & SFXGE_MAGIC_DMAQ_LABEL_MASK) != level")); - magic = SFXGE_SW_EV_MAGIC(SFXGE_SW_EV_RX_QFLUSH_DONE) | label; + magic = sfxge_sw_ev_rxq_magic(SFXGE_SW_EV_RX_QFLUSH_DONE, rxq); KASSERT(evq->init_state == SFXGE_EVQ_STARTED, ("evq not started")); @@ -241,7 +236,6 @@ sfxge_ev_rxq_flush_failed(void *arg, uin struct sfxge_softc *sc; struct sfxge_rxq *rxq; unsigned int index; - unsigned int label; uint16_t magic; evq = (struct sfxge_evq *)arg; @@ -255,11 +249,7 @@ sfxge_ev_rxq_flush_failed(void *arg, uin /* Resend a software event on the correct queue */ index = rxq->index; evq = sc->evq[index]; - - label = 0; - KASSERT((label & SFXGE_MAGIC_DMAQ_LABEL_MASK) == label, - ("(label & SFXGE_MAGIC_DMAQ_LABEL_MASK) != label")); - magic = SFXGE_SW_EV_MAGIC(SFXGE_SW_EV_RX_QFLUSH_FAILED) | label; + magic = sfxge_sw_ev_rxq_magic(SFXGE_SW_EV_RX_QFLUSH_FAILED, rxq); KASSERT(evq->init_state == SFXGE_EVQ_STARTED, ("evq not started")); @@ -326,7 +316,6 @@ sfxge_ev_txq_flush_done(void *arg, uint3 struct sfxge_evq *evq; struct sfxge_softc *sc; struct sfxge_txq *txq; - unsigned int label; uint16_t magic; evq = (struct sfxge_evq *)arg; @@ -346,11 +335,7 @@ sfxge_ev_txq_flush_done(void *arg, uint3 /* Resend a software event on the correct queue */ evq = sc->evq[txq->evq_index]; - - label = txq->type; - KASSERT((label & SFXGE_MAGIC_DMAQ_LABEL_MASK) == label, - ("(label & SFXGE_MAGIC_DMAQ_LABEL_MASK) != label")); - magic = SFXGE_SW_EV_MAGIC(SFXGE_SW_EV_TX_QFLUSH_DONE) | label; + magic = sfxge_sw_ev_txq_magic(SFXGE_SW_EV_TX_QFLUSH_DONE, txq); KASSERT(evq->init_state == SFXGE_EVQ_STARTED, ("evq not started")); Modified: stable/10/sys/dev/sfxge/sfxge_rx.c ============================================================================== --- stable/10/sys/dev/sfxge/sfxge_rx.c Sat Jun 4 14:09:39 2016 (r301314) +++ stable/10/sys/dev/sfxge/sfxge_rx.c Sat Jun 4 14:11:32 2016 (r301315) @@ -174,17 +174,12 @@ sfxge_rx_post_refill(void *arg) struct sfxge_softc *sc; unsigned int index; struct sfxge_evq *evq; - unsigned int label; uint16_t magic; sc = rxq->sc; index = rxq->index; evq = sc->evq[index]; - - label = 0; - KASSERT((label & SFXGE_MAGIC_DMAQ_LABEL_MASK) == label, - ("(label & SFXGE_MAGIC_DMAQ_LABEL_MASK) != level")); - magic = SFXGE_SW_EV_MAGIC(SFXGE_SW_EV_RX_QREFILL) | label; + magic = sfxge_sw_ev_rxq_magic(SFXGE_SW_EV_RX_QREFILL, rxq); /* This is guaranteed due to the start/stop order of rx and ev */ KASSERT(evq->init_state == SFXGE_EVQ_STARTED,
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201606041411.u54EBWNJ082096>