net/af_packet: make qdisc bypass configurable
[dpdk.git] / drivers / net / sfc / sfc_intr.c
index 0d199b4..ee59cb1 100644 (file)
@@ -55,7 +55,7 @@ sfc_intr_handle_mgmt_evq(struct sfc_adapter *sa)
 
        rte_spinlock_lock(&sa->mgmt_evq_lock);
 
-       evq = sa->evq_info[sa->mgmt_evq_index].evq;
+       evq = sa->mgmt_evq;
 
        if (evq->init_state != SFC_EVQ_STARTED) {
                sfc_log_init(sa, "interrupt on stopped EVQ %u", evq->evq_index);
@@ -70,13 +70,14 @@ sfc_intr_handle_mgmt_evq(struct sfc_adapter *sa)
 }
 
 static void
-sfc_intr_line_handler(struct rte_intr_handle *intr_handle, void *cb_arg)
+sfc_intr_line_handler(void *cb_arg)
 {
        struct sfc_adapter *sa = (struct sfc_adapter *)cb_arg;
        efx_nic_t *enp = sa->nic;
        boolean_t fatal;
        uint32_t qmask;
        unsigned int lsc_seq = sa->port.lsc_seq;
+       struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(sa->eth_dev);
 
        sfc_log_init(sa, "entry");
 
@@ -99,7 +100,7 @@ sfc_intr_line_handler(struct rte_intr_handle *intr_handle, void *cb_arg)
        if (qmask & (1 << sa->mgmt_evq_index))
                sfc_intr_handle_mgmt_evq(sa);
 
-       if (rte_intr_enable(intr_handle) != 0)
+       if (rte_intr_enable(&pci_dev->intr_handle) != 0)
                sfc_err(sa, "cannot reenable interrupts");
 
        sfc_log_init(sa, "done");
@@ -110,17 +111,19 @@ exit:
                         sa->eth_dev->data->dev_link.link_status ?
                         "UP" : "DOWN");
                _rte_eth_dev_callback_process(sa->eth_dev,
-                                             RTE_ETH_EVENT_INTR_LSC, NULL);
+                                             RTE_ETH_EVENT_INTR_LSC,
+                                             NULL, NULL);
        }
 }
 
 static void
-sfc_intr_message_handler(struct rte_intr_handle *intr_handle, void *cb_arg)
+sfc_intr_message_handler(void *cb_arg)
 {
        struct sfc_adapter *sa = (struct sfc_adapter *)cb_arg;
        efx_nic_t *enp = sa->nic;
        boolean_t fatal;
        unsigned int lsc_seq = sa->port.lsc_seq;
+       struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(sa->eth_dev);
 
        sfc_log_init(sa, "entry");
 
@@ -141,7 +144,7 @@ sfc_intr_message_handler(struct rte_intr_handle *intr_handle, void *cb_arg)
 
        sfc_intr_handle_mgmt_evq(sa);
 
-       if (rte_intr_enable(intr_handle) != 0)
+       if (rte_intr_enable(&pci_dev->intr_handle) != 0)
                sfc_err(sa, "cannot reenable interrupts");
 
        sfc_log_init(sa, "done");
@@ -150,7 +153,8 @@ exit:
        if (lsc_seq != sa->port.lsc_seq) {
                sfc_info(sa, "link status change event");
                _rte_eth_dev_callback_process(sa->eth_dev,
-                                             RTE_ETH_EVENT_INTR_LSC, NULL);
+                                             RTE_ETH_EVENT_INTR_LSC,
+                                             NULL, NULL);
        }
 }
 
@@ -175,7 +179,7 @@ sfc_intr_start(struct sfc_adapter *sa)
        if (rc != 0)
                goto fail_intr_init;
 
-       pci_dev = SFC_DEV_TO_PCI(sa->eth_dev);
+       pci_dev = RTE_ETH_DEV_TO_PCI(sa->eth_dev);
        intr_handle = &pci_dev->intr_handle;
 
        if (intr->handler != NULL) {
@@ -230,7 +234,7 @@ void
 sfc_intr_stop(struct sfc_adapter *sa)
 {
        struct sfc_intr *intr = &sa->intr;
-       struct rte_pci_device *pci_dev = SFC_DEV_TO_PCI(sa->eth_dev);
+       struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(sa->eth_dev);
 
        sfc_log_init(sa, "entry");
 
@@ -304,15 +308,17 @@ int
 sfc_intr_attach(struct sfc_adapter *sa)
 {
        struct sfc_intr *intr = &sa->intr;
-       struct rte_pci_device *pci_dev = SFC_DEV_TO_PCI(sa->eth_dev);
+       struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(sa->eth_dev);
 
        sfc_log_init(sa, "entry");
 
        switch (pci_dev->intr_handle.type) {
 #ifdef RTE_EXEC_ENV_LINUXAPP
+       case RTE_INTR_HANDLE_UIO_INTX:
        case RTE_INTR_HANDLE_VFIO_LEGACY:
                intr->type = EFX_INTR_LINE;
                break;
+       case RTE_INTR_HANDLE_UIO:
        case RTE_INTR_HANDLE_VFIO_MSI:
        case RTE_INTR_HANDLE_VFIO_MSIX:
                intr->type = EFX_INTR_MESSAGE;