From nobody Fri Oct 2 12:40:28 2026 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.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 99237397B09 for ; Mon, 10 Aug 2026 06:51:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786344703; cv=none; b=ns50z/7G92yYHCBId4eDTAXkKX/LMEqbFXsYct/84dPfd+e5YRSIRV+b4om7sTHPBUHAnJv/hUvD6kyODIrpbpMUoJr4t3TWbtViejI9Da2YnzGXPycw0uqZFT9WA0VBieNVwl9kXz39xJYW+LcA5CgljVWR8tLo8F+4OYkpnn0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786344703; c=relaxed/simple; bh=RPOctzV+RKxb3xJXErTJc0vDALFcDOTB79vTZkKh2OQ=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:To:Cc; b=jxx4h6V+pjcsRJT5yQ9oGvCP07us32qZBGIcSWLTheP0wXl6S0NJjstyqsOkQswy5fvREjieAarQ3l3GmUeu2dlQt3TBuu5G+usOD7aLttdV2ToMcmjf2w928f7b0BoXr+jceMGBf0TbwCbnC8Wf23Q2st+cYYE3Wc/SjUQeKaY= 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=hAS8div1; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=W7b3GAwC; arc=none smtp.client-ip=205.220.180.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="hAS8div1"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="W7b3GAwC" Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 67A5Hpvj924478 for ; Mon, 10 Aug 2026 06:51:40 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=p7xoezRWgP0BGhKK6+4vr9 cVInLGyGVotTxlS+aj3SI=; b=hAS8div1NgbKKZI2vxJe62L1hM3idNwKL8yaK2 9TBijRbQycXpMHJlfr4XjMmgiK/99vzA7QTwKbO8xWW+qKhxlyqdTiMUq/W3MtMi 9IwLoJvxwvPCw7RLFM33Zv7sKik71kaS2CKJ/JWhNtrwP8pZh5yngU7O1Vg2rP6Z cv/7SnGn38Nq7NZbosqczilyXw6mc+hj1c3u6359qrMTBlJsQZSJ+2xZGhYoR13g bBlcaILZKPw8R1RwJ5QmSCLdhrId9R6Q5NSBr8EJPuXZki6AhoGzwq9YbNR/SaOM 6i2LR/Xq4DdJgP9R7kFnNtFJMteyzUyLacf34dE2L9rNuYkg== Received: from mail-pj1-f72.google.com (mail-pj1-f72.google.com [209.85.216.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4fy18xs75t-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 10 Aug 2026 06:51:40 +0000 (GMT) Received: by mail-pj1-f72.google.com with SMTP id 98e67ed59e1d1-38fa7b09921so2864327a91.1 for ; Sun, 09 Aug 2026 23:51:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1786344699; x=1786949499; darn=vger.kernel.org; h=cc:to:message-id:content-transfer-encoding:content-type :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=p7xoezRWgP0BGhKK6+4vr9cVInLGyGVotTxlS+aj3SI=; b=W7b3GAwCSzLdSxzXnCs7t0YBP8VsFilyl4wbwZiVKhGh9OmHx9XoJXo/ZKWiJSiJZR 62KvojXmnfiBHADJZkjTXW9J3e90YmDuURL7fDueuXiGldHg+U5Awh5RmKFf2JGLqhac qzKFXl089+1bxe/IpuPPhiVUq0rDAMvbym7rBljWa1WAxybadf1+ZyGY1J7LwjnHo2BS 4RLRlDymc3hAxcpQtNEbDKxTQuIPvXvQl/qF3kfOu3AXPxDoPJofJhg/eq4Bh87wAlv0 duLL7qxQyWG3z1f0bgjLAs6qqhY6hoHIPF8rMlbGkPXDc5cn07Q+eAr34V1s+VEn17wD pEGg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786344699; x=1786949499; h=cc:to:message-id:content-transfer-encoding:content-type :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=p7xoezRWgP0BGhKK6+4vr9cVInLGyGVotTxlS+aj3SI=; b=ERGqwXum4VEm994FihT7OjA2/IZgnmLefMBZI/zU2eI1buAPPNQdaBeT5rnLx1leD1 sFIkDoj3LnohAGyC6ybj1taJMSwi509fg/fHUxMCFebE4fHOuOMYA+zpBdo43jqGYdkm kkqfZpAe1GfW+FElpkxlO2Avq94fAIgQD9Uqs6Yp8s2TWPpQdHz0poy36bKJZBanjWsJ RmCCi+a7WZNKJ6aCEBb6HP2NfAy4eAJ627tFnytI/l/UJy8nVHHpjAsmYo7iqSNIHaDG F4Y/Y5Nc8alc3nMqFL7vcy8BWxbEdL/brfhcu24KvzYW+pl/HjEqhnnLYwTF/TnEB9DV HFdw== X-Forwarded-Encrypted: i=1; AHgh+RoxWQKT6t95+795ppKeF4qhZIcpbH4TIUeAn5/kz6CWQNi9ydc24lSao1oAL5OQVOaKWCaAKDb68OGfyK8=@vger.kernel.org X-Gm-Message-State: AOJu0YzFazlKU4rSOB4G79glaXd1iiQ6nfm26OZWhPq0ES6Ig/b4M6Aa Bnof9p4ZhJliOvxFvPx1IdzNouR3gKkZwhPX4IeaqbZkFrwBM1oAzp87SKxfVgNK9pq4RgbHYNf oj+D2v2x5Cx6JMwfhhwbZQctv8TCNBuBclaQxDVRwtsFbJddVKpWTGS8jjaVF67wqBjU= X-Gm-Gg: AR+sD10r766fo+r7QyjdH8WMSOLaHp0dUNjQdhSr/tx4zyMnDm1Rl0XFnI9c16gfp9c jtlE+NJdr35tQICy5uakYG2m90ajrexbJvOAvd0IrFZ3x/5VXAK6IXlG+J9OuErh57DEzXasLUI 1YgGWiieGjBHZhfu9PFjH2LaRerrkV/2tySWo3jgGdyh155HbPgsBKKFnwD0hfphqDX5O7a1DFG uJk5ziEPhhe7C98KznuAG5i/A6sZg937ROd+BMDEyS0+dvdcbHQMsCQv8w3YAUaEfmASquVVvLw alXkUYQ916aRV4+kgbJZAaYBAvCWuAxPRAzbQz/Y7OriI6malJMJ5720d/vq1LYMEn+de7y8Ef7 CfinxqQvnoMpv6PpocD+2GAAzrPHLmHqCQXs= X-Received: by 2002:a17:90b:2785:b0:37d:ee77:78ac with SMTP id 98e67ed59e1d1-3903c5e70c3mr40377918a91.19.1786344699376; Sun, 09 Aug 2026 23:51:39 -0700 (PDT) X-Received: by 2002:a17:90b:2785:b0:37d:ee77:78ac with SMTP id 98e67ed59e1d1-3903c5e70c3mr40377883a91.19.1786344698936; Sun, 09 Aug 2026 23:51:38 -0700 (PDT) Received: from hu-arandive-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-3925fa4fc7fsm11255959a91.0.2026.08.09.23.51.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 09 Aug 2026 23:51:38 -0700 (PDT) From: Aniket Randive Date: Mon, 10 Aug 2026 12:21:33 +0530 Subject: [PATCH v2] dmaengine: qcom: gpi: Fix channel cleanup in unwind path 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: <20260810-gpi_bug_fix-v2-1-60555394cbf9@oss.qualcomm.com> X-B4-Tracking: v=1; b=H4sIAPR0eWoC/yXM0QpAQBCF4VfRXNsaK5JXkWTW7BoXaBcpeXeLy +/U+S8I7IUD1MkFng8JsswROk3AjP3sWMkQDRp1iRXmyq3S0e46K6cipArZ5llBBcTH6jnOX61 pf4edJjbbm4D7fgDVqgUebwAAAA== X-Change-ID: 20260803-gpi_bug_fix-b0b80ef315b5 To: Vinod Koul , Frank Li Cc: linux-arm-msm@vger.kernel.org, dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org, Aniket Randive X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1786344696; l=2237; i=aniket.randive@oss.qualcomm.com; s=20260325; h=from:subject:message-id; bh=RPOctzV+RKxb3xJXErTJc0vDALFcDOTB79vTZkKh2OQ=; b=AcM1LNYDwHPqINhO1uOjL3UARNoNgbpIH3g3NFqhoSN4UCIQeSnBBeBiwNw1zWP/X6f9ecRsW 9RcktteR6yaAkycn06ZRS0nlvitMmxqwaMqNH6oXXkQkOa986lZEXlR X-Developer-Key: i=aniket.randive@oss.qualcomm.com; a=ed25519; pk=4o37X1ZqGbCO/T2SR8kq/HnWvq0yb1RUlFuNukovbQk= X-Proofpoint-Spam-Info: AW1haW4tMjYwODEwMDA1NyBTYWx0ZWRfX9MNP76fxoSEp q2uaQ5vIn/k4H2AmaAo/0WcQfqqVpBD9o+fAYjO4HKPgsvcZ0NipuVY8VdRWrymeD7Z/+FwUQQo 2sTCeDSpv4p+sqK/E1ffdsY3LB+Bt5A= X-Proofpoint-ORIG-GUID: 5UEjA3MJy-IVf-n7jRFXEthPv_b2gwM0 X-Proofpoint-GUID: 5UEjA3MJy-IVf-n7jRFXEthPv_b2gwM0 X-Authority-Analysis: v=2.4 cv=bfZbluPB c=1 sm=1 tr=0 ts=6a7974fc cx=c_pps a=RP+M6JBNLl+fLTcSJhASfg==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=EUspDBNiAAAA:8 a=OU4UCbDFA99cvMy684EA:9 a=QEXdDO2ut3YA:10 a=iS9zxrgQBfv6-_F4QbHw:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODEwMDA1NyBTYWx0ZWRfX2katEKKdYqMr roRYn1aC0ZrqYp7sp4nhRI1a+iV0tiGU7Mh44auzEEVRllmL9Ee4TM7ZAMoM++k7XhC8cmiyUSs cGth9bvLKNDHP4Ow7VnaGhvCxY5B2CszQEXwrEVoQwTStl8gatv30kNNnShj5QVHVuU/m2UYE35 ejvGKhFiMz1KfpRebfhO7cGo+pExob9HHCaVPhPR3ktsISB3+nDGTvfYSo3oQUYIQ9VyxU0mFfW euGNljZgWbQiinAzSNUvEzTVWYmNmKC69gQiqcB/KC/sHuDxo4pEbCLJUpsy+QynKbjp7KLYG/+ EZDDeQEV0E+raE5kJJEczBwBixHbc+wucqn2FDcAbIbHJ4bp4p8r02EsORq4TWifCLK2aAUVwsb FuaipLhgijXY/0dlTuh8jgAQ9vRv1GEcSzkL2SRz9WEYRS4L/OgkDU/JInMVMG0haBTkaRoBP0m AlN/v3f0qCDA0wILURA== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-10_01,2026-08-07_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 spamscore=0 lowpriorityscore=0 malwarescore=0 clxscore=1015 priorityscore=1501 phishscore=0 bulkscore=0 suspectscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608100057 The gpi_ch_init() error path has three bugs: sibling channels are not fully reset and deallocated, the event ring pm_state is left stale after being freed, and ch_ring leaks if gpi_ch_init() fails. Fix the unwind loops in error_start_chan and error_alloc_chan to iterate over gpii->gchan[i] instead of the original gchan pointer, so each sibling channel is properly reset and deallocated. Restore pm_state to DISABLE_STATE after freeing the event ring, so gpi_free_chan_resources() does not attempt to free an already freed ring or issue a redundant EV_CMD_DEALLOC. Free ch_ring in gpi_alloc_chan_resources() if gpi_ch_init() fails, since the ring is allocated before the call and would otherwise leak. Signed-off-by: Aniket Randive --- Changes in v2: - Updated the commit message as per Mukesh suggestion. --- drivers/dma/qcom/gpi.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/drivers/dma/qcom/gpi.c b/drivers/dma/qcom/gpi.c index a5055a6273af..c41bfac65ddf 100644 --- a/drivers/dma/qcom/gpi.c +++ b/drivers/dma/qcom/gpi.c @@ -1965,16 +1965,19 @@ static int gpi_ch_init(struct gchan *gchan) error_start_chan: for (i =3D i - 1; i >=3D 0; i--) { gpi_stop_chan(&gpii->gchan[i]); - gpi_send_cmd(gpii, gchan, GPI_CH_CMD_RESET); + gpi_send_cmd(gpii, &gpii->gchan[i], GPI_CH_CMD_RESET); } i =3D 2; error_alloc_chan: for (i =3D i - 1; i >=3D 0; i--) - gpi_reset_chan(gchan, GPI_CH_CMD_DE_ALLOC); + gpi_reset_chan(&gpii->gchan[i], GPI_CH_CMD_DE_ALLOC); error_alloc_ev_ring: gpi_disable_interrupts(gpii); error_config_int: gpi_free_ring(&gpii->ev_ring, gpii); + write_lock_irq(&gpii->pm_lock); + gpii->pm_state =3D DISABLE_STATE; + write_unlock_irq(&gpii->pm_lock); exit_gpi_init: return ret; } @@ -2065,6 +2068,8 @@ static int gpi_alloc_chan_resources(struct dma_chan *= chan) goto xfer_alloc_err; =20 ret =3D gpi_ch_init(gchan); + if (ret) + gpi_free_ring(&gchan->ch_ring, gpii); =20 mutex_unlock(&gpii->ctrl_lock); =20 --- base-commit: 415606a7be939835db9b0d6b711887586646346d change-id: 20260803-gpi_bug_fix-b0b80ef315b5 Best regards, -- =20 Aniket Randive