diff --git a/sys/dev/em/if_em.c b/sys/dev/em/if_em.c index 0033c501d850..a477cf0ac344 100644 --- a/sys/dev/em/if_em.c +++ b/sys/dev/em/if_em.c @@ -2579,7 +2579,7 @@ em_allocate_transmit_structures(struct adapter *adapter) if ((adapter->hw.mac_type > em_82544) && (adapter->hw.mac_type != em_82547)) { size = EM_TSO_SIZE; - segsize = 4096; /* page size isn't always 4k */ + segsize = EM_TSO_PCIE_SEGMENT_SIZE; } if ((error = bus_dma_tag_create(bus_get_dma_tag(dev), /* parent */ diff --git a/sys/dev/em/if_em.h b/sys/dev/em/if_em.h index 54b3f1d3431d..42b85a5bc027 100644 --- a/sys/dev/em/if_em.h +++ b/sys/dev/em/if_em.h @@ -181,6 +181,12 @@ POSSIBILITY OF SUCH DAMAGE. */ /* #define EM_MASTER_SLAVE 2 */ + +/* + * Limitation of some PCIe chipsets when using TSO + */ +#define EM_TSO_PCIE_SEGMENT_SIZE 4096 + /* Tunables -- End */ #define AUTONEG_ADV_DEFAULT (ADVERTISE_10_HALF | ADVERTISE_10_FULL | \