From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 84330A034F; Tue, 12 May 2020 22:40:16 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 397571BFAA; Tue, 12 May 2020 22:40:16 +0200 (CEST) Received: from mail-pf1-f193.google.com (mail-pf1-f193.google.com [209.85.210.193]) by dpdk.org (Postfix) with ESMTP id F34201BFA8 for ; Tue, 12 May 2020 22:40:13 +0200 (CEST) Received: by mail-pf1-f193.google.com with SMTP id x2so6944359pfx.7 for ; Tue, 12 May 2020 13:40:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=networkplumber-org.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=dM0FG8DR+o/7wU8jrNIbSWGAporoRHWZDvcno2Vd5Xk=; b=SSvv5JKRRx6OcM2SRNmHSG/JShkc3R5q9ZOQ7J9XlvR+9Nkvg6xSn1gGlRBlCSI72C Kklp7Kjb/PPAaf/aqiqXuFlOvzFrRqoIEvZ+ItXcbRvMu7VR6KW9g3E1MdHDclmL8cRO yUSKBakQKT1WYraE+GJ2V+mmMj961FHoQUz3ie+FHltmKHVgDUXTL3u1DgEyXLS4hBp8 rbs4yiym1VBvX1DR9Y6nLCUA/QetFip5xo8OnMG+X5dj2aQ3hB7/GDeOhzyDpmpDL1b2 MSWambaJ2JT2QQCXqjxNmIkugnNlbeTP+35K0IJVt9b0a9Wpq/6LgxBAH3TaOsCrDHwv HAtg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=dM0FG8DR+o/7wU8jrNIbSWGAporoRHWZDvcno2Vd5Xk=; b=TtHbALiaEuhvmhdTjVsJ/dnNVCGeqpxKjpaRXQh8D4TksaD8MVMpFK5N4RH69751CQ hVm63DPE4hHoOOtFwysH4ikzXvFiWLGkW+4MIOfTFJJYaMx4ZWcmk2yzbypDGDsCirfN YUDhNPV2diupMe3b6SWBXmO55ofzOCIgrZqVNSdM7yB4TXKfacxDdkULUIQtl+QYpvqo 5APCIy1qui4ssHSX3tKAwe7zEZrB7deAwdBbWOLqrtz/KEeUrZsRNkmakZ/2JqtpGNLV YVCnHgCdkDxK96iIi4krlmxvvJBupG2a6qI73WUu1zt1UqJZqgRUtetGl7TWnCC533+l +miA== X-Gm-Message-State: AGi0PuYfEPaMDtb6dsP0aG6OSaImX/+XWfqmcCKh3ZN0y+JAlbyydn3r IVbDoqIvhrKeNkWmaFS2I2z8uA== X-Google-Smtp-Source: APiQypLwYwNKApER73THIjxnQm8oxmOuIqZCPmGNERKkvvmBEHscatfCBJxFhG2Rty4M+gCczuFo/Q== X-Received: by 2002:a63:248:: with SMTP id 69mr20742355pgc.209.1589316013008; Tue, 12 May 2020 13:40:13 -0700 (PDT) Received: from hermes.corp.microsoft.com (204-195-22-127.wavecable.com. [204.195.22.127]) by smtp.gmail.com with ESMTPSA id jm21sm13541047pjb.11.2020.05.12.13.40.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 12 May 2020 13:40:11 -0700 (PDT) From: Stephen Hemminger To: yongwang@vmware.com Cc: dev@dpdk.org, Stephen Hemminger Date: Tue, 12 May 2020 13:40:03 -0700 Message-Id: <20200512204003.26686-1-stephen@networkplumber.org> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [dpdk-dev] [PATCH] net/vmxnet3: handle bad host framing X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" The VMXNet3 protocol has a start-of-packet (SOP) and end-of-packet (EOP) marker. If there was a bug where mbuf arrived without SOP the code that chains the mbuf would dereference a null pointer. Also, record any mbuf's dropped in statistics. Although did the initial code no longer have access to VMware. Compile tested only! Coverity issue: 124563 Signed-off-by: Stephen Hemminger --- drivers/net/vmxnet3/vmxnet3_rxtx.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/net/vmxnet3/vmxnet3_rxtx.c b/drivers/net/vmxnet3/vmxnet3_rxtx.c index dd99684bee4d..73e270f30f00 100644 --- a/drivers/net/vmxnet3/vmxnet3_rxtx.c +++ b/drivers/net/vmxnet3/vmxnet3_rxtx.c @@ -950,13 +950,17 @@ vmxnet3_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts, uint16_t nb_pkts) RTE_ASSERT(rxd->btype == VMXNET3_RXD_BTYPE_BODY); - if (rxm->data_len) { + if (likely(start && rxm->data_len > 0)) { start->pkt_len += rxm->data_len; start->nb_segs++; rxq->last_seg->next = rxm; rxq->last_seg = rxm; } else { + PMD_RX_LOG(ERR, "Error received empty or out of order frame."); + rxq->stats.drop_total++; + rxq->stats.drop_err++; + rte_pktmbuf_free_seg(rxm); } } -- 2.20.1