From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pl1-f174.google.com (mail-pl1-f174.google.com [209.85.214.174]) (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 7884E42A15C for ; Mon, 27 Jul 2026 20:31:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.174 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785184277; cv=none; b=DDf825nMM0lMOep/rW8J3Ut5fj9NamF9p2j8iVn4bTZsiSveo03UY7A1oUPEYUIIXXS+fgUUooryJ4yThPbt/1Jh6vrlu90kqAVjVfQASnbmFYFCIWKbqjWE3wZway7fR2wBFDbKYVYe614MelabuGFIKI0BpUtg+ehv/we7iJM= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785184277; c=relaxed/simple; bh=mOlGoJZBkCROI27aYnV5VfBJmM1T4IxgDbGolClMypY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=XrROW43dHWA9ngRX3zss5uy+pLnANWlGvUmdWE3ZroeHmWdfVQ4JYe+3/u5cwgXkZXnUv0BxhmFfVvajUgQkywwlKjQiRfxdCXZCAP2vfYLOYkWBrafadrin4aFchLsn310ztbe+9fcM8ayqh+45/ARP833X9usD+Azpr0DprqM= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=ewSVibUA; arc=none smtp.client-ip=209.85.214.174 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="ewSVibUA" Received: by mail-pl1-f174.google.com with SMTP id d9443c01a7336-2ceae1ed204so34166965ad.0 for ; Mon, 27 Jul 2026 13:31:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1785184276; x=1785789076; 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:content-type; bh=DQRhM3rT7FoTMhNOjiuobMB557pHWoxuWR/j4jNacaU=; b=ewSVibUAH9s+rz4AqB9eJrISdWs0pV4VLuMmcpFEFeoxNXs2X180vJVACwYuR8DzOm MwnnZFJv1W0pAl533EXW7iJaQaKGHYixpHStwyZl/bgnipgsqpAz3yMVIILsXzB4Gs7E 1+YL9tzB3I5SOP36X23hF5hJ5sd89V3NVOJtBXUEUzxMKH0f/PjrzoifTeW4dDw0YJaB wlIzXwsi8bX+BazX1+1l3l65BvQXpVW/J7GvwiJa3g15qTRn2QKkjAcDGL9sbjSXqXI2 xDxtjbQoGMSkFUJGJ4VFLFzFsZzW33Q/VXtHfY5o/IohfdCR2DK7x+6FzFKIG2QUHuS4 R12w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785184276; x=1785789076; 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:content-type; bh=DQRhM3rT7FoTMhNOjiuobMB557pHWoxuWR/j4jNacaU=; b=hT7nd9JxFEHaU3nn2rXd7H37awX/OzL/HdVXvbLD8S/yNbV3l84vDW6F1DG0I0Civb sbjjfHpFyXbx7vtuuimAvfIW9T1UZ1WmHTOuz/++SqsVnRW7eyZhV49JGkHF49ZymbZA xa/L9uRsD8T5/lakSKYG5Wx5GgSAyNdD3kPfQBY06NuhjqkpFblxUUM6RgKbOscNFc4a R2WNL5a6UzuKumF3nTxSlJTrziYIs80HepnOQfl4TyTNd3KNo+XxaThXL9WFaW9Wh4Cs hg7HpBb37nmhjQSRec/Vy+LljnCFoKkuM313/Zk1oIssBEc9Pl93oVm3zwtYkrlleAw8 BDLg== X-Forwarded-Encrypted: i=1; AHgh+Rr1kVTMFvMpBIk6ELi/yPOyljXg68ivzWoc5CZzVZnKZNtUs1ETxYKwJDfb6zxvOEU0o7bMfVzNAX43Xus=@vger.kernel.org X-Gm-Message-State: AOJu0Yz4UYFRE0Kf552mmALaWw0IIZFboXWgGrfYbH8FBsmDNdcfVO5r f1XsNXOTsuTsDLwglPMv8naf6Y5VG8qYBIMLUXr3DMwWxs5sVRcSNTU2 X-Gm-Gg: AR+sD10iWwJhXzuZID/ZBNHniq7cMpi/9eDT36K12moThe9woesURpUJNH5ZFvJ35zt KA+Kxcm1wJAQI8utzCSUkIYtMZbzxlP3Bk2nEPtnRhhD0kmbZ2KDeYY7LTjv1RauIiKSgg3OVCF CbugiJlkZV84ffooYaID+HWn2MlLRCCqLMa35jsi0L1gCpJYPA6hFmokDMnsJX+cfUtaQsuEQ07 mbGgtQq6m+MJUOgOlbWNNPiQoxCN4654ukCbTNWo4MFX0S+4WT81ykf9mujDzn5VpiXyJsW8W9m iVdze4n3kW8S/k0K/NqtrlEaxXZ4bEi6o1DNnsuOOUAd+2v2K/Cxm2zmUnD7kXc7ioo/eU5WrZk tFeDkstGDOlTNIV650QRIQ2YRlc/lR5icpz9Al7EGsfCn8G8PQu6NLxulCCKHcgnvywUCzFNdX7 Rtc9l1 X-Received: by 2002:a17:903:234e:b0:2c8:f34c:82c0 with SMTP id d9443c01a7336-2cfde683786mr92287575ad.2.1785184275736; Mon, 27 Jul 2026 13:31:15 -0700 (PDT) Received: from cryptic.lan ([2001:569:7fab:e200:3789:64f9:8855:c0af]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2cfde59b768sm41551805ad.4.2026.07.27.13.31.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Jul 2026 13:31:12 -0700 (PDT) From: Allen Pais To: Vinod Koul , Frank Li Cc: Allen Pais , dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org, Arnd Bergmann , Kees Cook , Zhang Wei , linuxppc-dev@lists.ozlabs.org Subject: [PATCH v2 06/64] dmaengine: fsldma: migrate tasklet to dma_chan BH Date: Mon, 27 Jul 2026 13:28:34 -0700 Message-ID: <8a4883ce4557e4cc5804b9d29ee56e6a2570af6b.1785183549.git.allen.lkml@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: References: <20260108080332.2341725-1-allen.lkml@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Replace the per-channel tasklet with the shared dma_chan BH helper. The handler continues to run in softirq context while dmaengine owns the common scheduling and teardown mechanism. Signed-off-by: Allen Pais --- drivers/dma/fsldma.c | 10 +++++----- drivers/dma/fsldma.h | 1 - 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/drivers/dma/fsldma.c b/drivers/dma/fsldma.c index 22d62d958abd..1cb6ce327078 100644 --- a/drivers/dma/fsldma.c +++ b/drivers/dma/fsldma.c @@ -968,18 +968,18 @@ static irqreturn_t fsldma_chan_irq(int irq, void *data) chan_err(chan, "irq: unhandled sr 0x%08x\n", stat); /* - * Schedule the tasklet to handle all cleanup of the current + * Queue the BH worker to handle all cleanup of the current * transaction. It will start a new transaction if there is * one pending. */ - tasklet_schedule(&chan->tasklet); + dma_chan_schedule_bh(&chan->common); chan_dbg(chan, "irq: Exit\n"); return IRQ_HANDLED; } -static void dma_do_tasklet(struct tasklet_struct *t) +static void dma_do_tasklet(struct dma_chan *c) { - struct fsldma_chan *chan = from_tasklet(chan, t, tasklet); + struct fsldma_chan *chan = to_fsl_chan(c); chan_dbg(chan, "tasklet entry\n"); @@ -1152,7 +1152,7 @@ static int fsl_dma_chan_probe(struct fsldma_device *fdev, } fdev->chan[chan->id] = chan; - tasklet_setup(&chan->tasklet, dma_do_tasklet); + dma_chan_init_bh(&chan->common, dma_do_tasklet); snprintf(chan->name, sizeof(chan->name), "chan%d", chan->id); /* Initialize the channel */ diff --git a/drivers/dma/fsldma.h b/drivers/dma/fsldma.h index d7b7a3138b85..cab33d010d51 100644 --- a/drivers/dma/fsldma.h +++ b/drivers/dma/fsldma.h @@ -173,7 +173,6 @@ struct fsldma_chan { struct device *dev; /* Channel device */ int irq; /* Channel IRQ */ int id; /* Raw id of this channel */ - struct tasklet_struct tasklet; u32 feature; bool idle; /* DMA controller is idle */ #ifdef CONFIG_PM -- 2.43.0