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 1BD75606A32C for ; Sat, 7 Nov 2026 19:22:50 +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=IqAxJHSU; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20260707 header.b=RPmxjEsd 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=qfOqGZw7OoXlQdZi6pOD9nr9G0/GLMp5+9IEl+wDT0I=; b=IqAxJHSUUtK2h7/sByM9s6+XC9 vnUkIV99qVCUXienXCqV2p9OeFVkkCQ3r7SlpKPneWpLNVdJg7w1RWQq/YtmXmpJxNcb0DUIwJour 1oKkF9LP+0bMsZHBuKpFkMYI6w9lGXXfxrmsBo6UlzbWjXHYixRiJVS05j3DNrvRVEK8208LbvyFW 47wYbIREMMXXCx0nx/xM2ucexD9qafciEnqKLb6uoOw2kWNO9agzE5LTtEahLFvIhib9vSvv7Fe7I ZKa2I0MFH3caNaeAFjC9Nw/jySeOFLqnbXfwM17HJ7AC668EFhWG+Y9FHmilpl4eHoEwsh8pwFnIX turUclFw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.100.1 #2 (Red Hat Linux)) id 1xPlzw-0000000FDg7-3syH; Sat, 07 Nov 2026 19:22:44 +0000 Received: from mail-oa1-x35.google.com ([2001:4860:4864:20::35]) by bombadil.infradead.org with esmtps (Exim 4.100.1 #2 (Red Hat Linux)) id 1xPlzr-0000000FDcP-13Ck for linux-amlogic@lists.infradead.org; Sat, 07 Nov 2026 19:22:43 +0000 Received: by mail-oa1-x35.google.com with SMTP id 586e51a60fabf-4a77dcc4ca0so1032572fac.2 for ; Sat, 07 Nov 2026 11:22:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20260707; t=1794079358; x=1794684158; darn=lists.infradead.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=/IYxRQsQO6UsoPYARG/MQ3DRm7b0plb/fBLBgAtsE5Q=; b=RPmxjEsd3Kiw3SZxz6IDd4zQt5MLAmoyGOhAY2gFTRbn+96hXV21Bpa/w4CD7FnDWi rn00qlRsuC9imVVtrtEkMiXR6b6CUK0QS0Mv2US4Uet09OCdxh1vHG6mEeupnlTZEWvZ /WSsrIF/arG994O/A6vp5v6kMbwjUsqpVfndDS6v4mTqPGU/r1rloPcfT3kJGIrdfPbX gV/9EHJ6rKjC1Sh2TBzSDBZc/vDfAng973m4vMEniOSOD9CAVXbrudvZlPv8ruN++G0Q cbBBAh42jWWxUn8mDfuU8tWZYNoO3ytMCapykv7Loqd4W1lfVQidwFq+VLoODd7zhIlm 9sWg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1794079358; x=1794684158; 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=/IYxRQsQO6UsoPYARG/MQ3DRm7b0plb/fBLBgAtsE5Q=; b=yhVU8C7PmMkzIjFVWjfB0lp2e/AC3WZV07Kj6s2eo4aE3TYM2ZiOETt0gj8jlQF/qZ WzfXWarrRLZ39+kkOHpM4F03e9hJ77pr56zpMlEXxXcvXMWcEEtxWFVG7GZftNy+PnsR J59L/4QP+70+XgUJyWQtylTF9YyveV9zdd6irG3vZ2TP55hlELcknnfHMg7Z+9+kA6Iz Yxzc2Z3keX76BY14nFeECrpVQwJeIpv5rttB0Gl4ScZy5F5VqqO5yZZX1/qaqJVAqUvG o3GXQA21eiibmWnXvHy6I1rQyi3mqvk7o+uQ0B4Ek+HanqNudACowX9mZUd8qy54j1Yz G5HQ== X-Forwarded-Encrypted: i=1; AKwUvBwP2KiamarAjsDob/lOLMAvACw5xLrA3qB/aYEgecDqu+5gtdQmsEKs8yMBkfjEf1SQwFpET6Iy2x6M8IIn@lists.infradead.org X-Gm-Message-State: APuU4Z+rDddZiTZzO1AEhx/sJlCj9aCFQ2XXh/uvTcyets/+kwQeL/pU WqWJvrCIWMtuKNClQa1dmR6xT6w23f39haF9NOH165+AsBE/z4hVh+y4 X-Gm-Gg: AYBFou3BbYspEhtr8s7NkrbUiXp8WqBpoCL7lIoyeWHWhos1jUy85b7Rp3RWNwSQw0c 5HmWzKQtLB6nDAOjwZS0qp0g+kz3M/2e6KXRZCCn5nLjhgP8tD+qwn0vEOBbPFkaEE9iwph3kW+ RB2XEDMiF0iBl8LMhvZC1H0Un1RVr27wo7lNItBwr2ATeGiqWtKyyJ40Rl42N+4iLr6RQlmEvh+ vIbRLm8dHb13HHnv1Q9Wmn99iCUGRv8ZH6r3L/SckFVZLL9Zp24Le82WmZ7lip1+vrR1+G+CyBB RAkhCygnPWrMsHCFHihlFgt93qpiZ//i2a3mkP0rS3lsKyNpeFhNznigXne5WdPMpP/qCxNNdgV nOtAOK46ZioyoGK87RwpdomF9/I2sI9sHwZ6Yw1wvVPMB18IzN7xFJngjDpxIOnwhiVhJ7XJYVA Lgs6l36+N73coCvre6x+4FA45dKMEW9whQ4WcEIbmVy+eHrdG61D45mxbPe82Jl9B+Edk2cwKwM TL9aVFRfzP8souz4c12HA2Jk3b7KoIDZXTGd5uvHN7LMaG5H6YgOkZ+WKt2eK1eI0ewJR7gzdTf dLyxAaXIS0nFMiv6w3BUn6T7EO6Y95KmMAdY5Xuauqlracv7Kb38v8CU9i4UNSYzlsabAgofvrr ID37fmAb0lKklbU8LfSWnZiVImYESw8rPLx8AwyJabifA7ga3MsIWd8TF6JhDfycabmPhvgj7uX UsyWEoGVoNsj7zYeD/K6QyKFkMmsSkGh7+1hQxXvNo4Ye0ffQ9ps/s7w== X-Received: by 2002:a05:6870:e091:b0:49d:c88d:8bea with SMTP id 586e51a60fabf-4ad98e66b72mr4108041fac.42.1794079357895; Sat, 07 Nov 2026 11:22:37 -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-4ade647f559sm167644fac.2.2026.11.07.11.22.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 07 Nov 2026 11:22:37 -0800 (PST) From: James Hilliard Date: Sat, 07 Nov 2026 03:16:23 -0700 Subject: [PATCH 26/58] mtd: rawnand: vf610: retain open-handle state on removal X-Archived-By: MIME-Version: 1.0 Message-Id: <20261107-submit-rawnand-retained-handle-lifetime-v1-v1-26-0181ef0cc4c8@gmail.com> References: =?utf-8?q?=3C20261107-submit-rawnand-retained-handle-lifetime-v1?= =?utf-8?q?-v1-0-0181ef0cc4c8=40gmail=2Ecom=3E?= In-Reply-To: =?utf-8?q?=3C20261107-submit-rawnand-retained-handle-lifetime-v?= =?utf-8?q?1-v1-0-0181ef0cc4c8=40gmail=2Ecom=3E?= 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_112241_902340_F6B5BCA5 X-CRM114-Status: GOOD ( 15.92 ) X-Spam-Score: -0.3 (/) 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 Keep chip metadata and controller storage alive until the final MTD reference is released. Unregister and disconnect each published chip before releasing the resources used by its hardware operations. Keep managed register, IRQ and clock teardown after chip disconnection. Signed-off-by: James Hilliard --- drivers/mtd/nand/raw/vf610_nfc.c | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/drivers/mtd/nand/raw/vf610_nfc.c b/drivers/mtd/nand/raw/vf610_nfc.c index 9940681810cf..903a25c549d8 100644 --- a/drivers/mtd/nand/raw/vf610_nfc.c +++ b/drivers/mtd/nand/raw/vf610_nfc.c @@ -805,6 +805,11 @@ static const struct nand_controller_ops vf610_nfc_controller_ops = { }; +static void vf610_nfc_release(struct nand_controller *controller) +{ + kfree(container_of(controller, struct vf610_nfc, base)); +} + static int vf610_nfc_probe(struct platform_device *pdev) { struct vf610_nfc *nfc; @@ -813,9 +818,12 @@ static int vf610_nfc_probe(struct platform_device *pdev) int err; int irq; - nfc = devm_kzalloc(&pdev->dev, sizeof(*nfc), GFP_KERNEL); + nfc = kzalloc_obj(*nfc); if (!nfc) return -ENOMEM; + err = devm_nand_controller_init(&pdev->dev, &nfc->base, vf610_nfc_release); + if (err) + return err; nfc->dev = &pdev->dev; chip = &nfc->chip; @@ -873,7 +881,6 @@ static int vf610_nfc_probe(struct platform_device *pdev) vf610_nfc_preinit_controller(nfc); - nand_controller_init(&nfc->base); nfc->base.ops = &vf610_nfc_controller_ops; chip->controller = &nfc->base; @@ -885,9 +892,15 @@ static int vf610_nfc_probe(struct platform_device *pdev) platform_set_drvdata(pdev, nfc); /* Register device in MTD */ - err = mtd_device_register(mtd, NULL, 0); + err = nand_set_release(chip, NULL); if (err) goto err_cleanup_nand; + err = mtd_device_register(mtd, NULL, 0); + if (err) { + nand_disconnect(chip); + mtd_put_master(mtd); + return err; + } return 0; err_cleanup_nand: @@ -903,7 +916,8 @@ static void vf610_nfc_remove(struct platform_device *pdev) ret = mtd_device_unregister(nand_to_mtd(chip)); WARN_ON(ret); - nand_cleanup(chip); + nand_disconnect(chip); + mtd_put_master(nand_to_mtd(chip)); } #ifdef CONFIG_PM_SLEEP -- 2.53.0 _______________________________________________ linux-amlogic mailing list linux-amlogic@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-amlogic