Page MenuHomeFreeBSD

D2552.id5400.diff
No OneTemporary

D2552.id5400.diff

Index: sys/dev/sfxge/sfxge_tx.c
===================================================================
--- sys/dev/sfxge/sfxge_tx.c
+++ sys/dev/sfxge/sfxge_tx.c
@@ -606,9 +606,8 @@
int rc;
if (!SFXGE_LINK_UP(txq->sc)) {
- rc = ENETDOWN;
atomic_add_long(&txq->netdown_drops, 1);
- goto fail;
+ return (ENETDOWN);
}
/*
@@ -625,12 +624,12 @@
rc = sfxge_tx_qdpl_put_locked(txq, m);
if (rc != 0) {
SFXGE_TXQ_UNLOCK(txq);
- goto fail;
+ return (rc);
}
} else {
rc = sfxge_tx_qdpl_put_unlocked(txq, m);
if (rc != 0)
- goto fail;
+ return (rc);
/*
* Try to grab the lock again.
@@ -649,10 +648,6 @@
}
return (0);
-
-fail:
- m_freem(m);
- return (rc);
}
static void
@@ -730,6 +725,8 @@
}
rc = sfxge_tx_packet_add(txq, m);
+ if (rc != 0)
+ m_freem(m);
return (rc);
}

File Metadata

Mime Type
text/plain
Expires
Wed, Aug 26, 3:24 PM (4 h, 43 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
37306933
Default Alt Text
D2552.id5400.diff (832 B)

Event Timeline