Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp2763913pxj; Sun, 6 Jun 2021 13:13:47 -0700 (PDT) X-Google-Smtp-Source: ABdhPJz53sjbjh9i8uphqEES5l9NlKTgrugPUmjea6Awm9j8EIiZX41O0XJEFtS+BWuP14z8AOS2 X-Received: by 2002:a17:907:2136:: with SMTP id qo22mr14669943ejb.40.1623010427588; Sun, 06 Jun 2021 13:13:47 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1623010427; cv=none; d=google.com; s=arc-20160816; b=0RxCENHRhb//gA/gycQryQ+QrFNAoIWAlLdfCnPH6bN1dHFvxMays210R1iY/rnRHf E7oUV8UVqW7PPy3OQNDQMZV1+YfQHIDpxXO5y0JlcgHZ6vTRgGebZ8gz8yskYA+UhZWD KMtGWkR7YG/KaiRDM7qBpkf23OhW3YTO8EoEDeJCGA56wMczdRbDUFzO5pgiGtKSmeEu LfKWrolv4iUMP8FyZxlCSQvmsr4LL7T+kBnnpauDQ7chaq0IyVDAkoWlacOcvlX9tMkg LeEJu/eXWLUjjLRXa8wzhFN1kMOoHGy87Eh1iDnMWvZoRhlWeqJJfnnawJWwzTF7t/3I njOA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=hQhPaaBVb++b0UTU9Rraa6ZhDCCVr/iAER3n3txOb2w=; b=TckkgRCYdIcFU3ci1YC1MYm8w2nFbuIM90b+kF7JqbC0jmnfBPrIvT34U6RNQ7/kt4 dECYXzMHcx5gId4OW9VSVPxenmvOukfERLIrJhQCyVvwhGGA03kfib64wUtYJ538mTig zNwF8O/QtfD8LsulQ6tRwvPIbAoNIAP9E+Hmq9NBJPozVYLQ5Bgk+O+4JT7N/NyYu2XQ WoGI2L/nIwZBEZ2omaIqkED7SwqsUpYKdz7czHKDohN01niXzBYw3Jnj72qxt3MrRyQm 2m1LSiaEHsDLDDQTbjifzy8qS8rkFy5Lg+uFGklGTt/PBSrlGH90wzfG+drw9y4gH2J9 PKnQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass (test mode) header.i=@wp.pl header.s=1024a header.b=bc32+VPr; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=wp.pl Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id t18si10453029eju.726.2021.06.06.13.13.03; Sun, 06 Jun 2021 13:13:47 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass (test mode) header.i=@wp.pl header.s=1024a header.b=bc32+VPr; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=wp.pl Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230020AbhFFUIb (ORCPT + 99 others); Sun, 6 Jun 2021 16:08:31 -0400 Received: from mx3.wp.pl ([212.77.101.9]:51979 "EHLO mx3.wp.pl" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229813AbhFFUIa (ORCPT ); Sun, 6 Jun 2021 16:08:30 -0400 Received: (wp-smtpd smtp.wp.pl 19935 invoked from network); 6 Jun 2021 22:06:38 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=wp.pl; s=1024a; t=1623009998; bh=hQhPaaBVb++b0UTU9Rraa6ZhDCCVr/iAER3n3txOb2w=; h=From:To:Cc:Subject; b=bc32+VPrlLz28hAoAr/gDwfWa4O+1iRtdkAtsLo9EyCqbQcEiNlE4wvHNC2SbCtdy hFFRhn14TlwEdgw3uKokTspXfJiVr3laIEunnvCcpbBpJ7Y8Uch6dZpWjKWCj1byBl czWq7tJsJ/7ZK7CFT2W6H/pPGoSXJ7udqmJV5Dwc= Received: from riviera.nat.ds.pw.edu.pl (HELO LAPTOP-OLEK.lan) (olek2@wp.pl@[194.29.137.1]) (envelope-sender ) by smtp.wp.pl (WP-SMTPD) with ECDHE-RSA-AES256-GCM-SHA384 encrypted SMTP for ; 6 Jun 2021 22:06:38 +0200 From: Aleksander Jan Bajkowski To: hauke@hauke-m.de, davem@davemloft.net, kuba@kernel.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Aleksander Jan Bajkowski Subject: [PATCH net] lantiq: net: fix duplicated skb in rx descriptor ring Date: Sun, 6 Jun 2021 22:05:51 +0200 Message-Id: <20210606200551.1609521-1-olek2@wp.pl> X-Mailer: git-send-email 2.30.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-WP-DKIM-Status: good (id: wp.pl) X-WP-MailID: 8a3beb05101d63dc280b56f4a59e28da X-WP-AV: skaner antywirusowy Poczty Wirtualnej Polski X-WP-SPAM: NO 0000000 [QYOk] Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The previous commit didn't fix the bug properly. By mistake, it replaces the pointer of the next skb in the descriptor ring instead of the current one. As a result, the two descriptors are assigned the same SKB. The error is seen during the iperf test when skb_put tries to insert a second packet and exceeds the available buffer. Fixes: c7718ee96dbc ("net: lantiq: fix memory corruption in RX ring ") Signed-off-by: Aleksander Jan Bajkowski --- drivers/net/ethernet/lantiq_xrx200.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/net/ethernet/lantiq_xrx200.c b/drivers/net/ethernet/lantiq_xrx200.c index 36dc3e5f6218..e710f83b3700 100644 --- a/drivers/net/ethernet/lantiq_xrx200.c +++ b/drivers/net/ethernet/lantiq_xrx200.c @@ -193,17 +193,18 @@ static int xrx200_hw_receive(struct xrx200_chan *ch) int ret; ret = xrx200_alloc_skb(ch); - - ch->dma.desc++; - ch->dma.desc %= LTQ_DESC_NUM; - if (ret) { ch->skb[ch->dma.desc] = skb; net_dev->stats.rx_dropped++; + ch->dma.desc++; + ch->dma.desc %= LTQ_DESC_NUM; netdev_err(net_dev, "failed to allocate new rx buffer\n"); return ret; } + ch->dma.desc++; + ch->dma.desc %= LTQ_DESC_NUM; + skb_put(skb, len); skb->protocol = eth_type_trans(skb, net_dev); netif_receive_skb(skb); -- 2.30.2