From owner-freebsd-net@FreeBSD.ORG Sat Apr 12 10:16:18 2014 Return-Path: Delivered-To: net@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 21338209 for ; Sat, 12 Apr 2014 10:16:18 +0000 (UTC) Received: from shelob.oktetlabs.ru (shelob.oktetlabs.ru [188.134.15.200]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 9813C15C9 for ; Sat, 12 Apr 2014 10:16:17 +0000 (UTC) Received: from [192.168.38.17] (aros.oktetlabs.ru [192.168.38.17]) (using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by shelob.oktetlabs.ru (Postfix) with ESMTPSA id 5C52C7F540; Sat, 12 Apr 2014 14:16:13 +0400 (MSK) X-DKIM: Sendmail DKIM Filter v2.8.2 shelob.oktetlabs.ru 5C52C7F540 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=oktetlabs.ru; s=default; t=1397297773; bh=bPNwFzcmhaq8nqjaP9kJdfEyKJ/TLF1+HwjTw5Doc7s=; l=3196; h=Message-ID:Date:From:MIME-Version:To:CC:Subject:Content-Type; b=qyc2gDXQYcJB2D2yYM/deX/d/toUBJiCArnYngIq2LArat8Um8WmInwsXNPpDa+O/ 7seN+utsTKG87tfdNnebpHcjaOL2KjoYOGwi/q37TlmDEREZWeO/Q1W+LtgKSXi5pa X9Xy7sFNLyeXUH0uEJq5kGO/0Tbyl290ih5ayChw= Message-ID: <5349126E.2060209@oktetlabs.ru> Date: Sat, 12 Apr 2014 14:16:14 +0400 From: Andrew Rybchenko Organization: OKTET Labs User-Agent: Mozilla/5.0 (X11; Linux i686 on x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.4.0 MIME-Version: 1.0 To: net@FreeBSD.org Subject: [PATCH 2/3] sfxge: TXQ index (not label) comes from FW in flush done event Content-Type: multipart/mixed; boundary="------------010101060407030209010801" X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 Apr 2014 10:16:18 -0000 This is a multi-part message in MIME format. --------------010101060407030209010801 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Change the second argument name of the efx_txq_flush_done_ev_t prototype to highlight that TXQ index (not label) comes from FW in flush done event. --------------010101060407030209010801 Content-Type: text/x-patch; name="2-sfxge-txq_index.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="2-sfxge-txq_index.patch" sfxge: TXQ index (not label) comes from FW in flush done event Change the second argument name of the efx_txq_flush_done_ev_t prototype to highlight that TXQ index (not label) comes from FW in flush done event. Submitted by: Andrew Rybchenko Sponsored by: Solarflare Communications, Inc. diff -r 74ea9e0f7842 -r 42f27b037ebb sys/dev/sfxge/common/efx.h --- a/sys/dev/sfxge/common/efx.h Thu Apr 10 14:23:34 2014 +0400 +++ b/sys/dev/sfxge/common/efx.h Thu Apr 10 14:23:36 2014 +0400 @@ -1389,7 +1389,7 @@ typedef __checkReturn boolean_t (*efx_txq_flush_done_ev_t)( __in_opt void *arg, - __in uint32_t label); + __in uint32_t txq_index); typedef __checkReturn boolean_t (*efx_software_ev_t)( diff -r 74ea9e0f7842 -r 42f27b037ebb sys/dev/sfxge/common/efx_ev.c --- a/sys/dev/sfxge/common/efx_ev.c Thu Apr 10 14:23:34 2014 +0400 +++ b/sys/dev/sfxge/common/efx_ev.c Thu Apr 10 14:23:36 2014 +0400 @@ -406,16 +406,16 @@ switch (EFX_QWORD_FIELD(*eqp, FSF_AZ_DRIVER_EV_SUBCODE)) { case FSE_AZ_TX_DESCQ_FLS_DONE_EV: { - uint32_t label; + uint32_t txq_index; EFX_EV_QSTAT_INCR(eep, EV_DRIVER_TX_DESCQ_FLS_DONE); - label = EFX_QWORD_FIELD(*eqp, FSF_AZ_DRIVER_EV_SUBDATA); + txq_index = EFX_QWORD_FIELD(*eqp, FSF_AZ_DRIVER_EV_SUBDATA); - EFSYS_PROBE1(tx_descq_fls_done, uint32_t, label); + EFSYS_PROBE1(tx_descq_fls_done, uint32_t, txq_index); EFSYS_ASSERT(eecp->eec_txq_flush_done != NULL); - should_abort = eecp->eec_txq_flush_done(arg, label); + should_abort = eecp->eec_txq_flush_done(arg, txq_index); break; } diff -r 74ea9e0f7842 -r 42f27b037ebb sys/dev/sfxge/sfxge_ev.c --- a/sys/dev/sfxge/sfxge_ev.c Thu Apr 10 14:23:34 2014 +0400 +++ b/sys/dev/sfxge/sfxge_ev.c Thu Apr 10 14:23:36 2014 +0400 @@ -260,16 +260,17 @@ } static boolean_t -sfxge_ev_txq_flush_done(void *arg, uint32_t label) +sfxge_ev_txq_flush_done(void *arg, uint32_t txq_index) { struct sfxge_evq *evq; struct sfxge_softc *sc; struct sfxge_txq *txq; + unsigned int label; uint16_t magic; evq = (struct sfxge_evq *)arg; sc = evq->sc; - txq = sc->txq[label]; + txq = sc->txq[txq_index]; KASSERT(txq != NULL, ("txq == NULL")); KASSERT(txq->init_state == SFXGE_TXQ_INITIALIZED, @@ -278,6 +279,7 @@ /* Resend a software event on the correct queue */ evq = sc->evq[txq->evq_index]; + label = txq_index; KASSERT((label & SFXGE_MAGIC_DMAQ_LABEL_MASK) == label, ("(label & SFXGE_MAGIC_DMAQ_LABEL_MASK) != label")); magic = SFXGE_MAGIC_TX_QFLUSH_DONE | label; --------------010101060407030209010801--