From: John Daley Date: Wed, 4 Apr 2018 23:54:53 +0000 (-0700) Subject: net/enic: fix crash on MTU update with non-setup queues X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=33a2d6594945eb3278bfa441f79ae9a38ea538a0;p=dpdk.git net/enic: fix crash on MTU update with non-setup queues The enic code called from rte_eth_dev_set_mtu() was assuming that the Rx queues are already set up via a call to rte_eth_tx_queue_setup(). OVS calls rte_eth_dev_set_mtu() before rte_eth_rx_queue_setup() and a null pointer was dereferenced. Fixes: c3e09182bcd6 ("net/enic: support scatter Rx in MTU update") Cc: stable@dpdk.org Signed-off-by: John Daley Reviewed-by: Hyong Youb Kim --- diff --git a/drivers/net/enic/enic_main.c b/drivers/net/enic/enic_main.c index d15d236f7f..98d47752c9 100644 --- a/drivers/net/enic/enic_main.c +++ b/drivers/net/enic/enic_main.c @@ -1440,6 +1440,8 @@ int enic_set_mtu(struct enic *enic, uint16_t new_mtu) /* free and reallocate RQs with the new MTU */ for (rq_idx = 0; rq_idx < enic->rq_count; rq_idx++) { rq = &enic->rq[enic_rte_rq_idx_to_sop_idx(rq_idx)]; + if (!rq->in_use) + continue; enic_free_rq(rq); rc = enic_alloc_rq(enic, rq_idx, rq->socket_id, rq->mp,