net/sfc/base: remove probes when a Tx queue is too full
authorMark Spender <mspender@solarflare.com>
Mon, 10 Sep 2018 09:33:13 +0000 (10:33 +0100)
committerFerruh Yigit <ferruh.yigit@intel.com>
Thu, 27 Sep 2018 23:41:02 +0000 (01:41 +0200)
No need for probe messages when a TxQ is too full for a post to be done.

Existing drivers check if there is room in the queue before posting
descriptors, even though efx_tx_qdesc_post() does the check itself.

The new SFN Windows driver doesn't perform the check before calling
efx_tx_qdesc_post(), but that means these probes can get frequently
printed out. It's normal driver behaviour so there's no need to print
an error.

Signed-off-by: Mark Spender <mspender@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
drivers/net/sfc/base/ef10_tx.c
drivers/net/sfc/base/efx_tx.c

index e74d395..4d77d76 100644 (file)
@@ -541,12 +541,9 @@ ef10_tx_qdesc_post(
 {
        unsigned int added = *addedp;
        unsigned int i;
-       efx_rc_t rc;
 
-       if (added - completed + ndescs > EFX_TXQ_LIMIT(etp->et_mask + 1)) {
-               rc = ENOSPC;
-               goto fail1;
-       }
+       if (added - completed + ndescs > EFX_TXQ_LIMIT(etp->et_mask + 1))
+               return (ENOSPC);
 
        for (i = 0; i < ndescs; i++) {
                efx_desc_t *edp = &ed[i];
@@ -566,11 +563,6 @@ ef10_tx_qdesc_post(
 
        *addedp = added;
        return (0);
-
-fail1:
-       EFSYS_PROBE1(fail1, efx_rc_t, rc);
-
-       return (rc);
 }
 
        void
index da37580..bf1180a 100644 (file)
@@ -572,19 +572,10 @@ efx_tx_qdesc_post(
 {
        efx_nic_t *enp = etp->et_enp;
        const efx_tx_ops_t *etxop = enp->en_etxop;
-       efx_rc_t rc;
 
        EFSYS_ASSERT3U(etp->et_magic, ==, EFX_TXQ_MAGIC);
 
-       if ((rc = etxop->etxo_qdesc_post(etp, ed,
-           ndescs, completed, addedp)) != 0)
-               goto fail1;
-
-       return (0);
-
-fail1:
-       EFSYS_PROBE1(fail1, efx_rc_t, rc);
-       return (rc);
+       return (etxop->etxo_qdesc_post(etp, ed, ndescs, completed, addedp));
 }
 
        void
@@ -763,10 +754,9 @@ siena_tx_qpost(
 {
        unsigned int added = *addedp;
        unsigned int i;
-       int rc = ENOSPC;
 
        if (added - completed + ndescs > EFX_TXQ_LIMIT(etp->et_mask + 1))
-               goto fail1;
+               return (ENOSPC);
 
        for (i = 0; i < ndescs; i++) {
                efx_buffer_t *ebp = &eb[i];
@@ -788,11 +778,6 @@ siena_tx_qpost(
 
        *addedp = added;
        return (0);
-
-fail1:
-       EFSYS_PROBE1(fail1, efx_rc_t, rc);
-
-       return (rc);
 }
 
 static         void