From nobody Mon Jun 8 14:36:13 2026 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AC47C390224 for ; Thu, 28 May 2026 17:18:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779988707; cv=none; b=smJHpJgA+c/PxiWF/+zKgmV5LFqh3Nb5VL5J6LX1DUs76KANKPdmqjgNcFGBNXTtMez4OSUg/UKFDmtmKfTYgd3JK642EzHaUZmOWvNpHF7Hox6cvLkMVFiN5atUqjU/OvYnCPbUqMEALKoqCkMmn0s04Yfx4XGUNcKH3r/tzag= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779988707; c=relaxed/simple; bh=KYjKvckY/VAl6XCtEiN8jjSXIWwmJfrlKKhhzB3/mOk=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:To:Cc; b=m5FSqUV9yWMyuNeM5XIUNzbC3tOC6mRp9JK+7rEdz8qWcdymQOOAyxBNrjEK8sHNjDQpGrSHZ01GX+7Z1aSRpqrwVh/dok+m8GNXz8Olgwlh5Y4eJcTyvqrA+MxrdKWm8Vyw3cRDrGsofJTFjo9BPCwqL2yXcr0Ec2gmNupqwEk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=IKsDATQg; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=WNAiXosX; arc=none smtp.client-ip=205.220.168.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="IKsDATQg"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="WNAiXosX" Received: from pps.filterd (m0279865.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64SGwLxh2753754 for ; Thu, 28 May 2026 17:18:25 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:message-id :mime-version:subject:to; s=qcppdkim1; bh=861lfeuRlAbmY/H78CLEEr qRlCIH8BpNiqVeOaDNe7w=; b=IKsDATQgdKfOLF2p64CxsNb6cCr6SLakMEWPKP pTdtcdmevPWwHUyO9/VbXbF3wV03MpVMEa3KZmTlFTgM5yQMgZ248p4QtABfaXcg RNLMM7qNBRSL2Im9f/ds+qON6xLNyZxzK0+FKS6PtFgi/bTqLV6AMGsFhSAtZNaK ugwfdW/9K3iuK8UCLEZbfJDRP1XeUfOJNmD0L+qPDjrTYORSYPz1rUuM4OAf3qH2 VZsygK7S4v2DBfnXw2ODHwJltO0YtMCHYwqSkWF3vh57zm3nYCV09WPp0zU/Vfar VJlodIDbycF1wQJLmayDQpObLnNr/nrHVVLZgvVhElS7Em6g== Received: from mail-pj1-f70.google.com (mail-pj1-f70.google.com [209.85.216.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4eespn02v7-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 28 May 2026 17:18:24 +0000 (GMT) Received: by mail-pj1-f70.google.com with SMTP id 98e67ed59e1d1-36b982ec27aso601662a91.1 for ; Thu, 28 May 2026 10:18:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1779988704; x=1780593504; darn=vger.kernel.org; h=cc:to:message-id:content-transfer-encoding:mime-version:subject :date:from:from:to:cc:subject:date:message-id:reply-to; bh=861lfeuRlAbmY/H78CLEErqRlCIH8BpNiqVeOaDNe7w=; b=WNAiXosXnSVx5XpdnPEOy+hjfrWogNYPPEzfQq0AkPuYweldn0qRWgH99vtULOTZ67 TON/oH3e6mDV9OZ8yDAYO14hNYv0fdUpsLk+FIVzpe8jtW7nFwJf36KvU5RHfmw6RwuD qkaLgFAdldmexVOhwgjMJiQ2+I1YJQ89Tps3pu187ko3EWpme7hthhLJcPVRewfi6y/3 JnnVbDu9h9u1zlRbMnjOhmt4r3rFjO6VzXULHeX0MyUPbVf/dwXjm92C7DTNmH6LJuWu C10tIZSWTe7IqGDMxM5M6s8y1aNuVPMhaTSWcYSD3NASGxUSxsgMHEP4WSS7kgBtnCIu hfJw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779988704; x=1780593504; h=cc:to:message-id:content-transfer-encoding:mime-version:subject :date:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=861lfeuRlAbmY/H78CLEErqRlCIH8BpNiqVeOaDNe7w=; b=MgzK6/Hms+mIC6HhprEdc7FFCGgUerqD+kXoSDkFNamYptC0X6Y0Ukik0+mfnZkWJX t3tmY14UX7UNDB9todOZ59z8Nde1hminyMLvkEPReHOsWQrRdyMGNmexWSt8wnK88iJZ 8zyII2nKxydYyQohZKIdPNdqMhdAG0RHJVeCkfNfjXoU6XCAKFgpQU3wMz5axR1grVOr Cd1JaxocFlGBrYfGf61uoqUw4UoY/COUxvN2HhbGwPKLULGy0rKU3A6icH9MW7GPMvp4 Q6ERl8J4VluHKTfw/1isOaaHa8sNpo5BmjQ7AtpL1x/8fjVVA+p7ElvzjuRhyuRbD0Kj E98w== X-Forwarded-Encrypted: i=1; AFNElJ+enEzgkz4zDTz1P3mMzalqzVw/xq39j3UZ4LtP4IZRgdORxMXxF817LwR/x+hFsf94Sgk6DFJ2Sfypj64=@vger.kernel.org X-Gm-Message-State: AOJu0YxZbGMYWZv3OOOMvKxALEwxFi5/8frsmAj9mQ5N5xMke1hvgMwq kQzwKX77jmOqeB4EJzrXECKS9+VmHJjH3R8kzRxEXGtACfmFWMFuA0UUm7kce81Jm76Cz5aJI16 7FvahO44v80G9UqJv8Rzqh71LNuQvDL7CVcSv1m8PDw1qW4nWilgPZEk04r1IHjP5S2A= X-Gm-Gg: Acq92OEU7TgnLqFp8Azd7tIkixKMgZEDEj7zCfPmxXoaJfRwwGCb/Ty4IU6TBiNxkII y7YZp+UaC7c+FHFbdDAT8SPMAc9EZLC5a/3ocg08r7Y47v/EPmEg4euIGcKA8Mn0vBMGjUR9149 XfJHFsQFwpJ0BIiiBxwcB632GJ9YTUNOAjKByzblev00p3G+LLZPMfw/RpVyy5q4BfD7Tacr9r8 09ZDQDXiEr8raDoJ04elJstS0YftvxhW/yHTrzaKCQSylS9xRYXFAAZe7Kr3e2qyC72Cl5WPsB4 YIV8Yff+Nk/UYMjrluSKkwwz7Zao6p7t9Hl0c8zIauPW8mqLkuHvoa3lM3alwXMQKmt1ZttVSos NIx8rKyHw4gZM6plzFulbBE3hb0FPB9bCbh0jG2/TUY9SBi4OUV5D6I7K8aCujVIFTPbC X-Received: by 2002:a17:90b:5343:b0:368:a27f:9083 with SMTP id 98e67ed59e1d1-36a67761c51mr25386489a91.7.1779988704063; Thu, 28 May 2026 10:18:24 -0700 (PDT) X-Received: by 2002:a17:90b:5343:b0:368:a27f:9083 with SMTP id 98e67ed59e1d1-36a67761c51mr25386462a91.7.1779988703499; Thu, 28 May 2026 10:18:23 -0700 (PDT) Received: from hu-vdadhani-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36b90c03314sm2500410a91.14.2026.05.28.10.18.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 28 May 2026 10:18:22 -0700 (PDT) From: Viken Dadhaniya Date: Thu, 28 May 2026 22:48:07 +0530 Subject: [PATCH v2] serial: qcom_geni: Fix RX DMA stall when SE_DMA_RX_LEN_IN is zero Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260528-serial-rx-0-byte-fix-v2-1-b4195cfe342f@oss.qualcomm.com> X-B4-Tracking: v=1; b=H4sIAM94GGoC/4WNQQ6CMBBFr0K6dkipCpWV9zAsYBikBqh2gEAId 7fFA7iZ5E3e/38TTM4QizzahKPZsLGDB3WKBLbl8CQwtWehpErlVWkIftmBW0BCtY4EjVmA8FZ LjQ1lmoSPvh3591H7KH7MU/UiHENXMFrDo3XrsTsnwfszMSeQQI0X0lmK2TnVd8scf6ayQ9v3s T+i2Pf9C1vJtkzRAAAA X-Change-ID: 20260528-serial-rx-0-byte-fix-ec9d08cfe78e To: Greg Kroah-Hartman , Jiri Slaby , Bartosz Golaszewski Cc: linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-serial@vger.kernel.org, stable@vger.kernel.org, Bartosz Golaszewski , Viken Dadhaniya X-Mailer: b4 0.16-dev X-Developer-Signature: v=1; a=ed25519-sha256; t=1779988699; l=2081; i=viken.dadhaniya@oss.qualcomm.com; s=20260324; h=from:subject:message-id; bh=KYjKvckY/VAl6XCtEiN8jjSXIWwmJfrlKKhhzB3/mOk=; b=aTPBsPo1CPjLI0wCQbsFX1lYscFAfml4I823i+RA/CpTzZFoKJFg+kGzqK2JqJGlkDA2VYfix Eqa75SLa32SCdSfwiik59LX3RqL/iCTpYVeJoBymFfdHiMRRPq3rvIj X-Developer-Key: i=viken.dadhaniya@oss.qualcomm.com; a=ed25519; pk=C39f+LOIGhh/02LQpT46TsUSXRvBn9qXC8Xb26KJ44Y= X-Proofpoint-GUID: 0bWT5YcU1BARzrR6AN6l9gAXwhR4NYIb X-Proofpoint-ORIG-GUID: 0bWT5YcU1BARzrR6AN6l9gAXwhR4NYIb X-Authority-Analysis: v=2.4 cv=auOCzyZV c=1 sm=1 tr=0 ts=6a1878e0 cx=c_pps a=0uOsjrqzRL749jD1oC5vDA==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=Um2Pa8k9VHT-vaBCBUpS:22 a=bC-a23v3AAAA:8 a=EUspDBNiAAAA:8 a=VwQbUJbxAAAA:8 a=tI4oF7B6g8YmWx8mlzIA:9 a=QEXdDO2ut3YA:10 a=mQ_c8vxmzFEMiUWkPHU9:22 a=FO4_E8m0qiDe52t0p3_H:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTI4MDE3NCBTYWx0ZWRfX9UX+hqJxcJsf sWLfVkeD+ZWmWRJjbp2lcHuhP/7jzc0kGEgCGEA3Pqt6gB3Nhe44HrSlAeyV2cdmJ1dz1BbTgTV zaL1n/7NG5mZJg+iuVRxuAbnviBbIDriQjxpNEZyTu6448/Y3pfLrL0Hk1CLqmoU2EpUkTMDn5I wMiF/PjzwTagvVpc2hloPFBnn/kYt2PCCeadfQg/XZglRv1BIjysK/EstBvp/HqWWIKRinMOcsu T71qXHAD5cmJZPl70Ge3jj2nBG6LtTjSjADbMxZMGEM04CHqM51SPEdon1S6wa7ta1bl9/qWt3P CWczzff3WTzXOw1eYaNL9/CkSUrM6FLPon5JDdKNFvoXGZbOnsfhfHQDk/+KavMlzd1i+AleYQN IrE5Y4JydF9bNlAzco55VjrA5i/jd4GDEyrduDs3SWgY37Q5u1DkBUN5bjz0qhoMO/ynYygmJP4 nJ7JmfkAqa/XLBErY4w== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-05-28_05,2026-05-28_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 malwarescore=0 impostorscore=0 bulkscore=0 spamscore=0 lowpriorityscore=0 suspectscore=0 clxscore=1015 phishscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605210000 definitions=main-2605280174 In qcom_geni_serial_handle_rx_dma(), geni_se_rx_dma_unprep() clears port->rx_dma_addr before SE_DMA_RX_LEN_IN is read. If the register is zero, for example when the RX stale counter fires on an idle line, the handler returns without calling geni_se_rx_dma_prep(). The next RX DMA interrupt then hits the !port->rx_dma_addr guard and returns immediately, so the RX DMA buffer is never rearmed and later input is lost. Keep the handler on the rearm path when rx_in is zero. Warn about the unexpected zero-length DMA completion, skip received-data handling, and always call geni_se_rx_dma_prep(). Fixes: 2aaa43c70778 ("tty: serial: qcom-geni-serial: add support for serial= engine DMA") Cc: stable@vger.kernel.org Reviewed-by: Bartosz Golaszewski Signed-off-by: Viken Dadhaniya --- Changes in v2: - Add Cc: stable@vger.kernel.org tag (missed in v1)=20 - Link to v1: https://patch.msgid.link/20260528-serial-rx-0-byte-fix-v1-1-d= c4e876c7368@oss.qualcomm.com --- drivers/tty/serial/qcom_geni_serial.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/drivers/tty/serial/qcom_geni_serial.c b/drivers/tty/serial/qco= m_geni_serial.c index d81b539cff7f..7ead87b4eb65 100644 --- a/drivers/tty/serial/qcom_geni_serial.c +++ b/drivers/tty/serial/qcom_geni_serial.c @@ -905,12 +905,9 @@ static void qcom_geni_serial_handle_rx_dma(struct uart= _port *uport, bool drop) port->rx_dma_addr =3D 0; =20 rx_in =3D readl(uport->membase + SE_DMA_RX_LEN_IN); - if (!rx_in) { - dev_warn(uport->dev, "serial engine reports 0 RX bytes in!\n"); - return; - } - - if (!drop) + if (!rx_in) + dev_warn_ratelimited(uport->dev, "serial engine reports 0 RX bytes in!\n= "); + else if (!drop) handle_rx_uart(uport, rx_in); =20 ret =3D geni_se_rx_dma_prep(&port->se, port->rx_buf, --- base-commit: e7d700e14934e68f86338c5610cf2ae76798b663 change-id: 20260528-serial-rx-0-byte-fix-ec9d08cfe78e Best regards, -- =20 Viken Dadhaniya