From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7DADC606A326 for ; Sat, 7 Nov 2026 20:15:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.a=rsa-sha256 header.s=bombadil.20210309 header.b=0tJ8OX+s DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:Cc:To:In-Reply-To:References:Message-Id :MIME-Version:Subject:Date:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Unsubscribe-Post:List-Owner; bh=Awt4NW/gr1/nduRFlBZWk3DLvylUCw3b1SkDAnyV5MM=; b=0tJ8OX+s8306E5tCrp0pVVLejd 2tR7Te13hS8aJvNLtVRF9lDIYzrKMzlA4j0jNDzl0jk+hz6KG0sSbGK9sbYeVF8SJcylIjXfy7TTM 5mYQTcgEsul868V+g5O8grqYgvzuflfcFjStPc2tRxgAiUihmhdMdb7Q2lo/dtRdClUe32bq9q8oT xHPHZKGy+3bF2lvs7VKakDAl9BHuBIfKze3wi8oEbsyv8XgRXX18JN36245zEo6OfyWCVd/ViGgs1 OPYJSWvM3GZ3HpCV3QtWqfXovVWdVgWy7fd4GyW84diZrEFnAx/dwwc48vfvKNqsCI5Lsw8qK8SMx Jw1SyFMw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.100.1 #2 (Red Hat Linux)) id 1xPmoV-0000000FKcS-1KoF; Sat, 07 Nov 2026 20:14:59 +0000 Received: from mail-oo1-f47.google.com ([209.85.161.47]) by bombadil.infradead.org with esmtps (Exim 4.100.1 #2 (Red Hat Linux)) id 1xPmnw-0000000FJZn-0eKs for linux-amlogic@lists.infradead.org; Sat, 07 Nov 2026 20:14:27 +0000 Received: by mail-oo1-f47.google.com with SMTP id 006d021491bc7-705cb6cedd5so377485eaf.1 for ; Sat, 07 Nov 2026 12:14:23 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1794082463; x=1794687263; h=cc:to:in-reply-to:references: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=KxRoCKaLFTMBGcFqcbl1lD4jLUh8waiooh35vSxr5ng=; b=YKTQDLTqTJbwuky5rFVkNTI4Sig0eAo0tsqhseba73BhxQEA1j8o7k1UbwXZTypiGM Iyof9BlOFGqcb+zqrz9CJYwk6QfXKdJg0cuQjU+cCmlRoRB6KYmEKdpLghFqffHOs/tE PtDfHDjFWGfrtVNAtnvaEqe+58YggEN21toAxxT2SLODwZWIi8GoCvZ6bYqC0vLuTN15 krSrLYNnPI+TqCQ6rQp+6WjtrHUi0ATGKLz/La3u+q1r466UuFCadjhQBIXaPekBOQzL Zr3gKwCAsiDoIxmUKJNijcszkqbd1TE6qIKnkNF5djMa1vF4EyT0K9mTUtoIrtoaeS/b Zr8Q== X-Forwarded-Encrypted: i=1; AKwUvByjyrQNgYxca/6AH5r/KyKfdsUCxggb6DbL9UGR/9h3tMA0wkgIc9LNkfC3i+7iTllhcymDT3hLgo4ll1/H@lists.infradead.org X-Gm-Message-State: APuU4Z9L+sl4rl23fc+441IBKwVXR/1o8noO8MXfDXWN92xnEWQrWXwK YbnhAttTOFdH7NHNklBD03VUYbvhsQrKNVFZB2Zg7yjPgntym2Xtnx3BxL73T4Dd0Xs= X-Gm-Gg: AYBFou0AfF/LNMffRG5vNOfKy/c4ExCrdwUEX2TdE+BU5RhNsX0Ttf6uicDngSD7V+s TvNZxghyIf96MAiCGNVEetR1RnCmVFCUzLaqW58eknNCDzRqApqudTwywjqAZHJdjvpMC2ivsih 5S1ieeyozVWf+gYoJ4Wdov73zFuNqrjL//uPfKsj3JezJEFrWTStNZEUpnnkKL8TPTvhUexg9at 6Y+PE/ZIG1czllJHBEJXaf8tiiHOXfo6dwLCb+L6AmrewVrfopJi2UkQbzfD7hScrZBFpfq7uoe XpXRL9th6mgMGMpmvFiAcoCPgD4YxiCvINeRjyHsNFErWc8SyHdxPBbQ68UjSMnA+XOjLG+7kJZ o+CONEY+/5aT2hKIhA3tQy5KztalXW6yBoRt69IyXoXFuNKk1Ul4PnsYpw1zSiGseowgoXK0uRr yycHCYbmrRuCHe3eoYG4sKio+Ro/XB+bzRvbS6CUN1AeO+TyhIAdQWQfO501zEkl+5yJC2cJNCx fKY5gbCvXykByhlHVenyHormS3+6cZFBYPpzgTN+JrAeY2zoPIF4vGUj07U00LhKVAnnQRGPAHX Xcmsbg2uBSB92xqQHKqFkPjXWfCSh+i8UIHtlI7SOfsDrfv35rcWhIoyQkQr X-Received: by 2002:a05:6820:4cca:b0:6df:ac2e:85ae with SMTP id 006d021491bc7-71700c8606emr1101384eaf.14.1794082463049; Sat, 07 Nov 2026 12:14:23 -0800 (PST) Received: from [127.0.1.1] (174-29-1-49.hlrn.qwest.net. [174.29.1.49]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-4ade68aa561sm226096fac.5.2026.11.07.12.14.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 07 Nov 2026 12:14:22 -0800 (PST) From: James Hilliard Date: Sat, 07 Nov 2026 03:16:55 -0700 Subject: [PATCH 58/58] mtd: rawnand: diskonchip: retain chip state across removal X-Archived-By: MIME-Version: 1.0 Message-Id: <20261107-submit-rawnand-retained-handle-lifetime-v1-v1-58-0181ef0cc4c8@gmail.com> References: <20261107-submit-rawnand-retained-handle-lifetime-v1-v1-0-0181ef0cc4c8@gmail.com> In-Reply-To: <20261107-submit-rawnand-retained-handle-lifetime-v1-v1-0-0181ef0cc4c8@gmail.com> To: Miquel Raynal , Richard Weinberger , Vignesh Raghavendra , Brian Norris , Boris Brezillon , Arseniy Krasnov , Chen-Yu Tsai , Jernej Skrabec , Samuel Holland , Thomas Gleixner , Vitaly Wool , David Woodhouse , Russell King , David Woodhouse , Mike Rapoport , Maxime Coquelin , Alexandre Torgue , Christophe Kerello , Jason Roberts , Michal Simek , Boris Brezillon , Mason Yang , Ramuthevar Vadivel Murugan , Stefan Agner , Lucas Stach , Thierry Reding , Jonathan Hunter , Dmitry Osipenko , Matthias Brugger , AngeloGioacchino Del Regno , Jorge Ramirez-Ortiz , Heiko Stuebner , Yifeng Zhao , Nicolas Ferre , Alexandre Belloni , Claudiu Beznea , Keguang Zhang , Jacky Huang , Shan-Chun Hung , Frank Li , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Han Xu , Liang Yang , Neil Armstrong , Kevin Hilman , Jerome Brunet , Martin Blumenstingl , Manivannan Sadhasivam , Kamal Dasu , Broadcom internal kernel review list , Vladimir Zapolskiy , Piotr Wojtaszczyk , Paul Cercueil , Harvey Hunt , Maxim Levitsky , Michael Walle , Srinivas Kandagatla Cc: Tze Yee Ng , linux-mtd@lists.infradead.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-sunxi@lists.linux.dev, linux-tegra@vger.kernel.org, linux-mediatek@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-mips@vger.kernel.org, imx@lists.linux.dev, linux-renesas-soc@vger.kernel.org, linux-amlogic@lists.infradead.org, linux-arm-msm@vger.kernel.org, James Hilliard X-Mailer: b4 0.15.2 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20261107_121424_518977_9F78C8A4 X-CRM114-Status: GOOD ( 15.88 ) X-Spam-Score: 1.7 (+) X-BeenThere: linux-amlogic@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-amlogic" X-Spam-Status: No, score=-12.3 required=3.0 tests=BAYES_00,DATE_IN_PAST_06_12, DKIM_ADSP_CUSTOM_MED,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_EF, FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_CR_TRAILER,INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=4.0.1 X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on aws-us-west-2-korg-listserv-alma10-1 MTD device references may outlive unregistration during module removal. Disconnect before unmapping the device and freeing the hardware ECC codec, while retaining chip metadata until the final MTD reference is released. Install lifetime ownership before the late initializer publishes partitions. Signed-off-by: James Hilliard --- drivers/mtd/nand/raw/diskonchip.c | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/drivers/mtd/nand/raw/diskonchip.c b/drivers/mtd/nand/raw/diskonchip.c index 540b6baf8bb1..a4338b51b49d 100644 --- a/drivers/mtd/nand/raw/diskonchip.c +++ b/drivers/mtd/nand/raw/diskonchip.c @@ -1296,6 +1296,11 @@ static const struct nand_controller_ops doc2001plus_ops = { .attach_chip = doc200x_attach_chip, }; +static void doc_chip_release(struct nand_chip *chip) +{ + kfree(chip); +} + static int __init doc_probe(unsigned long physadr) { struct nand_chip *nand = NULL; @@ -1494,13 +1499,21 @@ static int __init doc_probe(unsigned long physadr) ret = nand_scan(nand, numchips); if (ret) goto fail; - - ret = doc->late_init(mtd); + ret = nand_set_release(nand, doc_chip_release); if (ret) { nand_cleanup(nand); goto fail; } + ret = doc->late_init(mtd); + if (ret) { + nand_disconnect(nand); + free_rs(doc->rs_decoder); + iounmap(virtadr); + mtd_put_master(mtd); + goto error_ioremap; + } + /* Success! */ doclist = mtd; return 0; @@ -1535,11 +1548,11 @@ static void release_nanddoc(void) nextmtd = doc->nextdoc; ret = mtd_device_unregister(mtd); WARN_ON(ret); - nand_cleanup(nand); + nand_disconnect(nand); iounmap(doc->virtadr); release_mem_region(doc->physadr, DOC_IOREMAP_LEN); free_rs(doc->rs_decoder); - kfree(nand); + mtd_put_master(mtd); } } -- 2.53.0 _______________________________________________ linux-amlogic mailing list linux-amlogic@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-amlogic