X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=drivers%2Fnet%2Ffailsafe%2Ffailsafe_intr.c;h=0f34c5bbacef7211d9065bdd7d1cffb66ffaab04;hb=adf93ca564c73183e1c705cd7f35b98f3a660228;hp=f6ff04dc89ac326c8c52660b6653ae1690cf112a;hpb=709676bc9c60290ce2f22e2ddca0ac54b3015f1e;p=dpdk.git diff --git a/drivers/net/failsafe/failsafe_intr.c b/drivers/net/failsafe/failsafe_intr.c index f6ff04dc89..0f34c5bbac 100644 --- a/drivers/net/failsafe/failsafe_intr.c +++ b/drivers/net/failsafe/failsafe_intr.c @@ -1,5 +1,5 @@ /* SPDX-License-Identifier: BSD-3-Clause - * Copyright 2018 Mellanox Technologies, Ltd. + * Copyright 2018 Mellanox Technologies, Ltd */ /** @@ -133,8 +133,8 @@ fs_rx_event_proxy_service_install(struct fs_priv *priv) /* prepare service info */ memset(&service, 0, sizeof(struct rte_service_spec)); snprintf(service.name, sizeof(service.name), "%s_Rx_service", - priv->dev->data->name); - service.socket_id = priv->dev->data->numa_node; + priv->data->name); + service.socket_id = priv->data->numa_node; service.callback = fs_rx_event_proxy_routine; service.callback_userdata = priv; @@ -274,14 +274,14 @@ failsafe_eth_rx_intr_ctl_subdevice(struct sub_device *sdev, int op) int rc; int ret = 0; + fsdev = fs_dev(sdev); if (sdev == NULL || (ETH(sdev) == NULL) || - sdev->fs_dev == NULL || (PRIV(sdev->fs_dev) == NULL)) { + fsdev == NULL || (PRIV(fsdev) == NULL)) { ERROR("Called with invalid arguments"); return -EINVAL; } dev = ETH(sdev); - fsdev = sdev->fs_dev; - epfd = PRIV(sdev->fs_dev)->rxp.efd; + epfd = PRIV(fsdev)->rxp.efd; pid = PORT_ID(sdev); if (epfd <= 0) { @@ -330,7 +330,7 @@ int failsafe_rx_intr_install_subdevice(struct sub_device *sdev) const struct rte_intr_conf *const intr_conf = Ð(sdev)->data->dev_conf.intr_conf; - fsdev = sdev->fs_dev; + fsdev = fs_dev(sdev); rxq = (struct rxq **)fsdev->data->rx_queues; if (intr_conf->rxq == 0) return 0; @@ -368,11 +368,11 @@ void failsafe_rx_intr_uninstall_subdevice(struct sub_device *sdev) struct rte_eth_dev *fsdev; struct rxq *fsrxq; - fsdev = sdev->fs_dev; + fsdev = fs_dev(sdev); for (qid = 0; qid < ETH(sdev)->data->nb_rx_queues; qid++) { if (qid < fsdev->data->nb_rx_queues) { fsrxq = fsdev->data->rx_queues[qid]; - if (fsrxq->enable_events) + if (fsrxq != NULL && fsrxq->enable_events) rte_eth_dev_rx_intr_disable(PORT_ID(sdev), qid); } @@ -437,7 +437,7 @@ fs_rx_intr_vec_install(struct fs_priv *priv) unsigned int count; struct rte_intr_handle *intr_handle; - rxqs_n = priv->dev->data->nb_rx_queues; + rxqs_n = priv->data->nb_rx_queues; n = RTE_MIN(rxqs_n, (uint32_t)RTE_MAX_RXTX_INTR_VEC_ID); count = 0; intr_handle = &priv->intr_handle; @@ -452,7 +452,7 @@ fs_rx_intr_vec_install(struct fs_priv *priv) return -rte_errno; } for (i = 0; i < n; i++) { - struct rxq *rxq = priv->dev->data->rx_queues[i]; + struct rxq *rxq = priv->data->rx_queues[i]; /* Skip queues that cannot request interrupts. */ if (rxq == NULL || rxq->event_fd < 0) { @@ -521,9 +521,9 @@ failsafe_rx_intr_install(struct rte_eth_dev *dev) { struct fs_priv *priv = PRIV(dev); const struct rte_intr_conf *const intr_conf = - &priv->dev->data->dev_conf.intr_conf; + &priv->data->dev_conf.intr_conf; - if (intr_conf->rxq == 0) + if (intr_conf->rxq == 0 || dev->intr_handle != NULL) return 0; if (fs_rx_intr_vec_install(priv) < 0) return -rte_errno;