From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (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 4E3C4313298; Mon, 13 Apr 2026 16:52:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776099158; cv=none; b=fkQUHnCth+DByak99N5AltqutorwtgtIa6kHPUpWKsONTnMHaOcio9eUOfnqKppIUJFfv2F7GNC7bzPy6ipYtYN0AcsSGpnpEun+Z3sr+2+COqYyBsqK/OP0TxBdBMUvwj8Xdy7AL88LHWXioX7WlPMN0cgKUvTVNNCGwiVahvw= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776099158; c=relaxed/simple; bh=50wD3OI+e1rnc+cxueg0g18UnpkHToSbI+sjR2OO54U=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=iASG5gCp1XjRQJGCeWKzvXsZzizIJy0sKtkJ45i/VRVFWoV/h2RbTlDO5KxmUfC/hjdks1TkkgwCD0zBtqrNJwszrAOjBO4zpDj3XubDss0ilnY4y5sctrPGz8xt1dDgk9VJJfgmR8TStyTz0yVv5UmEpSNzG79HKFzrXF8fHJw= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linuxfoundation.org header.i=@linuxfoundation.org header.b=yaIO/HI8; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linuxfoundation.org header.i=@linuxfoundation.org header.b="yaIO/HI8" Received: by smtp.kernel.org (Postfix) with ESMTPSA id D81E8C2BCAF; Mon, 13 Apr 2026 16:52:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1776099158; bh=50wD3OI+e1rnc+cxueg0g18UnpkHToSbI+sjR2OO54U=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=yaIO/HI8bHtEOq4S7AvFsu7luBFmKrjWdAvSmjDyi9OsBztekLbgUsIhTcqtuVXeo 28FU69hbNagvEjy0EpNeIFy2hoS4AkUed9L9QQ2U8xCHO4ICzUCebjMaZmAmCWNG4J Elvv0rq1KYWOulegLf5HaLg5cSdPY05UUWROh3hI= From: Greg Kroah-Hartman To: stable@vger.kernel.org Cc: Greg Kroah-Hartman , patches@lists.linux.dev, Kamal Dasu , William Zhang , Florian Fainelli , Miquel Raynal , Sasha Levin Subject: [PATCH 5.10 232/491] mtd: rawnand: brcmnand: skip DMA during panic write Date: Mon, 13 Apr 2026 17:57:57 +0200 Message-ID: <20260413155827.745247456@linuxfoundation.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260413155819.042779211@linuxfoundation.org> References: <20260413155819.042779211@linuxfoundation.org> User-Agent: quilt/0.69 X-stable: review X-Patchwork-Hint: ignore Precedence: bulk X-Mailing-List: stable@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit 5.10-stable review patch. If anyone has any objections, please let me know. ------------------ From: Kamal Dasu [ Upstream commit da9ba4dcc01e7cf52b7676f0ee9607b8358c2171 ] When oops_panic_write is set, the driver disables interrupts and switches to PIO polling mode but still falls through into the DMA path. DMA cannot be used reliably in panic context, so make the DMA path an else branch to ensure only PIO is used during panic writes. Fixes: c1ac2dc34b51 ("mtd: rawnand: brcmnand: When oops in progress use pio and interrupt polling") Signed-off-by: Kamal Dasu Reviewed-by: William Zhang Reviewed-by: Florian Fainelli Signed-off-by: Miquel Raynal Signed-off-by: Sasha Levin --- drivers/mtd/nand/raw/brcmnand/brcmnand.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/drivers/mtd/nand/raw/brcmnand/brcmnand.c b/drivers/mtd/nand/raw/brcmnand/brcmnand.c index 669c332d37ee8..e4739d843f7b8 100644 --- a/drivers/mtd/nand/raw/brcmnand/brcmnand.c +++ b/drivers/mtd/nand/raw/brcmnand/brcmnand.c @@ -2399,14 +2399,12 @@ static int brcmnand_write(struct mtd_info *mtd, struct nand_chip *chip, for (i = 0; i < ctrl->max_oob; i += 4) oob_reg_write(ctrl, i, 0xffffffff); - if (mtd->oops_panic_write) + if (mtd->oops_panic_write) { /* switch to interrupt polling and PIO mode */ disable_ctrl_irqs(ctrl); - - if (use_dma(ctrl) && (has_edu(ctrl) || !oob) && flash_dma_buf_ok(buf)) { + } else if (use_dma(ctrl) && (has_edu(ctrl) || !oob) && flash_dma_buf_ok(buf)) { if (ctrl->dma_trans(host, addr, (u32 *)buf, oob, mtd->writesize, CMD_PROGRAM_PAGE)) - ret = -EIO; goto out; -- 2.51.0