From nobody Tue Apr 7 04:36:40 2026 Received: from mail-wr1-f46.google.com (mail-wr1-f46.google.com [209.85.221.46]) (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 86F2339A053 for ; Mon, 16 Mar 2026 13:33:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773667989; cv=none; b=ZxBX4Mhc/c3xMjnVz5QQQnFwpL2lp4paFwi1TE2tY929WuwvjXoRaVAgtC58xns81SL4ZJqtZOYHBrCScmZwNc6TRHmPCQhdf5KYpo5h09gQZ83SIL2IzVOTNxbQDABGTCLdBfnW+668p+5XIpI6T083vgtXDI3GuaRnM2wgtV0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773667989; c=relaxed/simple; bh=HHBTFy4zMHjrD5CSXhgI6Vm7bW76Ah/euPxJ1LSRW1I=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=AkJy9CKpl6xI2W4Kp7256haA+FPzmIwDZkaKro0HHExUInN+/fRciQ7Cxeu0QQAtJ7+OERPVsiemzO19QhxOj9t6m4rtjw2IPykcLFIkPIN30Yy0E7ysg22jBhc6IUY4qOCXawcDa9WiECrxf7bJrJO1JAvsyRFWHH/KdGZzA7k= 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=q5I/euFS; arc=none smtp.client-ip=209.85.221.46 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="q5I/euFS" Received: by mail-wr1-f46.google.com with SMTP id ffacd0b85a97d-43b3d9d0695so1275313f8f.0 for ; Mon, 16 Mar 2026 06:33:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tuxon.dev; s=google; t=1773667986; x=1774272786; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=JgZptLTx0r+9WdLD0VCkYl5EKFDxApu+RZvQ4Ya6Vgs=; b=q5I/euFS/li7/YUzGvqzgaPCBpyOswmLtcu9qnJx/hZnoJS4heLU1J0q4NuqrIQTjG MmeZ1PvPznBOxC0qUm5EuNI2PBUsc4bWvEB8OWqNUaBkKJmrdGzIbatVzCh5aWLREXKs Hm7Lc0HPZ1CwE3C9kL864ZKJxgchxOm15pw75PKqATkUgm/frN8cLblAwW2+qEgAeb8F AIQ1uMk0NN3QWIHSlhbmKK6VjTrQ79izJ1OBugm3V8Rhj+l8E8SVjMJPkJA+vjaSalFt rKp1XkSAzcgsVLh0rSiPUroDys8bWbk91RQhbIY6ny+TLW8FrXMT0TyCv3rIE4cQsVoR tp9Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1773667986; x=1774272786; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=JgZptLTx0r+9WdLD0VCkYl5EKFDxApu+RZvQ4Ya6Vgs=; b=bE51Uz/aZVLbW/wOW9K6ERcaGDIRL7GhBeJjq/KTYcOPhLxFf2yc8AoRZhKvJojhd1 zndyhBmAVt0PZnRlsUYdamOSq7Uwnk8c1jDuHRCvvRpSOZ4Z8Wvu3td2eWx/wcXFXXBa O9l7MtbJNsg5xUu130cGj7p9mf539DFOHjsGuCJHfPcPp3TRUP+eHyo7+jojm7kOclK1 EY/Xjpq0fA5XZjgxZyi+7EZCW87vbbxqxuymO9WzyW+b81FeSgwDvSxRUhvisTtH1w6T 1FfazHgv5iI9PQ6JzUg9RSK0MiP32KgfBmT52HzbYIaiCpZXJPBU0GMsUpR2gFrD16Ig SUJQ== X-Forwarded-Encrypted: i=1; AJvYcCU5ItJl6aBMF4/E+kH6v5gRoarAQV+EAsPyQHfO5BIRwHLRO8IoiiJzl9ESrhLWUGwqU2kcf3J+keQ3Uxc=@vger.kernel.org X-Gm-Message-State: AOJu0Yyko0bBqXfAbf5vGcFkp88jm9iKmWgZ1BmWQwn89Kpfo/+5hkKE LepW8qO8PkqYUwSLB8zeNSuD1A9GFewGAyATGL6bXEyPpox8rFv3Wou29DZmqnKTKZc= X-Gm-Gg: ATEYQzxCn3E8fEQnYrADLLc/Rqq2HGDmof3mJ7G4tWEE6afVGKQJlGlRkD2n5gqoncN QZWGu5EYZev5/ea/3Epwg9WIO93ydz7AbJAP7I8DyQOPjcsoisto/5kkco15vILuC8KbGeg6+uM /DSJaKnFYQD34ArXIx6a2KTEhEHdHG3191qdkPBy5majjnjilxjTdbL6yAqYmkvdxU+tRKT2mTi 6CV3mmLOaJDKznaWAX2O+IX/S8pqU51rAjTMNzwBmmWlG+JL/R24Fv/gyR/BHdiDCwMRhl29AIk rPDYx18spKPRJgEPOSz6Ds4ECZ2PkH4uBMgxjjWjKC4IG+SZVKS61SbJHuM3Eybq6VCCQOK+hb6 3ph/zzjgREt+qaRVNrtKThcreP+jbRlgB9Venx92pEtTXAknJXDpdx+4B5eSNAkchSvGl9uu4mV lNeqlTD5P1uXBJAFdMiqQIDZN6FHncGEKRAHC9W6GxiKHaPWXs0yzayO9wqPlGJ6a921TRoO9RT OtGoJB9LSW7OT/6HQ== X-Received: by 2002:a5d:49cd:0:b0:43b:4746:7cf7 with SMTP id ffacd0b85a97d-43b47467d5bmr2174740f8f.24.1773667985830; Mon, 16 Mar 2026 06:33:05 -0700 (PDT) Received: from claudiu-TUXEDO-InfinityBook-Pro-AMD-Gen9.. ([2a02:2f04:6208:0:c5e3:3624:ad1c:6b4]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43b419270efsm11629888f8f.16.2026.03.16.06.33.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 16 Mar 2026 06:33:05 -0700 (PDT) From: Claudiu Beznea X-Google-Original-From: Claudiu Beznea To: vkoul@kernel.org, Frank.Li@kernel.org, geert+renesas@glider.be, biju.das.jz@bp.renesas.com, john.madieu.xa@bp.renesas.com, prabhakar.mahadev-lad.rj@bp.renesas.com Cc: claudiu.beznea@tuxon.dev, dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org, Claudiu Beznea , stable@vger.kernel.org, Frank Li Subject: [PATCH v10 2/8] dmaengine: sh: rz-dmac: Move CHCTRL updates under spinlock Date: Mon, 16 Mar 2026 15:32:46 +0200 Message-ID: <20260316133252.240348-3-claudiu.beznea.uj@bp.renesas.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260316133252.240348-1-claudiu.beznea.uj@bp.renesas.com> References: <20260316133252.240348-1-claudiu.beznea.uj@bp.renesas.com> 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" Both rz_dmac_disable_hw() and rz_dmac_irq_handle_channel() update the CHCTRL register. To avoid concurrency issues when configuring functionalities exposed by this registers, take the virtual channel lock. All other CHCTRL updates were already protected by the same lock. Previously, rz_dmac_disable_hw() disabled and re-enabled local IRQs, before accessing CHCTRL registers but this does not ensure race-free access. Remove the local IRQ disable/enable code as well. Fixes: 5000d37042a6 ("dmaengine: sh: Add DMAC driver for RZ/G2L SoC") Cc: stable@vger.kernel.org Reviewed-by: Biju Das Reviewed-by: Frank Li Signed-off-by: Claudiu Beznea --- Changes in v10: - none Changes in v9: - collected tags Changes in v8: - none Changes in v7: - collected tags Changes in v6: - update patch title and description - in rz_dmac_irq_handle_channel() lock only around the updates for the error path and continued using the vc lock as this is the error path and the channel will anyway be stopped; this avoids updating the code with another lock as it was suggested in the review process of v5 and the code remain simpler for a fix, w/o any impact on performance Changes in v5: - none, this patch is new drivers/dma/sh/rz-dmac.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/drivers/dma/sh/rz-dmac.c b/drivers/dma/sh/rz-dmac.c index ec1b6b00af76..e2d506eb8194 100644 --- a/drivers/dma/sh/rz-dmac.c +++ b/drivers/dma/sh/rz-dmac.c @@ -303,13 +303,10 @@ static void rz_dmac_disable_hw(struct rz_dmac_chan *c= hannel) { struct dma_chan *chan =3D &channel->vc.chan; struct rz_dmac *dmac =3D to_rz_dmac(chan->device); - unsigned long flags; =20 dev_dbg(dmac->dev, "%s channel %d\n", __func__, channel->index); =20 - local_irq_save(flags); rz_dmac_ch_writel(channel, CHCTRL_DEFAULT, CHCTRL, 1); - local_irq_restore(flags); } =20 static void rz_dmac_set_dmars_register(struct rz_dmac *dmac, int nr, u32 d= mars) @@ -573,8 +570,8 @@ static int rz_dmac_terminate_all(struct dma_chan *chan) unsigned int i; LIST_HEAD(head); =20 - rz_dmac_disable_hw(channel); spin_lock_irqsave(&channel->vc.lock, flags); + rz_dmac_disable_hw(channel); for (i =3D 0; i < DMAC_NR_LMDESC; i++) lmdesc[i].header =3D 0; =20 @@ -705,7 +702,9 @@ static void rz_dmac_irq_handle_channel(struct rz_dmac_c= han *channel) if (chstat & CHSTAT_ER) { dev_err(dmac->dev, "DMAC err CHSTAT_%d =3D %08X\n", channel->index, chstat); - rz_dmac_ch_writel(channel, CHCTRL_DEFAULT, CHCTRL, 1); + + scoped_guard(spinlock_irqsave, &channel->vc.lock) + rz_dmac_ch_writel(channel, CHCTRL_DEFAULT, CHCTRL, 1); goto done; } =20 --=20 2.43.0