From nobody Mon Feb 9 01:06:38 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1579476088; cv=none; d=zohomail.com; s=zohoarc; b=koaV6ZYxRkzHWRBfS8lPawbRTRDYzpx4rHYoQ8drghtWZlNFyhDV9OZTdnPS16lCzZzvOFXCB4LaKInC81SbKy+9cO+XQROFWc7Tp8A9ZjiMz4XVD6wO2Q5tq4jLe/X0yyJ0gTXZ6F5hCqAzm6oBO+KA3B7Le62duRsD7FhxKBc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1579476088; h=Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To; bh=sULzcnlkl5ULRJ6tGehrHSB6oY3wLOsp1ppfMBsUkRI=; b=W3OmkcMxB/2d3zh7MJ3eOodf9RfaG+QR/vDXEegmo4Eg09OeXHv82f2HZFaowFZkASTX71+s5VI2gQdNKFFQpjPUXRSNOvmJH633/xcbmrFqIF0HJM9BWg8fI6Lg2H5aMWkiSUhVs3/X+CCPTCJdYKcqqy3QSrfli8pP437kf5k= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1579476088141217.81930388715375; Sun, 19 Jan 2020 15:21:28 -0800 (PST) Received: from localhost ([::1]:55058 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1itJsk-0004na-QI for importer@patchew.org; Sun, 19 Jan 2020 18:21:26 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:56283) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1itJg2-0004ez-Ar for qemu-devel@nongnu.org; Sun, 19 Jan 2020 18:08:19 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1itJg1-00041G-CH for qemu-devel@nongnu.org; Sun, 19 Jan 2020 18:08:18 -0500 Received: from kvm5.telegraphics.com.au ([98.124.60.144]:54740) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1itJg1-0003lk-8R; Sun, 19 Jan 2020 18:08:17 -0500 Received: by kvm5.telegraphics.com.au (Postfix, from userid 502) id 747F32997F; Sun, 19 Jan 2020 18:07:55 -0500 (EST) To: Jason Wang , qemu-devel@nongnu.org Message-Id: In-Reply-To: References: From: Finn Thain Subject: [PATCH v3 12/14] dp8393x: Always update RRA pointers and sequence numbers Date: Mon, 20 Jan 2020 09:59:21 +1100 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [fuzzy] X-Received-From: 98.124.60.144 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Aleksandar Rikalo , =?UTF-8?q?Herv=C3=A9=20Poussineau?= , Laurent Vivier , qemu-stable@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" These operations have to take place regardless of whether or not rx descriptors have been used up (that is, EOL flag was observed). The algorithm is the now the same for a packet that was withheld as for a packet that was not. Signed-off-by: Finn Thain Tested-by: Laurent Vivier --- hw/net/dp8393x.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/hw/net/dp8393x.c b/hw/net/dp8393x.c index 99c5dad7c4..1b73a8703b 100644 --- a/hw/net/dp8393x.c +++ b/hw/net/dp8393x.c @@ -897,12 +897,14 @@ static ssize_t dp8393x_receive(NetClientState *nc, co= nst uint8_t * buf, /* Move to next descriptor */ s->regs[SONIC_CRDA] =3D s->regs[SONIC_LLFA]; s->regs[SONIC_ISR] |=3D SONIC_ISR_PKTRX; - s->regs[SONIC_RSC] =3D (s->regs[SONIC_RSC] & 0xff00) | (((s->regs[= SONIC_RSC] & 0x00ff) + 1) & 0x00ff); + } =20 - if (s->regs[SONIC_RCR] & SONIC_RCR_LPKT) { - /* Read next RRA */ - dp8393x_do_read_rra(s); - } + s->regs[SONIC_RSC] =3D (s->regs[SONIC_RSC] & 0xff00) | + ((s->regs[SONIC_RSC] + 1) & 0x00ff); + + if (s->regs[SONIC_RCR] & SONIC_RCR_LPKT) { + /* Read next RRA */ + dp8393x_do_read_rra(s); } =20 /* Done */ --=20 2.24.1