From mboxrd@z Thu Jan 1 00:00:00 1970 From: John Daley Subject: [PATCH v3 1/2] enic: fix seg fault when releasing queues Date: Thu, 9 Jun 2016 11:56:08 -0700 Message-ID: <1465498569-5857-2-git-send-email-johndale@cisco.com> References: <20160609160808.GJ12520@bricha3-MOBL3> <1465498569-5857-1-git-send-email-johndale@cisco.com> Cc: dev@dpdk.org, John Daley To: bruce.richardson@intel.com Return-path: Received: from rcdn-iport-9.cisco.com (rcdn-iport-9.cisco.com [173.37.86.80]) by dpdk.org (Postfix) with ESMTP id 571F02A62 for ; Thu, 9 Jun 2016 20:56:16 +0200 (CEST) In-Reply-To: <1465498569-5857-1-git-send-email-johndale@cisco.com> List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" If device configuration failed due to a lack of resources, such as if more queues are requested than are available, the queue release function is called with NULL pointers which were being dereferenced. Skip releasing queues if they are NULL pointers. Fixes: fefed3d1e62c ("enic: new driver") Signed-off-by: John Daley --- v3: bail out of free rq function if rq is null instead of if around != NULL. drivers/net/enic/enic_main.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/net/enic/enic_main.c b/drivers/net/enic/enic_main.c index 996f999..5939b9d 100644 --- a/drivers/net/enic/enic_main.c +++ b/drivers/net/enic/enic_main.c @@ -429,6 +429,9 @@ void enic_free_rq(void *rxq) struct vnic_rq *rq = (struct vnic_rq *)rxq; struct enic *enic = vnic_dev_priv(rq->vdev); + if (rxq == NULL) + return; + enic_rxmbuf_queue_release(enic, rq); rte_free(rq->mbuf_ring); rq->mbuf_ring = NULL; -- 2.7.0