ethdev: allow full control from secondary process
authorReshma Pattan <reshma.pattan@intel.com>
Tue, 5 Jan 2016 16:34:56 +0000 (16:34 +0000)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Wed, 24 Feb 2016 18:15:22 +0000 (19:15 +0100)
Macros RTE_PROC_PRIMARY_OR_ERR_RET and RTE_PROC_PRIMARY_OR_RET
are blocking the secondary process from using the APIs.
API access should be given to both secondary and primary.

Reported-by: Sean Harte <sean.harte@intel.com>
Signed-off-by: Reshma Pattan <reshma.pattan@intel.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
lib/librte_ether/rte_ethdev.c

index 756b234..6506757 100644 (file)
@@ -709,10 +709,6 @@ rte_eth_dev_rx_queue_start(uint8_t port_id, uint16_t rx_queue_id)
 {
        struct rte_eth_dev *dev;
 
-       /* This function is only safe when called from the primary process
-        * in a multi-process setup*/
-       RTE_PROC_PRIMARY_OR_ERR_RET(-E_RTE_SECONDARY);
-
        RTE_ETH_VALID_PORTID_OR_ERR_RET(port_id, -EINVAL);
 
        dev = &rte_eth_devices[port_id];
@@ -739,10 +735,6 @@ rte_eth_dev_rx_queue_stop(uint8_t port_id, uint16_t rx_queue_id)
 {
        struct rte_eth_dev *dev;
 
-       /* This function is only safe when called from the primary process
-        * in a multi-process setup*/
-       RTE_PROC_PRIMARY_OR_ERR_RET(-E_RTE_SECONDARY);
-
        RTE_ETH_VALID_PORTID_OR_ERR_RET(port_id, -EINVAL);
 
        dev = &rte_eth_devices[port_id];
@@ -769,10 +761,6 @@ rte_eth_dev_tx_queue_start(uint8_t port_id, uint16_t tx_queue_id)
 {
        struct rte_eth_dev *dev;
 
-       /* This function is only safe when called from the primary process
-        * in a multi-process setup*/
-       RTE_PROC_PRIMARY_OR_ERR_RET(-E_RTE_SECONDARY);
-
        RTE_ETH_VALID_PORTID_OR_ERR_RET(port_id, -EINVAL);
 
        dev = &rte_eth_devices[port_id];
@@ -799,10 +787,6 @@ rte_eth_dev_tx_queue_stop(uint8_t port_id, uint16_t tx_queue_id)
 {
        struct rte_eth_dev *dev;
 
-       /* This function is only safe when called from the primary process
-        * in a multi-process setup*/
-       RTE_PROC_PRIMARY_OR_ERR_RET(-E_RTE_SECONDARY);
-
        RTE_ETH_VALID_PORTID_OR_ERR_RET(port_id, -EINVAL);
 
        dev = &rte_eth_devices[port_id];
@@ -872,10 +856,6 @@ rte_eth_dev_configure(uint8_t port_id, uint16_t nb_rx_q, uint16_t nb_tx_q,
        struct rte_eth_dev_info dev_info;
        int diag;
 
-       /* This function is only safe when called from the primary process
-        * in a multi-process setup*/
-       RTE_PROC_PRIMARY_OR_ERR_RET(-E_RTE_SECONDARY);
-
        RTE_ETH_VALID_PORTID_OR_ERR_RET(port_id, -EINVAL);
 
        if (nb_rx_q > RTE_MAX_QUEUES_PER_PORT) {
@@ -1057,10 +1037,6 @@ rte_eth_dev_start(uint8_t port_id)
        struct rte_eth_dev *dev;
        int diag;
 
-       /* This function is only safe when called from the primary process
-        * in a multi-process setup*/
-       RTE_PROC_PRIMARY_OR_ERR_RET(-E_RTE_SECONDARY);
-
        RTE_ETH_VALID_PORTID_OR_ERR_RET(port_id, -EINVAL);
 
        dev = &rte_eth_devices[port_id];
@@ -1094,10 +1070,6 @@ rte_eth_dev_stop(uint8_t port_id)
 {
        struct rte_eth_dev *dev;
 
-       /* This function is only safe when called from the primary process
-        * in a multi-process setup*/
-       RTE_PROC_PRIMARY_OR_RET();
-
        RTE_ETH_VALID_PORTID_OR_RET(port_id);
        dev = &rte_eth_devices[port_id];
 
@@ -1119,10 +1091,6 @@ rte_eth_dev_set_link_up(uint8_t port_id)
 {
        struct rte_eth_dev *dev;
 
-       /* This function is only safe when called from the primary process
-        * in a multi-process setup*/
-       RTE_PROC_PRIMARY_OR_ERR_RET(-E_RTE_SECONDARY);
-
        RTE_ETH_VALID_PORTID_OR_ERR_RET(port_id, -EINVAL);
 
        dev = &rte_eth_devices[port_id];
@@ -1136,10 +1104,6 @@ rte_eth_dev_set_link_down(uint8_t port_id)
 {
        struct rte_eth_dev *dev;
 
-       /* This function is only safe when called from the primary process
-        * in a multi-process setup*/
-       RTE_PROC_PRIMARY_OR_ERR_RET(-E_RTE_SECONDARY);
-
        RTE_ETH_VALID_PORTID_OR_ERR_RET(port_id, -EINVAL);
 
        dev = &rte_eth_devices[port_id];
@@ -1153,10 +1117,6 @@ rte_eth_dev_close(uint8_t port_id)
 {
        struct rte_eth_dev *dev;
 
-       /* This function is only safe when called from the primary process
-        * in a multi-process setup*/
-       RTE_PROC_PRIMARY_OR_RET();
-
        RTE_ETH_VALID_PORTID_OR_RET(port_id);
        dev = &rte_eth_devices[port_id];
 
@@ -1181,10 +1141,6 @@ rte_eth_rx_queue_setup(uint8_t port_id, uint16_t rx_queue_id,
        struct rte_eth_dev *dev;
        struct rte_eth_dev_info dev_info;
 
-       /* This function is only safe when called from the primary process
-        * in a multi-process setup*/
-       RTE_PROC_PRIMARY_OR_ERR_RET(-E_RTE_SECONDARY);
-
        RTE_ETH_VALID_PORTID_OR_ERR_RET(port_id, -EINVAL);
 
        dev = &rte_eth_devices[port_id];
@@ -1264,10 +1220,6 @@ rte_eth_tx_queue_setup(uint8_t port_id, uint16_t tx_queue_id,
        struct rte_eth_dev *dev;
        struct rte_eth_dev_info dev_info;
 
-       /* This function is only safe when called from the primary process
-        * in a multi-process setup*/
-       RTE_PROC_PRIMARY_OR_ERR_RET(-E_RTE_SECONDARY);
-
        RTE_ETH_VALID_PORTID_OR_ERR_RET(port_id, -EINVAL);
 
        dev = &rte_eth_devices[port_id];
@@ -2477,7 +2429,7 @@ rte_eth_dev_callback_register(uint8_t port_id,
        /* create a new callback. */
        if (user_cb == NULL)
                user_cb = rte_zmalloc("INTR_USER_CALLBACK",
-                                     sizeof(struct rte_eth_dev_callback), 0);
+                                       sizeof(struct rte_eth_dev_callback), 0);
        if (user_cb != NULL) {
                user_cb->cb_fn = cb_fn;
                user_cb->cb_arg = cb_arg;