eventdev: fix probe and remove for secondary process

When probing event device in secondary process skip reinitializing
the device data structure as it is already done in primary process.

When removing event device in secondary process skip closing the
event device as it should be done by primary process.

Fixes: 322d0345c2 ("eventdev: implement PMD registration functions")
Cc: stable@dpdk.org

Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
Acked-by: Jerin Jacob <jerinj@marvell.com>
This commit is contained in:
Pavan Nikhilesh 2020-04-27 23:40:38 +05:30 committed by Jerin Jacob
parent 534d1d4b65
commit a5f30c925b
2 changed files with 13 additions and 8 deletions

View file

@ -1373,14 +1373,17 @@ rte_event_pmd_allocate(const char *name, int socket_id)
eventdev->data = eventdev_data;
strlcpy(eventdev->data->name, name, RTE_EVENTDEV_NAME_MAX_LEN);
if (rte_eal_process_type() == RTE_PROC_PRIMARY) {
eventdev->data->dev_id = dev_id;
eventdev->data->socket_id = socket_id;
eventdev->data->dev_started = 0;
strlcpy(eventdev->data->name, name,
RTE_EVENTDEV_NAME_MAX_LEN);
eventdev->data->dev_id = dev_id;
eventdev->data->socket_id = socket_id;
eventdev->data->dev_started = 0;
}
eventdev->attached = RTE_EVENTDEV_ATTACHED;
eventdev_globals.nb_devs++;
}

View file

@ -112,9 +112,11 @@ rte_event_pmd_pci_remove(struct rte_pci_device *pci_dev,
if (eventdev == NULL)
return -ENODEV;
ret = rte_event_dev_close(eventdev->data->dev_id);
if (ret < 0)
return ret;
if (rte_eal_process_type() == RTE_PROC_PRIMARY) {
ret = rte_event_dev_close(eventdev->data->dev_id);
if (ret < 0)
return ret;
}
/* Invoke PMD device un-init function */
if (devuninit)