From nobody Mon Feb 9 16:22:03 2026 Received: from mail-wr1-f45.google.com (mail-wr1-f45.google.com [209.85.221.45]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DE1AF3587A0 for ; Wed, 17 Dec 2025 13:58:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765979887; cv=none; b=sS3V5fc04K8Seu1xG0EmjYxW1VcblQwgdhBcGu3x0rxfsSiJbXxSQLJE0YmqL2yfzk2XO/y//kKJ/I4yg31gITSPLLLZot3imjCFFrTHu9vyhmelZlDgSfkQFe5d71j7i3WBJUxXNkxHTCHdSUWBTitYb7s4Jo02sRP43JN8/eU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765979887; c=relaxed/simple; bh=QpvGPI1QC38ns1TQ9emS39EWBDfc1X1yaD+QfJzzSr4=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=LvEIPtA3woVxxHQ1/ezTuI7XOIZ0jsgIbKsa2PUM0qNn5UXAFWX5zArtFeR/NDRzn30EOgbcURZ4xlYXsxwae1/F8iAapRx4W87J2F4RFCsyte4/c5pzEk6nAu2mAy+sWvOolURJRHN0ppDq9iy0QdB5ZUKCurFe5b0bcKjuPEM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=tuxon.dev; spf=pass smtp.mailfrom=tuxon.dev; dkim=pass (2048-bit key) header.d=tuxon.dev header.i=@tuxon.dev header.b=fJSoMrK5; arc=none smtp.client-ip=209.85.221.45 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=tuxon.dev Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=tuxon.dev Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=tuxon.dev header.i=@tuxon.dev header.b="fJSoMrK5" Received: by mail-wr1-f45.google.com with SMTP id ffacd0b85a97d-42e33956e76so2683254f8f.3 for ; Wed, 17 Dec 2025 05:58:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tuxon.dev; s=google; t=1765979883; x=1766584683; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=4HlZloNFFx/UivoiHTkjRab58Z2MwleM1jMI43+NTNY=; b=fJSoMrK5Pyhta0KdCvvzMlPiINFDstHf5ZcYDwPP4A5GYTdzEvnhU72c20pN1PG/kh C/trYoGTiEL1KDeA4mUsA+sM4c66fn61cLSUFnxbkZH8zYxr2FelVOX5WeGkszCbflcj H1BmfBGddERO2WGXUqB69Cnx3d8zjpFwnRKRUYRgj2n63HLhZ97uXuSgpDBPx9azV5Ui w/ozPgMby2XV3C3VLNqJj5I4TIcHZdx82uuZzrPBZw1O1yZtc1PFDOeMV+f6LneibvER 1cCvdH+3HQwHG4wC3h6VCE+XVm/AEmOexXn7k+1fEkEVJlkx0G1BofxmeYJl27JO/AGV C3nQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765979883; x=1766584683; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=4HlZloNFFx/UivoiHTkjRab58Z2MwleM1jMI43+NTNY=; b=EWP7EUtu+fa6sIln5cQFM13j/glV6RXjWDgPvjRJG5+cReKwNy4G1DDSAEfR1TfCMW j/kNI8X1808WDiBbUOVSzlWTqLdPaQ9axpcy8VXAZ1qLXymR4ctWjc3w/QZ3eR6JIkzj +8FYkDKj8RW+GCnlD67rDb0LcYDwp3W5l9xLx3xQ6dkH5SXjYyMSRuOP0lwD/6S257lW 8Z5NxO36CTM5FDw0cv2SFH2fICRZSgGbGTJSuOk28wAECIiwcF2cVKRbGdSiyBcBnlzs KSsJlD36CnKYakhDWajbCdbL0t1cyvErmNIXJPROLTeqFWh3OvOFSAAft7IfwBXX2Fka wY+g== X-Forwarded-Encrypted: i=1; AJvYcCV/Zu6SaOn3p0O9Ib1n5C2o0D4YX23sdBvMrRz2F/G94Blhd5GSUp/4JVLhbgwXA+MHr5kcBXJpOUQYlgM=@vger.kernel.org X-Gm-Message-State: AOJu0YwHfNzQmt2NWAPOJwrTvfxdEh2orpa0aKnTv2xIEtGyHD4Ydbaa BM1rzuCpDZYQRsopQ3gfM4z9C1DGtxcrGTczQ020tFl+4qTtIc2JYItCE2tVyYumcAI= X-Gm-Gg: AY/fxX5PjIO4O5lAYk84B5JQYHkZHkqzcVqTyPrngIcoKxvahPzxZAt5QLq/8ElWhN8 eAnissjVXEHHAsTt/RMFBHnuYftJZIFNBuQLjRoH2M7XoPqSCUjwMYb2FWwE4eXlWh8v6sZKTl5 asTXZXkehUmOeEeAzOYPNMD24yvPEwtMZLpP0ykf4RUAVwEzFZvZoAbgWdvqnc49Nerw89v5vaT dybxfdfpu9RVIlot5Ds0leBaEtYMjgR4cGHvpn9VPIY1UEhtxxl7sDI3d4LLYrhlinsqZL7Cpzg XO2znV6DxpUizcblFgjksoTXLPtu965UgmJYeLpgdhoOab40BqMwU0FqQeXLgPd/umotlSMS6KF /JkAKlUyNP7ZAciWGbl5Hs1Tl/9ysjYK6XwVRiZYETtV6ulDPtIRkksnJwKRC4iaQb4s+nQSpHz ieMWI+zrwDEZw3cCxBFu7x+fcCVrIwg0Vb7Kg83qTE X-Google-Smtp-Source: AGHT+IEIS8MqzIfRpyVv3TKeZOzBwWHNPpXl+C09WJPdJfQdbR31Pfy1vU+QJIhIB6+MFCKEcYlCGw== X-Received: by 2002:a5d:584a:0:b0:431:54c:6f7 with SMTP id ffacd0b85a97d-431054c087emr6315110f8f.37.1765979882987; Wed, 17 Dec 2025 05:58:02 -0800 (PST) Received: from claudiu-X670E-Pro-RS.. ([82.78.167.134]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-4310ada846bsm4852976f8f.9.2025.12.17.05.58.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Dec 2025 05:58:02 -0800 (PST) From: Claudiu X-Google-Original-From: Claudiu To: gregkh@linuxfoundation.org, jirislaby@kernel.org, geert+renesas@glider.be, prabhakar.mahadev-lad.rj@bp.renesas.com, wsa+renesas@sang-engineering.com, namcao@linutronix.de Cc: claudiu.beznea@tuxon.dev, linux-serial@vger.kernel.org, linux-kernel@vger.kernel.org, Claudiu Beznea , stable@vger.kernel.org Subject: [PATCH] serial: sh-sci: Check that the DMA cookie is valid Date: Wed, 17 Dec 2025 15:57:59 +0200 Message-ID: <20251217135759.402015-1-claudiu.beznea.uj@bp.renesas.com> X-Mailer: git-send-email 2.43.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Claudiu Beznea The driver updates struct sci_port::tx_cookie to zero right before the TX work is scheduled, or to -EINVAL when DMA is disabled. dma_async_is_complete(), called through dma_cookie_status() (and possibly through dmaengine_tx_status()), considers cookies valid only if they have values greater than or equal to 1. Passing zero or -EINVAL to dmaengine_tx_status() before any TX DMA transfer has started leads to an incorrect TX status being reported, as the cookie is invalid for the DMA subsystem. This may cause long wait times when the serial device is opened for configuration before any TX activity has occurred. Check that the TX cookie is valid before passing it to dmaengine_tx_status(). Fixes: 7cc0e0a43a91 ("serial: sh-sci: Check if TX data was written to devic= e in .tx_empty()") Cc: stable@vger.kernel.org Signed-off-by: Claudiu Beznea Reviewed-by: Geert Uytterhoeven --- drivers/tty/serial/sh-sci.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/tty/serial/sh-sci.c b/drivers/tty/serial/sh-sci.c index 53edbf1d8963..fbfe5575bd3c 100644 --- a/drivers/tty/serial/sh-sci.c +++ b/drivers/tty/serial/sh-sci.c @@ -1914,7 +1914,7 @@ static void sci_dma_check_tx_occurred(struct sci_port= *s) struct dma_tx_state state; enum dma_status status; =20 - if (!s->chan_tx) + if (!s->chan_tx || s->cookie_tx <=3D 0) return; =20 status =3D dmaengine_tx_status(s->chan_tx, s->cookie_tx, &state); --=20 2.43.0