git.droids-corp.org
/
dpdk.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
eal/memory: fix unused SIGBUS handler
[dpdk.git]
/
examples
/
kni
/
main.c
diff --git
a/examples/kni/main.c
b/examples/kni/main.c
index
2223bd3
..
beabb3c
100644
(file)
--- a/
examples/kni/main.c
+++ b/
examples/kni/main.c
@@
-782,7
+782,12
@@
kni_change_mtu_(uint16_t port_id, unsigned int new_mtu)
RTE_LOG(INFO, APP, "Change MTU of port %d to %u\n", port_id, new_mtu);
/* Stop specific port */
RTE_LOG(INFO, APP, "Change MTU of port %d to %u\n", port_id, new_mtu);
/* Stop specific port */
- rte_eth_dev_stop(port_id);
+ ret = rte_eth_dev_stop(port_id);
+ if (ret != 0) {
+ RTE_LOG(ERR, APP, "Failed to stop port %d: %s\n",
+ port_id, rte_strerror(-ret));
+ return ret;
+ }
memcpy(&conf, &port_conf, sizeof(conf));
/* Set new MTU */
memcpy(&conf, &port_conf, sizeof(conf));
/* Set new MTU */
@@
-875,10
+880,23
@@
kni_config_network_interface(uint16_t port_id, uint8_t if_up)
rte_atomic32_inc(&kni_pause);
if (if_up != 0) { /* Configure network interface up */
rte_atomic32_inc(&kni_pause);
if (if_up != 0) { /* Configure network interface up */
- rte_eth_dev_stop(port_id);
+ ret = rte_eth_dev_stop(port_id);
+ if (ret != 0) {
+ RTE_LOG(ERR, APP, "Failed to stop port %d: %s\n",
+ port_id, rte_strerror(-ret));
+ rte_atomic32_dec(&kni_pause);
+ return ret;
+ }
ret = rte_eth_dev_start(port_id);
ret = rte_eth_dev_start(port_id);
- } else /* Configure network interface down */
- rte_eth_dev_stop(port_id);
+ } else { /* Configure network interface down */
+ ret = rte_eth_dev_stop(port_id);
+ if (ret != 0) {
+ RTE_LOG(ERR, APP, "Failed to stop port %d: %s\n",
+ port_id, rte_strerror(-ret));
+ rte_atomic32_dec(&kni_pause);
+ return ret;
+ }
+ }
rte_atomic32_dec(&kni_pause);
rte_atomic32_dec(&kni_pause);
@@
-949,7
+967,7
@@
kni_alloc(uint16_t port_id)
conf.mbuf_size = MAX_PACKET_SZ;
/*
* The first KNI device associated to a port
conf.mbuf_size = MAX_PACKET_SZ;
/*
* The first KNI device associated to a port
- * is the ma
ster
, for multiple kernel thread
+ * is the ma
in
, for multiple kernel thread
* environment.
*/
if (i == 0) {
* environment.
*/
if (i == 0) {
@@
-998,6
+1016,7
@@
static int
kni_free_kni(uint16_t port_id)
{
uint8_t i;
kni_free_kni(uint16_t port_id)
{
uint8_t i;
+ int ret;
struct kni_port_params **p = kni_port_params_array;
if (port_id >= RTE_MAX_ETHPORTS || !p[port_id])
struct kni_port_params **p = kni_port_params_array;
if (port_id >= RTE_MAX_ETHPORTS || !p[port_id])
@@
-1008,7
+1027,10
@@
kni_free_kni(uint16_t port_id)
printf("Fail to release kni\n");
p[port_id]->kni[i] = NULL;
}
printf("Fail to release kni\n");
p[port_id]->kni[i] = NULL;
}
- rte_eth_dev_stop(port_id);
+ ret = rte_eth_dev_stop(port_id);
+ if (ret != 0)
+ RTE_LOG(ERR, APP, "Failed to stop port %d: %s\n",
+ port_id, rte_strerror(-ret));
return 0;
}
return 0;
}
@@
-1098,8
+1120,8
@@
main(int argc, char** argv)
"Could not create link status thread!\n");
/* Launch per-lcore function on every lcore */
"Could not create link status thread!\n");
/* Launch per-lcore function on every lcore */
- rte_eal_mp_remote_launch(main_loop, NULL, CALL_MA
STER
);
- RTE_LCORE_FOREACH_
SLAVE
(i) {
+ rte_eal_mp_remote_launch(main_loop, NULL, CALL_MA
IN
);
+ RTE_LCORE_FOREACH_
WORKER
(i) {
if (rte_eal_wait_lcore(i) < 0)
return -1;
}
if (rte_eal_wait_lcore(i) < 0)
return -1;
}
@@
-1118,5
+1140,8
@@
main(int argc, char** argv)
kni_port_params_array[i] = NULL;
}
kni_port_params_array[i] = NULL;
}
+ /* clean up the EAL */
+ rte_eal_cleanup();
+
return 0;
}
return 0;
}