From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pj1-f46.google.com (mail-pj1-f46.google.com [209.85.216.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 1AB24435A8F for ; Mon, 10 Aug 2026 18:11:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.46 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786385491; cv=none; b=pmUB0JXseiaMnS2KCFXrSr1yir45i0ZKUdobT2AVhvrwH0xTMSV+YuCRnDcdJaAFcvyFEbjaZ+Q3BYQBDxKxwcKG3AD+B31nRp6xRg6NpZbhf2lBr0O5PmG56FjZqk5GZvnDieu/vg7yhPhIXUgrGhSUHl6eanDWQTwVXHRftVs= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786385491; c=relaxed/simple; bh=4tYVT9QqLmwTQUUuN/J5bGbv/2gfEO0sUizgH+taHNo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=PvlKxXi9e0iJ03AQcaUMiQA4lkpeDd6fdpKym3F3C0Rmnp+RrQlkfFj9Iw5zx4FdnAGoBzsF9bCgDCKoa0ZOAGkHymDYv0nzY7fHSg9eU6AQIglfA03MWi6kjrqS1CttXIH4c4GMIwA55vKx1j9piCqaP+t8+rWxVN69ULI196k= 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=YA4wzzM+; arc=none smtp.client-ip=209.85.216.46 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="YA4wzzM+" Received: by mail-pj1-f46.google.com with SMTP id 98e67ed59e1d1-3810c5d691bso1890830a91.1 for ; Mon, 10 Aug 2026 11:11:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1786385489; x=1786990289; 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=xHByj7whypjAGcgXNhTkpT6ldplRWJVWN4PSrjNWnv0=; b=YA4wzzM+vQu+qmHPKraQ34aYBVJZ8PoUv7ht6vjvVrCk8UFZTADDkwykpi5Xcv67pg 0AXcH+gWmaQU2+5zQILPKoodkaoGwpQzAMJU+NgygYkSekebXHqhiULD8CHbhNdLslAf NKU7kGLWTmtTB03bYHy48uRRlcOgjSW7yc3+ZjQwrFiwEwMBJ42gpHK/6aPMBsfveTfw P8HA+EpAT1TR4w9+auNGJe6KCf0GZWe4Sah10sb+ZNpmZYmmgtlzZhXe+zXSJgVpe/WN WOV0DEGJY0VymIH8taJyMNhjtr4RY5prT8NbXpqoMLTM0qor+luJS5bTWyl/g6OPjOFP CROA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786385489; x=1786990289; 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=xHByj7whypjAGcgXNhTkpT6ldplRWJVWN4PSrjNWnv0=; b=IYyZF78C1RQDtzBAWe8ify0zt7kKqasLZF/Aeh3bDDrtlyAOnL+h/BWhjHHUj+H6Bj RzY//+mBMUkDDWxDQG0gFsbnwIS+Q+gQdX91K+wgeCnartVyRuZOr8zaIN8WjBbvR4+s 3MVDUoom5KBvsmGRzJoKL68HWzZQYJiiJXCgvcndP3yFd/66VAiOL7cuBj5zWFdrj2Mi 1fhZmHd+pOFO5ci2yr0Z/mbf0EnUGH2ln5STRyf+iozW4Cga/IcMTBlNBGAFGZAlRGA3 jfFGfMLZEObvI89bNX/j/MK9jweYJz1V8V2uWXngBFfuL2OOYES4uMIEee351ywe9wga Rmog== X-Forwarded-Encrypted: i=1; AHgh+Rq1JsnckBKhULL00FvYs71Qvvg+Wus0SubTcwaT9a3c0BTLujHhTawllEObI13Zlrg82ZDzZbbb3XgZFZ0=@vger.kernel.org X-Gm-Message-State: AOJu0YzLPTHHYX1YrNy6rrF1pYnRhrl5HFFtL2hDv9dRyCa20RzI20ZC SNcTvNGnAP7jedYMQnENTdSVGXoYzle6/KhjeyAUvtDSTWOzVr4johnf X-Gm-Gg: AR+sD13g267JekEqoShg/SS99fz89KvAMQV/kT0rqC/uRI5UsGCiuoYsD2hWUDIFIee 28unuvTHoTJbk7RJ7sHUb9bFQn244yNbm7aAOTo+36lt1oAg4vQa3Z8kHMxjJjo9tq9x4bhAgkm 6p3nutljy9oMeGv8Nq1l/fEl0xC3u+1N1mocuRtIh+e5HqWPGvaiIqVBwhDe6+rrnusAEuVbnz+ mQmu35vbfZWQTZ87hbr+N/aR2yGi9M+6somVu7/0/5hMObklE1qAGBkqBNnkIEswXkSyHdfGgiG UmNpRAheJc113HjIFjmB17k6q9s/xakmZ3bYT+/IUAD6GrVL+UvvHUrBzpZGOsH1Rzkh8/W6a7E pZajWO/FaFGsa8sg/dOoDEQWoY4FYESREeyB2f8tT7bGxBEyeLnIjWfUq0BezFXyLEdKNWFRAt8 cpFn4FCfP1BL0hgJZjmX39B7QeVBIKSYlRIC3OX+EZBBc4NBRY3IZ0WDLGLfwq4iVT3DxFeA0bj A== X-Received: by 2002:a17:90b:2785:b0:38e:bbf1:de3f with SMTP id 98e67ed59e1d1-3903c5d2f29mr48635260a91.12.1786385489431; Mon, 10 Aug 2026 11:11:29 -0700 (PDT) Received: from cryptic.lan ([2001:569:7fa9:fa00:b1a9:6513:83c6:1d23]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-392d53b873asm472795a91.17.2026.08.10.11.11.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Aug 2026 11:11:28 -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 v3 06/34] dmaengine: fsldma: migrate tasklet to dmaengine BH Date: Mon, 10 Aug 2026 11:09:07 -0700 Message-ID: X-Mailer: git-send-email 2.43.0 In-Reply-To: References: 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 dmaengine 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..f52547611db9 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); + dmaengine_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); + dmaengine_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