X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=drivers%2Fnet%2Ftap%2Ftap_intr.c;h=1cacc15d9f910890aef371529e13cbd54b4d210b;hb=902fa8b50d609150f717394ba0c5b72890c66d9b;hp=fc590181fca7e7cb60c2e6cfb3d3a24f8ac67545;hpb=1b3b7caeb1f8685e916b31f58e84345a4a57f80f;p=dpdk.git diff --git a/drivers/net/tap/tap_intr.c b/drivers/net/tap/tap_intr.c index fc590181fc..1cacc15d9f 100644 --- a/drivers/net/tap/tap_intr.c +++ b/drivers/net/tap/tap_intr.c @@ -7,7 +7,6 @@ * Interrupts handling for tap driver. */ -#include #include #include #include @@ -51,6 +50,7 @@ static int tap_rx_intr_vec_install(struct rte_eth_dev *dev) { struct pmd_internals *pmd = dev->data->dev_private; + struct pmd_process_private *process_private = dev->process_private; unsigned int rxqs_n = pmd->dev->data->nb_rx_queues; struct rte_intr_handle *intr_handle = &pmd->intr_handle; unsigned int n = RTE_MIN(rxqs_n, (uint32_t)RTE_MAX_RXTX_INTR_VEC_ID); @@ -59,7 +59,7 @@ tap_rx_intr_vec_install(struct rte_eth_dev *dev) if (!dev->data->dev_conf.intr_conf.rxq) return 0; - intr_handle->intr_vec = malloc(sizeof(intr_handle->intr_vec[rxqs_n])); + intr_handle->intr_vec = malloc(sizeof(int) * rxqs_n); if (intr_handle->intr_vec == NULL) { rte_errno = ENOMEM; TAP_LOG(ERR, @@ -71,7 +71,7 @@ tap_rx_intr_vec_install(struct rte_eth_dev *dev) struct rx_queue *rxq = pmd->dev->data->rx_queues[i]; /* Skip queues that cannot request interrupts. */ - if (!rxq || rxq->fd <= 0) { + if (!rxq || process_private->rxq_fds[i] == -1) { /* Use invalid intr_vec[] index to disable entry. */ intr_handle->intr_vec[i] = RTE_INTR_VEC_RXTX_OFFSET + @@ -79,7 +79,7 @@ tap_rx_intr_vec_install(struct rte_eth_dev *dev) continue; } intr_handle->intr_vec[i] = RTE_INTR_VEC_RXTX_OFFSET + count; - intr_handle->efds[count] = rxq->fd; + intr_handle->efds[count] = process_private->rxq_fds[i]; count++; } if (!count)