Deleted Added
full compact
sfxge_tx.c (280592) sfxge_tx.c (280596)
1/*-
2 * Copyright (c) 2010-2011 Solarflare Communications, Inc.
3 * All rights reserved.
4 *
5 * This software was developed in part by Philip Paeps under contract for
6 * Solarflare Communications, Inc.
7 *
8 * Redistribution and use in source and binary forms, with or without

--- 29 unchanged lines hidden (view full) ---

38 *
39 * So, event queue plus label mapping to Tx queue index is:
40 * if event queue index is 0, TxQ-index = TxQ-label * [0..SFXGE_TXQ_NTYPES)
41 * else TxQ-index = SFXGE_TXQ_NTYPES + EvQ-index - 1
42 * See sfxge_get_txq_by_label() sfxge_ev.c
43 */
44
45#include <sys/cdefs.h>
1/*-
2 * Copyright (c) 2010-2011 Solarflare Communications, Inc.
3 * All rights reserved.
4 *
5 * This software was developed in part by Philip Paeps under contract for
6 * Solarflare Communications, Inc.
7 *
8 * Redistribution and use in source and binary forms, with or without

--- 29 unchanged lines hidden (view full) ---

38 *
39 * So, event queue plus label mapping to Tx queue index is:
40 * if event queue index is 0, TxQ-index = TxQ-label * [0..SFXGE_TXQ_NTYPES)
41 * else TxQ-index = SFXGE_TXQ_NTYPES + EvQ-index - 1
42 * See sfxge_get_txq_by_label() sfxge_ev.c
43 */
44
45#include <sys/cdefs.h>
46__FBSDID("$FreeBSD: stable/10/sys/dev/sfxge/sfxge_tx.c 280592 2015-03-25 13:14:50Z arybchik $");
46__FBSDID("$FreeBSD: stable/10/sys/dev/sfxge/sfxge_tx.c 280596 2015-03-25 13:18:51Z arybchik $");
47
48#include <sys/types.h>
49#include <sys/mbuf.h>
50#include <sys/smp.h>
51#include <sys/socket.h>
52#include <sys/sysctl.h>
53#include <sys/syslog.h>
54

--- 251 unchanged lines hidden (view full) ---

306 int rc;
307 int i;
308
309 KASSERT(!txq->blocked, ("txq->blocked"));
310
311 if (mbuf->m_pkthdr.csum_flags & CSUM_TSO)
312 prefetch_read_many(mbuf->m_data);
313
47
48#include <sys/types.h>
49#include <sys/mbuf.h>
50#include <sys/smp.h>
51#include <sys/socket.h>
52#include <sys/sysctl.h>
53#include <sys/syslog.h>
54

--- 251 unchanged lines hidden (view full) ---

306 int rc;
307 int i;
308
309 KASSERT(!txq->blocked, ("txq->blocked"));
310
311 if (mbuf->m_pkthdr.csum_flags & CSUM_TSO)
312 prefetch_read_many(mbuf->m_data);
313
314 if (txq->init_state != SFXGE_TXQ_STARTED) {
314 if (__predict_false(txq->init_state != SFXGE_TXQ_STARTED)) {
315 rc = EINTR;
316 goto reject;
317 }
318
319 /* Load the packet for DMA. */
320 id = txq->added & txq->ptr_mask;
321 stmp = &txq->stmp[id];
322 rc = bus_dmamap_load_mbuf_sg(txq->packet_dma_tag, stmp->map,

--- 814 unchanged lines hidden (view full) ---

1137 struct sfxge_softc *sc;
1138 struct sfxge_evq *evq;
1139
1140 sc = txq->sc;
1141 evq = sc->evq[txq->evq_index];
1142
1143 SFXGE_EVQ_LOCK_ASSERT_OWNED(evq);
1144
315 rc = EINTR;
316 goto reject;
317 }
318
319 /* Load the packet for DMA. */
320 id = txq->added & txq->ptr_mask;
321 stmp = &txq->stmp[id];
322 rc = bus_dmamap_load_mbuf_sg(txq->packet_dma_tag, stmp->map,

--- 814 unchanged lines hidden (view full) ---

1137 struct sfxge_softc *sc;
1138 struct sfxge_evq *evq;
1139
1140 sc = txq->sc;
1141 evq = sc->evq[txq->evq_index];
1142
1143 SFXGE_EVQ_LOCK_ASSERT_OWNED(evq);
1144
1145 if (txq->init_state != SFXGE_TXQ_STARTED)
1145 if (__predict_false(txq->init_state != SFXGE_TXQ_STARTED))
1146 return;
1147
1148 SFXGE_TXQ_LOCK(txq);
1149
1150 if (txq->blocked) {
1151 unsigned int level;
1152
1153 level = txq->added - txq->completed;

--- 496 unchanged lines hidden ---
1146 return;
1147
1148 SFXGE_TXQ_LOCK(txq);
1149
1150 if (txq->blocked) {
1151 unsigned int level;
1152
1153 level = txq->added - txq->completed;

--- 496 unchanged lines hidden ---