svn commit: r260425 - stable/9/sys/dev/bxe
Eric Davis
edavis at FreeBSD.org
Tue Jan 7 23:20:22 UTC 2014
Author: edavis
Date: Tue Jan 7 23:20:21 2014
New Revision: 260425
URL: http://svnweb.freebsd.org/changeset/base/260425
Log:
Merged r260415 from head.
Approved by: davidcd
Modified:
stable/9/sys/dev/bxe/bxe.c
stable/9/sys/dev/bxe/ecore_hsi.h
Directory Properties:
stable/9/sys/ (props changed)
stable/9/sys/dev/ (props changed)
Modified: stable/9/sys/dev/bxe/bxe.c
==============================================================================
--- stable/9/sys/dev/bxe/bxe.c Tue Jan 7 23:14:55 2014 (r260424)
+++ stable/9/sys/dev/bxe/bxe.c Tue Jan 7 23:20:21 2014 (r260425)
@@ -34,7 +34,7 @@
#include <sys/cdefs.h>
__FBSDID("$FreeBSD$");
-#define BXE_DRIVER_VERSION "1.78.76"
+#define BXE_DRIVER_VERSION "1.78.77"
#include "bxe.h"
#include "ecore_sp.h"
@@ -5509,10 +5509,31 @@ bxe_tx_encap(struct bxe_fastpath *fp, st
fp->eth_q_stats.tx_window_violation_std++;
}
- /* XXX I don't like this, change to double copy packet */
+ /* lets try to defragment this mbuf */
+ fp->eth_q_stats.mbuf_defrag_attempts++;
- /* no sense trying to defrag again, just drop the frame */
- rc = ENODEV;
+ m0 = m_defrag(*m_head, M_DONTWAIT);
+ if (m0 == NULL) {
+ fp->eth_q_stats.mbuf_defrag_failures++;
+ /* Ugh, just drop the frame... :( */
+ rc = ENOBUFS;
+ } else {
+ /* defrag successful, try mapping again */
+ *m_head = m0;
+ error = bus_dmamap_load_mbuf_sg(fp->tx_mbuf_tag,
+ tx_buf->m_map, m0,
+ segs, &nsegs, BUS_DMA_NOWAIT);
+ if (error) {
+ fp->eth_q_stats.tx_dma_mapping_failure++;
+ /* No sense in trying to defrag/copy chain, drop it. :( */
+ rc = error;
+ }
+
+ /* if the chain is still too long then drop it */
+ if (__predict_false(nsegs > 12)) {
+ rc = ENODEV;
+ }
+ }
}
bxe_tx_encap_continue:
Modified: stable/9/sys/dev/bxe/ecore_hsi.h
==============================================================================
--- stable/9/sys/dev/bxe/ecore_hsi.h Tue Jan 7 23:14:55 2014 (r260424)
+++ stable/9/sys/dev/bxe/ecore_hsi.h Tue Jan 7 23:20:21 2014 (r260425)
@@ -1305,6 +1305,13 @@ struct extended_dev_info_shared_cfg {
#define EXTENDED_DEV_INFO_SHARED_CFG_SRIOV_SHOW_MENU 0x00000000
#define EXTENDED_DEV_INFO_SHARED_CFG_SRIOV_HIDE_MENU 0x00000200
+ /* Overide PCIE revision ID when enabled the,
+ revision ID will set to B1=='0x11' */
+ #define EXTENDED_DEV_INFO_SHARED_CFG_OVR_REV_ID_MASK 0x00000400
+ #define EXTENDED_DEV_INFO_SHARED_CFG_OVR_REV_ID_SHIFT 10
+ #define EXTENDED_DEV_INFO_SHARED_CFG_OVR_REV_ID_DISABLED 0x00000000
+ #define EXTENDED_DEV_INFO_SHARED_CFG_OVR_REV_ID_ENABLED 0x00000400
+
/* Threshold in celcius for max continuous operation */
uint32_t temperature_report; /* 0x4014 */
#define EXTENDED_DEV_INFO_SHARED_CFG_TEMP_MCOT_MASK 0x0000007F
More information about the svn-src-stable-9
mailing list