summaryrefslogtreecommitdiffstats
path: root/sys/dev/qlxgbe/ql_isr.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev/qlxgbe/ql_isr.c')
-rw-r--r--sys/dev/qlxgbe/ql_isr.c32
1 files changed, 16 insertions, 16 deletions
diff --git a/sys/dev/qlxgbe/ql_isr.c b/sys/dev/qlxgbe/ql_isr.c
index ab7f908..19f2d71 100644
--- a/sys/dev/qlxgbe/ql_isr.c
+++ b/sys/dev/qlxgbe/ql_isr.c
@@ -159,7 +159,12 @@ qla_rx_intr(qla_host_t *ha, qla_sgl_rcv_t *sgc, uint32_t sds_idx)
ifp->if_ipackets++;
mpf->m_pkthdr.flowid = sgc->rss_hash;
- M_HASHTYPE_SET(mpf, M_HASHTYPE_OPAQUE);
+
+#if __FreeBSD_version >= 1100000
+ M_HASHTYPE_SET(mpf, M_HASHTYPE_OPAQUE_HASH);
+#else
+ M_HASHTYPE_SET(mpf, M_HASHTYPE_NONE);
+#endif /* #if __FreeBSD_version >= 1100000 */
(*ifp->if_input)(ifp, mpf);
@@ -450,11 +455,11 @@ qla_rcv_cont_sds(qla_host_t *ha, uint32_t sds_idx, uint32_t comp_idx,
}
/*
- * Name: qla_rcv_isr
+ * Name: ql_rcv_isr
* Function: Main Interrupt Service Routine
*/
-static uint32_t
-qla_rcv_isr(qla_host_t *ha, uint32_t sds_idx, uint32_t count)
+uint32_t
+ql_rcv_isr(qla_host_t *ha, uint32_t sds_idx, uint32_t count)
{
device_t dev;
qla_hw_t *hw;
@@ -704,7 +709,7 @@ qla_rcv_isr(qla_host_t *ha, uint32_t sds_idx, uint32_t count)
}
if (ha->flags.stop_rcv)
- goto qla_rcv_isr_exit;
+ goto ql_rcv_isr_exit;
if (hw->sds[sds_idx].sdsr_next != comp_idx) {
QL_UPDATE_SDS_CONSUMER_INDEX(ha, sds_idx, comp_idx);
@@ -727,7 +732,7 @@ qla_rcv_isr(qla_host_t *ha, uint32_t sds_idx, uint32_t count)
if (opcode)
ret = -1;
-qla_rcv_isr_exit:
+ql_rcv_isr_exit:
hw->sds[sds_idx].rcv_active = 0;
return (ret);
@@ -931,7 +936,7 @@ ql_isr(void *arg)
int idx;
qla_hw_t *hw;
struct ifnet *ifp;
- uint32_t ret = 0;
+ qla_tx_fp_t *fp;
ha = ivec->ha;
hw = &ha->hw;
@@ -940,17 +945,12 @@ ql_isr(void *arg)
if ((idx = ivec->sds_idx) >= ha->hw.num_sds_rings)
return;
- if (idx == 0)
- taskqueue_enqueue(ha->tx_tq, &ha->tx_task);
-
- ret = qla_rcv_isr(ha, idx, -1);
- if (idx == 0)
- taskqueue_enqueue(ha->tx_tq, &ha->tx_task);
+ fp = &ha->tx_fp[idx];
+
+ if (fp->fp_taskqueue != NULL)
+ taskqueue_enqueue(fp->fp_taskqueue, &fp->fp_task);
- if (!ha->flags.stop_rcv) {
- QL_ENABLE_INTERRUPTS(ha, idx);
- }
return;
}
OpenPOWER on IntegriCloud