examples/l3fwd: fix error checking
[dpdk.git] / examples / l3fwd / l3fwd_event.c
index ebddd8f..4d31593 100644 (file)
@@ -70,7 +70,11 @@ l3fwd_eth_dev_port_setup(struct rte_eth_conf *port_conf)
                printf("Creating queues: nb_rxq=%d nb_txq=1...\n",
                       evt_rsrc->eth_rx_queues);
 
-               rte_eth_dev_info_get(port_id, &dev_info);
+               ret = rte_eth_dev_info_get(port_id, &dev_info);
+               if (ret != 0)
+                       rte_panic("Error during getting device (port %u) info:"
+                                 "%s\n", port_id, strerror(-ret));
+
                if (dev_info.tx_offload_capa & DEV_TX_OFFLOAD_MBUF_FAST_FREE)
                        local_port_conf.txmode.offloads |=
                                                DEV_TX_OFFLOAD_MBUF_FAST_FREE;
@@ -217,6 +221,12 @@ l3fwd_event_resource_setup(struct rte_eth_conf *port_conf)
                [1][0] = lpm_event_main_loop_tx_q,
                [1][1] = lpm_event_main_loop_tx_q_burst,
        };
+       const event_loop_cb em_event_loop[2][2] = {
+               [0][0] = em_event_main_loop_tx_d,
+               [0][1] = em_event_main_loop_tx_d_burst,
+               [1][0] = em_event_main_loop_tx_q,
+               [1][1] = em_event_main_loop_tx_q_burst,
+       };
        uint32_t event_queue_cfg;
        int ret;
 
@@ -251,4 +261,7 @@ l3fwd_event_resource_setup(struct rte_eth_conf *port_conf)
 
        evt_rsrc->ops.lpm_event_loop = lpm_event_loop[evt_rsrc->tx_mode_q]
                                                       [evt_rsrc->has_burst];
+
+       evt_rsrc->ops.em_event_loop = em_event_loop[evt_rsrc->tx_mode_q]
+                                                      [evt_rsrc->has_burst];
 }