From patchwork Fri Apr 26 08:02:24 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matthias Schiffer X-Patchwork-Id: 1928015 X-Patchwork-Delegate: trini@ti.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=tq-group.com header.i=@tq-group.com header.a=rsa-sha256 header.s=key1 header.b=Y45efIPD; dkim=fail reason="key not found in DNS" header.d=ew.tq-group.com header.i=@ew.tq-group.com header.a=rsa-sha256 header.s=dkim header.b=N9fE+yKZ; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=patchwork.ozlabs.org) Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4VQlZh3XLnz1yP2 for ; Fri, 26 Apr 2024 18:02:52 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 0418089136; Fri, 26 Apr 2024 10:02:50 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=ew.tq-group.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; unprotected) header.d=tq-group.com header.i=@tq-group.com header.b="Y45efIPD"; dkim=fail reason="key not found in DNS" (0-bit key; unprotected) header.d=ew.tq-group.com header.i=@ew.tq-group.com header.b="N9fE+yKZ"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 3F6C68913D; Fri, 26 Apr 2024 10:02:49 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.2 Received: from mx1.tq-group.com (mx1.tq-group.com [93.104.207.81]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 845D889139 for ; Fri, 26 Apr 2024 10:02:46 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=ew.tq-group.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=matthias.schiffer@ew.tq-group.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tq-group.com; i=@tq-group.com; q=dns/txt; s=key1; t=1714118566; x=1745654566; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=WmsrqWFmE3CyPLWQW7cOuqj6tBY9xE8lf8jDl87gQcQ=; b=Y45efIPDppYK2DKXA37PFVsbR3o2WFYoP3eCETVCFrn+azintCiqNUdy YNsV0m5Z1lIQULMsElil1nLKTZd1sa4Utm5Wh1LIy+hxtZSE7AR9YdPTv 2toFMiFIX+h+oPL+iI5KAg8Vz9Z4A/AE78q8tPbGqEHVCIRmFPpMsllcU gENQKWWOJGv284nd6otoJ3S6oKRgyXtDoEdTeVStrI/Jx4VAN5E5XM1DO vjjcOUEAGrUx1O5IWz9RnfX2lGY23R7WQTyYiB9jxfSABg9jUfTbERcaY auTSAGqbxI3p3ZNp3s7p/YO7mUiMD9UvCtArf7k7YwCSuT/lJo87JbERF A==; X-IronPort-AV: E=Sophos;i="6.07,231,1708383600"; d="scan'208";a="36629234" Received: from vmailcow01.tq-net.de ([10.150.86.48]) by mx1.tq-group.com with ESMTP; 26 Apr 2024 10:02:45 +0200 Received: from [127.0.0.1] (localhost [127.0.0.1]) by localhost (Mailerdaemon) with ESMTPSA id C5D8E16E982; Fri, 26 Apr 2024 10:02:40 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ew.tq-group.com; s=dkim; t=1714118561; h=from:subject:date:message-id:to:cc:mime-version:content-type: content-transfer-encoding; bh=WmsrqWFmE3CyPLWQW7cOuqj6tBY9xE8lf8jDl87gQcQ=; b=N9fE+yKZSMCX4qTZ++Pgw2DKy6QiaO4ztOgBCSVXSJaBAyQjlAHeEzO9EaAPPzmxCkBtgw qpMQwFVZtF4aQF9aDSuHou2fuxOfhewiG/W3VMUMCDQgG/RAWvmAKdrweLr+IbCSRdSZ/n 4H1GejhgZ0EormUEJV2Wond+UDUEq3pMGX5UK/lX6ls3QnBL5fB0SSw0slw8MfyC+tgs/y Gj4b0EjGneiiRRiejsWxI2QsJ/3mPM6sX4BzqTB7V3Imaa3+JmRg35AHJhqYWQD/jDy2cP 4OaDVZlq2Ryzxo9O3gnPcb7Jvo6Q6AjT+5WcMvtovq2AetQAoHmI3U85tl8Nlg== From: Matthias Schiffer To: Tom Rini , Joe Hershberger , Ramon Fried , MD Danish Anwar , Jai Luthra , Siddharth Vadapalli , Nishanth Menon , Udit Kumar , Suman Anna Cc: u-boot@lists.denx.de, u-boot@ew.tq-group.com, Matthias Schiffer Subject: [PATCH 1/5] net: eth-uclass: guard against reentrant eth_init()/eth_halt() calls Date: Fri, 26 Apr 2024 10:02:24 +0200 Message-ID: X-Mailer: git-send-email 2.43.2 MIME-Version: 1.0 X-Last-TLS-Session-Version: TLSv1.3 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.8 at phobos.denx.de X-Virus-Status: Clean With netconsole, any log message can result in an eth_init(), possibly causing an reentrant call into eth_init() if a driver's ops print anything: eth_init() -> driver.start() -> printf() -> netconsole -> eth_init() eth_halt() -> driver.stop() -> printf() -> netconsole -> eth_init() Rather than expecting every single Ethernet driver to handle this case, prevent the reentrant calls in eth_init() and eth_halt(). The issue was noticed on an AM62x board, where a bootm after simultaneous netconsole and TFTP would result in a crash. Signed-off-by: Matthias Schiffer --- net/eth-uclass.c | 40 ++++++++++++++++++++++++++++++++-------- 1 file changed, 32 insertions(+), 8 deletions(-) diff --git a/net/eth-uclass.c b/net/eth-uclass.c index 3d0ec91dfa4..193218a328b 100644 --- a/net/eth-uclass.c +++ b/net/eth-uclass.c @@ -48,6 +48,8 @@ struct eth_uclass_priv { /* eth_errno - This stores the most recent failure code from DM functions */ static int eth_errno; +/* Are we currently in eth_init() or eth_halt()? */ +static bool in_init_halt; /* board-specific Ethernet Interface initializations. */ __weak int board_interface_eth_init(struct udevice *dev, @@ -285,11 +287,19 @@ U_BOOT_ENV_CALLBACK(ethaddr, on_ethaddr); int eth_init(void) { - char *ethact = env_get("ethact"); - char *ethrotate = env_get("ethrotate"); struct udevice *current = NULL; struct udevice *old_current; int ret = -ENODEV; + char *ethrotate; + char *ethact; + + if (in_init_halt) + return -EBUSY; + + in_init_halt = true; + + ethact = env_get("ethact"); + ethrotate = env_get("ethrotate"); /* * When 'ethrotate' variable is set to 'no' and 'ethact' variable @@ -298,8 +308,10 @@ int eth_init(void) if ((ethrotate != NULL) && (strcmp(ethrotate, "no") == 0)) { if (ethact) { current = eth_get_dev_by_name(ethact); - if (!current) - return -EINVAL; + if (!current) { + ret = -EINVAL; + goto end; + } } } @@ -307,7 +319,8 @@ int eth_init(void) current = eth_get_dev(); if (!current) { log_err("No ethernet found.\n"); - return -ENODEV; + ret = -ENODEV; + goto end; } } @@ -324,7 +337,8 @@ int eth_init(void) priv->state = ETH_STATE_ACTIVE; priv->running = true; - return 0; + ret = 0; + goto end; } } else { ret = eth_errno; @@ -344,6 +358,8 @@ int eth_init(void) current = eth_get_dev(); } while (old_current != current); +end: + in_init_halt = false; return ret; } @@ -352,17 +368,25 @@ void eth_halt(void) struct udevice *current; struct eth_device_priv *priv; + if (in_init_halt) + return; + + in_init_halt = true; + current = eth_get_dev(); if (!current) - return; + goto end; priv = dev_get_uclass_priv(current); if (!priv || !priv->running) - return; + goto end; eth_get_ops(current)->stop(current); priv->state = ETH_STATE_PASSIVE; priv->running = false; + +end: + in_init_halt = false; } int eth_is_active(struct udevice *dev) From patchwork Fri Apr 26 08:02:25 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matthias Schiffer X-Patchwork-Id: 1928016 X-Patchwork-Delegate: trini@ti.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=tq-group.com header.i=@tq-group.com header.a=rsa-sha256 header.s=key1 header.b=K63LGroz; dkim=fail reason="key not found in DNS" header.d=ew.tq-group.com header.i=@ew.tq-group.com header.a=rsa-sha256 header.s=dkim header.b=SMKD7VlC; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=85.214.62.61; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=patchwork.ozlabs.org) Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4VQlb728mxz1yb7 for ; Fri, 26 Apr 2024 18:03:15 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id B72E58914C; Fri, 26 Apr 2024 10:02:54 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=ew.tq-group.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; unprotected) header.d=tq-group.com header.i=@tq-group.com header.b="K63LGroz"; dkim=fail reason="key not found in DNS" (0-bit key; unprotected) header.d=ew.tq-group.com header.i=@ew.tq-group.com header.b="SMKD7VlC"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id DA34B89147; Fri, 26 Apr 2024 10:02:52 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.2 Received: from mx1.tq-group.com (mx1.tq-group.com [93.104.207.81]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 93BA88913F for ; Fri, 26 Apr 2024 10:02:50 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=ew.tq-group.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=matthias.schiffer@ew.tq-group.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tq-group.com; i=@tq-group.com; q=dns/txt; s=key1; t=1714118570; x=1745654570; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=AjAmGJKCg0T8apAgPi1cyTjHf/YFG4vjrG59JJL2fdQ=; b=K63LGrozLOrztraDTZv2/LAmNX5C31m7Ku8GbImlvNBRAUZLXWPdD13N TDNmQ+0mbTwznDK1MXatri7n37/Iup9cMPecqur38VmFQutcqpr3OjvDm aGEiDDuvayv7LzRvp4NKDNnsfX5OMX3SWc2v4eP3INpmOuUnqPrEsovVK 4/8BWzqG/apXP45m9g2557dDRDU4FArVKtnBPdmJvCPS2RuZmfUWPJaZv 8eevf1GduYx7I7i0M/h1TH1ZppKnkbDql5rGJ9TvgHg4Z6rbV+IdMVWr1 HGkln+1UtIL6xk5jZFxJzm9F4Od5EQNYqt4UeSaHbp1OkB/bHm8LoOSl9 g==; X-IronPort-AV: E=Sophos;i="6.07,231,1708383600"; d="scan'208";a="36629238" Received: from vmailcow01.tq-net.de ([10.150.86.48]) by mx1.tq-group.com with ESMTP; 26 Apr 2024 10:02:49 +0200 Received: from [127.0.0.1] (localhost [127.0.0.1]) by localhost (Mailerdaemon) with ESMTPSA id D998416EB7C; Fri, 26 Apr 2024 10:02:45 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ew.tq-group.com; s=dkim; t=1714118566; h=from:subject:date:message-id:to:cc:mime-version:content-type: content-transfer-encoding:in-reply-to:references; bh=AjAmGJKCg0T8apAgPi1cyTjHf/YFG4vjrG59JJL2fdQ=; b=SMKD7VlCGNtEc8AnWZcF9YGvnjOH05Ui6W84kFhNYoCXtAmhY+sPPeGr+Gor8KlR6K45Yw TG9pG94kwizaBbeLYhC86Ljc83iZutRwdjni/A3HpSkF1bRvBApeTqodBGZMlpkxXwEGWa No4HQ0oBZz3qDdBYMM1iAorFdP3QQY7X2u+SjrG4WrdhikDBjoMMD6J/Qlif2K0suQvZtf KBEqx1GSGLhgV9xIE9YS9ymy+NPd9eBuNdiL4B/FuIEfMixHVM17gjYTVLB9n/RQ/QRRlG Ew/vg+7hz6JAu2XHAYbDNJEnrBY9HVhts6y3Ub/fjHZTAu0OwcFaCBSBlC9ryA== From: Matthias Schiffer To: Tom Rini , Joe Hershberger , Ramon Fried , MD Danish Anwar , Jai Luthra , Siddharth Vadapalli , Nishanth Menon , Udit Kumar , Suman Anna Cc: u-boot@lists.denx.de, u-boot@ew.tq-group.com, Matthias Schiffer Subject: [PATCH 2/5] net: ti: am65-cpsw-nuss: avoid errors due to imbalanced start()/stop() Date: Fri, 26 Apr 2024 10:02:25 +0200 Message-ID: <5aa919346ec1039c0f3a25f07bf04d6274810702.1714117337.git.matthias.schiffer@ew.tq-group.com> X-Mailer: git-send-email 2.43.2 In-Reply-To: References: MIME-Version: 1.0 X-Last-TLS-Session-Version: TLSv1.3 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.8 at phobos.denx.de X-Virus-Status: Clean The eth-uclass state machine doesn't prevent imbalanced start()/stop() calls - to the contrary, it even provides eth_init_state_only() and eth_halt_state_only() functions that change the state without any calls into the driver. This means that the driver must be robust against duplicate start() and stop() calls as well as send/recv calls while the interface is down. We decide not to print error messages but just to return an error in the latter case, as trying to send packets on a disabled interface commonly happens when the netconsole is still active after the Ethernet has been halted during bootm. Signed-off-by: Matthias Schiffer --- drivers/net/ti/am65-cpsw-nuss.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/drivers/net/ti/am65-cpsw-nuss.c b/drivers/net/ti/am65-cpsw-nuss.c index b151e25d6a4..4a57e945a3a 100644 --- a/drivers/net/ti/am65-cpsw-nuss.c +++ b/drivers/net/ti/am65-cpsw-nuss.c @@ -328,6 +328,9 @@ static int am65_cpsw_start(struct udevice *dev) struct ti_udma_drv_chan_cfg_data *dma_rx_cfg_data; int ret, i; + if (common->started) + return 0; + ret = power_domain_on(&common->pwrdmn); if (ret) { dev_err(dev, "power_domain_on() failed %d\n", ret); @@ -488,6 +491,9 @@ static int am65_cpsw_send(struct udevice *dev, void *packet, int length) struct ti_udma_drv_packet_data packet_data; int ret; + if (!common->started) + return -ENETDOWN; + packet_data.pkt_type = AM65_CPSW_CPPI_PKT_TYPE; packet_data.dest_tag = priv->port_id; ret = dma_send(&common->dma_tx, packet, length, &packet_data); @@ -504,6 +510,9 @@ static int am65_cpsw_recv(struct udevice *dev, int flags, uchar **packetp) struct am65_cpsw_priv *priv = dev_get_priv(dev); struct am65_cpsw_common *common = priv->cpsw_common; + if (!common->started) + return -ENETDOWN; + /* try to receive a new packet */ return dma_receive(&common->dma_rx, (void **)packetp, NULL); } From patchwork Fri Apr 26 08:02:26 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matthias Schiffer X-Patchwork-Id: 1928017 X-Patchwork-Delegate: trini@ti.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=tq-group.com header.i=@tq-group.com header.a=rsa-sha256 header.s=key1 header.b=eLRdsyTe; dkim=fail reason="key not found in DNS" header.d=ew.tq-group.com header.i=@ew.tq-group.com header.a=rsa-sha256 header.s=dkim header.b=e8NwUZUG; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=patchwork.ozlabs.org) Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4VQlbL32lkz1yb7 for ; Fri, 26 Apr 2024 18:03:26 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 25BC089140; Fri, 26 Apr 2024 10:02:58 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=ew.tq-group.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; unprotected) header.d=tq-group.com header.i=@tq-group.com header.b="eLRdsyTe"; dkim=fail reason="key not found in DNS" (0-bit key; unprotected) header.d=ew.tq-group.com header.i=@ew.tq-group.com header.b="e8NwUZUG"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 70B2888EF8; Fri, 26 Apr 2024 10:02:57 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.2 Received: from mx1.tq-group.com (mx1.tq-group.com [93.104.207.81]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 2859589145 for ; Fri, 26 Apr 2024 10:02:55 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=ew.tq-group.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=matthias.schiffer@ew.tq-group.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tq-group.com; i=@tq-group.com; q=dns/txt; s=key1; t=1714118574; x=1745654574; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=eLMyik4jwIvxzanoiox4VPCgipj7fBmhrcMJjO4krV4=; b=eLRdsyTeVfFiL/1fAUXamzC2P+1dZMj4KMHcvhsNYD+eMP2flfqIxaco N8iVEaE9c92UCymQpS7g5Ag/4yEIB3nMfS74TYU17krxDteJUzEm7a0zv A2he3sGlqTr0U2P7OxXwmO2rKY8N5+yCWsrLrjf2ZMXmuv4S6MQvu28bv Ejc6BvlqkkGptxfAm/ur20S6SQpT9u80/x3WJVd8e98+oaIcvfABFfbI/ fze/SHWgyNlRFPTww5i02pkhwu+lZ6Moz/Nw/u0Xbxtu3i5vqxJmpjuFB MVpFbzrw/T2jUgj9mJVPkt/eYavEL1Dj3X5lr12UvPw9zM35RwBzf/Y8+ A==; X-IronPort-AV: E=Sophos;i="6.07,231,1708383600"; d="scan'208";a="36629245" Received: from vmailcow01.tq-net.de ([10.150.86.48]) by mx1.tq-group.com with ESMTP; 26 Apr 2024 10:02:54 +0200 Received: from [127.0.0.1] (localhost [127.0.0.1]) by localhost (Mailerdaemon) with ESMTPSA id 5C3C216F00B; Fri, 26 Apr 2024 10:02:50 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ew.tq-group.com; s=dkim; t=1714118570; h=from:subject:date:message-id:to:cc:mime-version:content-type: content-transfer-encoding:in-reply-to:references; bh=eLMyik4jwIvxzanoiox4VPCgipj7fBmhrcMJjO4krV4=; b=e8NwUZUGrEkc89Lj6c1ZzTRIyWHzOKiNytfsraFAqv7q3burGCM6Dkg0hZSuUgLoVjsNn9 WUUcOYrNX44I+/J0kCU4lhpB40FYbpMPqzIDoVsPguAKUS3J4H0VLSeRnCPlf//+WexqpZ 5w/e+puf6lKnP31Td8tvNIHRuhZp+dmIJvc0EWAaZ2zPf5VSHjUj2Uht0pg05ofmkzLhTi jWgMAfEuYW5S6/rdlr6wUFyKrGtgOR4R6jDHZdQP/N1TNiw+snnMt8SNsdAQz8+jrPHerT m3RkGhEv1/tR1IA/8uSohAbR3Dl/p80qtkXUbJZ9s2eE2OV8ToXJA14TpV/m6A== From: Matthias Schiffer To: Tom Rini , Joe Hershberger , Ramon Fried , MD Danish Anwar , Jai Luthra , Siddharth Vadapalli , Nishanth Menon , Udit Kumar , Suman Anna Cc: u-boot@lists.denx.de, u-boot@ew.tq-group.com, Matthias Schiffer Subject: [PATCH 3/5] net: ti: am65-cpsw-nuss: fix error handling for "RX dma add buf failed" Date: Fri, 26 Apr 2024 10:02:26 +0200 Message-ID: <93c1d3ea7a0f90d08d267c5acf9b59e65aaccf62.1714117337.git.matthias.schiffer@ew.tq-group.com> X-Mailer: git-send-email 2.43.2 In-Reply-To: References: MIME-Version: 1.0 X-Last-TLS-Session-Version: TLSv1.3 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.8 at phobos.denx.de X-Virus-Status: Clean The RX DMA channel has been requested at this point already, so it must be freed. Signed-off-by: Matthias Schiffer --- drivers/net/ti/am65-cpsw-nuss.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/ti/am65-cpsw-nuss.c b/drivers/net/ti/am65-cpsw-nuss.c index 4a57e945a3a..65ade1afd05 100644 --- a/drivers/net/ti/am65-cpsw-nuss.c +++ b/drivers/net/ti/am65-cpsw-nuss.c @@ -362,7 +362,7 @@ static int am65_cpsw_start(struct udevice *dev) UDMA_RX_BUF_SIZE); if (ret) { dev_err(dev, "RX dma add buf failed %d\n", ret); - goto err_free_tx; + goto err_free_rx; } } From patchwork Fri Apr 26 08:02:27 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matthias Schiffer X-Patchwork-Id: 1928018 X-Patchwork-Delegate: trini@ti.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=tq-group.com header.i=@tq-group.com header.a=rsa-sha256 header.s=key1 header.b=JblzyeKd; dkim=fail reason="key not found in DNS" header.d=ew.tq-group.com header.i=@ew.tq-group.com header.a=rsa-sha256 header.s=dkim header.b=OtLjTrTC; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=85.214.62.61; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=patchwork.ozlabs.org) Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4VQlbY6tHpz1yb7 for ; Fri, 26 Apr 2024 18:03:37 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id C71F189145; Fri, 26 Apr 2024 10:03:04 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=ew.tq-group.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; unprotected) header.d=tq-group.com header.i=@tq-group.com header.b="JblzyeKd"; dkim=fail reason="key not found in DNS" (0-bit key; unprotected) header.d=ew.tq-group.com header.i=@ew.tq-group.com header.b="OtLjTrTC"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 2CEA988EF8; Fri, 26 Apr 2024 10:03:03 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.2 Received: from mx1.tq-group.com (mx1.tq-group.com [93.104.207.81]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id A793F89141 for ; Fri, 26 Apr 2024 10:02:59 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=ew.tq-group.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=matthias.schiffer@ew.tq-group.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tq-group.com; i=@tq-group.com; q=dns/txt; s=key1; t=1714118579; x=1745654579; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=komg8GauXcsCHzgcAjcOHLd3Ikxp+w0VFSzGtBJ+Y+U=; b=JblzyeKd0lGGQphXpg4MatMiKI96FUklOgiipMp5AYouRAPLSmgMmokJ Gl0DKQSTk1/bvMfk19gGXxIuIx5eb2Fp2dObKI4U9KDJDbbfBzrmi2pyh /b2gUAh8c3kil7pV8Tby17CD8T1Qgln8vVaQtbEFpf9fWPxB0izK8CW4g uCUz+1VQo3RaR14mlmd9Iu5BEAtw9w9D8FCQNGwbxmRO0QggRHiHZI/as bwP2p4W0Se1KFsCeU8gOe+R12fCibNv651L6wWu61sacxonMk/zMizZrO nRU6Jtw/dysKz3UAGcxw0QxkKQ41quQB1B5suYZDvwMqtlPTZ4GY7TI96 w==; X-IronPort-AV: E=Sophos;i="6.07,231,1708383600"; d="scan'208";a="36629248" Received: from vmailcow01.tq-net.de ([10.150.86.48]) by mx1.tq-group.com with ESMTP; 26 Apr 2024 10:02:58 +0200 Received: from [127.0.0.1] (localhost [127.0.0.1]) by localhost (Mailerdaemon) with ESMTPSA id CB73517136D; Fri, 26 Apr 2024 10:02:54 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ew.tq-group.com; s=dkim; t=1714118575; h=from:subject:date:message-id:to:cc:mime-version:content-type: content-transfer-encoding:in-reply-to:references; bh=komg8GauXcsCHzgcAjcOHLd3Ikxp+w0VFSzGtBJ+Y+U=; b=OtLjTrTCXU7NsOkH7CTfwqdIPYy0OhuMIDdn3Hyr2vm4vjiuwHDOtQzxB8dx8KEEIybey0 5BD/Kcy2c4CqrqRE1KXUAsxrxl7ACL567cyKuRw/NaQTLbc1Wk+BSla849mnTIfnMz4mW8 yLX1OxvtG1KKEbXuA7Zts04ZILZ1+7e0K/dtq/uj/2GUXKA4uPJTK5tj3wdIni65GtYSsd B2GeVODVSa09bKoPFGlyYtHP/JSUmwm9l4ufAgijzkcrrlrMcMFsP3x/cp5WKTx6/+o4Ej W+c+54Ght6c4mvN39veWcbytnDvzZEFel5rNI+meIT5IbRvJJFYhlFpjPR/bXQ== From: Matthias Schiffer To: Tom Rini , Joe Hershberger , Ramon Fried , MD Danish Anwar , Jai Luthra , Siddharth Vadapalli , Nishanth Menon , Udit Kumar , Suman Anna Cc: u-boot@lists.denx.de, u-boot@ew.tq-group.com, Matthias Schiffer Subject: [PATCH 4/5] dma: ti: k3-udma: add missing include Date: Fri, 26 Apr 2024 10:02:27 +0200 Message-ID: X-Mailer: git-send-email 2.43.2 In-Reply-To: References: MIME-Version: 1.0 X-Last-TLS-Session-Version: TLSv1.3 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.8 at phobos.denx.de X-Virus-Status: Clean net.h is needed for PKTBUFSRX. Without this definition, the driver will always use 4 RX buffers, causing am65-cpsw-nuss initialization to fail when a higher number of buffers is requested. Signed-off-by: Matthias Schiffer --- drivers/dma/ti/k3-udma.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/dma/ti/k3-udma.c b/drivers/dma/ti/k3-udma.c index ef3074aa13f..4e6f7f570c5 100644 --- a/drivers/dma/ti/k3-udma.c +++ b/drivers/dma/ti/k3-udma.c @@ -12,6 +12,7 @@ #include #include #include +#include #include #include #include From patchwork Fri Apr 26 08:02:28 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matthias Schiffer X-Patchwork-Id: 1928019 X-Patchwork-Delegate: trini@ti.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=tq-group.com header.i=@tq-group.com header.a=rsa-sha256 header.s=key1 header.b=gpeeLhGO; dkim=fail reason="key not found in DNS" header.d=ew.tq-group.com header.i=@ew.tq-group.com header.a=rsa-sha256 header.s=dkim header.b=ilnlbrDn; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=patchwork.ozlabs.org) Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4VQlbn2Lvbz1yb7 for ; Fri, 26 Apr 2024 18:03:49 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 2BB0F8914A; Fri, 26 Apr 2024 10:03:10 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=ew.tq-group.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; unprotected) header.d=tq-group.com header.i=@tq-group.com header.b="gpeeLhGO"; dkim=fail reason="key not found in DNS" (0-bit key; unprotected) header.d=ew.tq-group.com header.i=@ew.tq-group.com header.b="ilnlbrDn"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 235F88915B; Fri, 26 Apr 2024 10:03:08 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.2 Received: from mx1.tq-group.com (mx1.tq-group.com [93.104.207.81]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 2B59D88EF8 for ; Fri, 26 Apr 2024 10:03:04 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=ew.tq-group.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=matthias.schiffer@ew.tq-group.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tq-group.com; i=@tq-group.com; q=dns/txt; s=key1; t=1714118583; x=1745654583; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=/JV6d2ir3FmMS2C8p9V/8pX87bdwS5QoIkkHOu736IM=; b=gpeeLhGOWCBgu1mViy8fLnpOvStH3R9lhGYq7zxxyY/o/Fw6Vhklb3i7 5gIAwZB8LJLZTSvZTvN4b+JSpEf6CHEKitG4Ka4GI+Fc32oYohuYFHkBw iF4lSKmorsMqD/XYBN1ba9qBNqHL1ugPzRGUme89mHBcHrYQWerttOJ3K 6ul8t6b9iW597PVfN7zmfTFmth8f01vCz7NlkIg3N0RM1yaU4VAfpajSp APNinEaZKVXWNTsBMz6rSpqgwWWFR2IaICLKL13qFYuUOOwu/jXsuLDME RtQaWSUaIvTCKgBhEYfPMhtsgGL/EQmZJZklUfaeU4WdDbIE4v1HO6egr A==; X-IronPort-AV: E=Sophos;i="6.07,231,1708383600"; d="scan'208";a="36629249" Received: from vmailcow01.tq-net.de ([10.150.86.48]) by mx1.tq-group.com with ESMTP; 26 Apr 2024 10:03:03 +0200 Received: from [127.0.0.1] (localhost [127.0.0.1]) by localhost (Mailerdaemon) with ESMTPSA id 5A92916FC9C; Fri, 26 Apr 2024 10:02:59 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ew.tq-group.com; s=dkim; t=1714118579; h=from:subject:date:message-id:to:cc:mime-version:content-type: content-transfer-encoding:in-reply-to:references; bh=/JV6d2ir3FmMS2C8p9V/8pX87bdwS5QoIkkHOu736IM=; b=ilnlbrDnf3gjylseeTnVgkuEfOhcu4WCYLp4cbYuih8kDcoI5HDNE7B/GjWKK8yLHTRBem ftAuDOJhUH3oSHpKBRn1pPQZOueH25yB59srpRZLlFR+fdnguzHWdF08cLglp8xcER2BWv Q1n8OqIgmoUkKAm2yB7OZeOAgdvbytlfPuml1k/jIoswHhihdk9FeV8S6Xs71HweH1shwV p0wbyBZFHasdbUeJUt8Ryb6qkDGaYZ4aZs8QDnddLZpnsf+pGBIvWUGYQK3nW4eBDqS1CV Iipag6bqM/4xsszJDGSoyRuBxOSGU5slGXNrm39WR6zwhT5igLkT2+QvT4yzcQ== From: Matthias Schiffer To: Tom Rini , Joe Hershberger , Ramon Fried , MD Danish Anwar , Jai Luthra , Siddharth Vadapalli , Nishanth Menon , Udit Kumar , Suman Anna Cc: u-boot@lists.denx.de, u-boot@ew.tq-group.com, Matthias Schiffer Subject: [PATCH 5/5] dma: ti: k3-udma: invalidate prepared buffers before pushing to recv ring Date: Fri, 26 Apr 2024 10:02:28 +0200 Message-ID: X-Mailer: git-send-email 2.43.2 In-Reply-To: References: MIME-Version: 1.0 X-Last-TLS-Session-Version: TLSv1.3 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.8 at phobos.denx.de X-Virus-Status: Clean Buffers must not have an unclean cache before being used for DMA - a pending write-back may corrupt the next dev-to-mem transfer otherwise. This was consistently noticeable during long TFTP transfers, when an ARP request is answered by U-Boot in the middle of the transfer: As U-Boot's arp_receive() reuses the receive buffer to prepare its reply packet, the beginning of one of the next incoming TFTP packets is overwritten by the ARP reply. The corrupted packet is ignored, but the TFTP transfer stalls for a few seconds until a timeout is detected and a retransmit is triggered. Signed-off-by: Matthias Schiffer Tested-by: Alexander Sverdlin --- drivers/dma/ti/k3-udma.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/dma/ti/k3-udma.c b/drivers/dma/ti/k3-udma.c index 4e6f7f570c5..8f6d396653e 100644 --- a/drivers/dma/ti/k3-udma.c +++ b/drivers/dma/ti/k3-udma.c @@ -2678,6 +2678,9 @@ int udma_prepare_rcv_buf(struct dma *dma, void *dst, size_t size) cppi5_hdesc_set_pktlen(desc_rx, size); cppi5_hdesc_attach_buf(desc_rx, dma_dst, size, dma_dst, size); + invalidate_dcache_range((unsigned long)dma_dst, + (unsigned long)(dma_dst + size)); + flush_dcache_range((unsigned long)desc_rx, ALIGN((unsigned long)desc_rx + uc->config.hdesc_size, ARCH_DMA_MINALIGN));