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 DAB63606D825 for ; Sat, 7 Nov 2026 20:10:20 +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=L+mF9TNO 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=L+mF9TNON5lz3cryLBPQvrZO8t 285L6xqlxcPM7lzZfcpDwuV3SQyVm3Zdq27jYxAv3bg0W/xqfK/51bImV9n/z/n/cs/XR+LOHqsum oWDsJfQwh3X8a8dmSPFbqZ2yF5EaY1tAXom+hE5Ob5wJXe3SKwEv9kp4diu58j7WtlEapXSaXPjWC HV6S1vcjmQrBlummGfdAV0i/wrPN9vrVAtEHUXMLVHtkuF600/O/GTLPAwAgHs4l5M/5tmOyVCpfR Qh1XtDT4wbUnrP2IJrAQeaUDVafiFxu+KeqwR5b4zCfnk3EjH90Ns1hmX7IefIR9HveUhIpTVb0MV wE3gDnaA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.100.1 #2 (Red Hat Linux)) id 1xPmk0-0000000FGdJ-2AYE; Sat, 07 Nov 2026 20:10:20 +0000 Received: from mail-oa1-f49.google.com ([209.85.160.49]) by bombadil.infradead.org with esmtps (Exim 4.100.1 #2 (Red Hat Linux)) id 1xPmju-0000000FGYP-1pyt for linux-amlogic@lists.infradead.org; Sat, 07 Nov 2026 20:10:18 +0000 Received: by mail-oa1-f49.google.com with SMTP id 586e51a60fabf-49429181ce9so6741fac.0 for ; Sat, 07 Nov 2026 12:10:14 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1794082213; x=1794687013; 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=YzshwcX7QWRh1gG1OXdTSV5AansqZ1SxI60MklN36kgu7zqWQ94SObf3TbJRTzmR6m 5aqDOo2Je/axM/HkUjlhNB+lL467ahDdzNPOnfjWD2bq4rzLx7Bc1926Gbp6lnjWPJni ew5A2tsCsOjr470EzVUxXmpqPNPAX+gRMDh+H8h3DwvEsbfJmouL6rHG+qdzGdg+pUqL aYmb+m1RiOyijvVzJPCiKj0f7DJPg3549jMX1QiBfUuDGluWup+FXoWUGqR8iHgoLk2m 8qyw2JhJcnV9HATCCB0tLc5CTGuZKEPgwIJVNMfLPDpFa9TQVgtMjafRS+8yICfea2X/ sJhQ== X-Forwarded-Encrypted: i=1; AL+hErENz9fftuoAa3HBNPTryFS9H3nXHdgPzSKVoBDGB+2M0QgB6PhFyzIDW6rZNwM8UcUcyojNKf5QqzerOJ0W@lists.infradead.org X-Gm-Message-State: APuU4Z/UtfU5Spveytmi/+tDE5dvWQiBqRrAPk2r4v30X/uDnR+cxdQZ XVnJ1ayAvpTczEAhWj/CvykU/n3wQVPIfZPeJrW8ARg8Y/HVGAs6xS6WApVQjs6jUF4= X-Gm-Gg: AYBFou286ZbAv7dHa26K59fUNzQbeJhTIn3onBelbaRst9FsmSVcdzvJyFlS4yTtC50 WcCw8EeLGY4SvWdLVoYXqpN0cZm1LeBGa2a4IExZeFBLh0fdqv/kkWX8zLAjisNW/onB37U3C27 b7kW5TshD6UcpetAOJTflv0jjO5/nv67ZmbPqHklfPEWASBc7dEko+SPzwoL38mUuKwqLXR9/nE ebZLcVy/QwGd8H3fDmaVHyqOlY8GDkSNQdvAWk5YOiyQ9XaDg++cS1LCsioyr2lfBnDoZTWlUuG fGrFVcyen3U03HOlhaSIkffK3o9n0sgPQTDSAwclZx8WxDzP3U9PjTSxy4apHImwsH3g3I+i7jc u2PGe4ltX9TxtJoRSDlIsk55NvftJ5AH1iy0pb52VQn6B159OADTer1X9XygRT+7ZnPaOInoBGS XCiltuCbgi2x92INeZ8mHP9e04CrDLsshr6g3vZnzCUgVc2PveXfTEhvoHaK73FIiNLygi4zP1m 8ZaQnvMJhcBJCcxooFSuKhqV2tXHBdZZNOxVU8xeTVq1w6eUt65m3+vXH6yZTfdAirDJMgGIKlO ylLn019QdT8Vr+zxyPnbgbCVLwPXuqJC/lDYnR9vWkG3Uzq3IczdMPv58zI= X-Received: by 2002:a05:6870:4507:b0:4a7:4730:affa with SMTP id 586e51a60fabf-4ad98b59767mr3847741fac.24.1794082213294; Sat, 07 Nov 2026 12:10:13 -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-4ade6a26d74sm212708fac.15.2026.11.07.12.10.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 07 Nov 2026 12:10:12 -0800 (PST) From: James Hilliard Date: Sat, 07 Nov 2026 19:33:39 +0000 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-4311be01fa4f@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_121014_497725_DAD58874 X-CRM114-Status: GOOD ( 16.26 ) X-Spam-Score: 0.2 (/) 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=-13.8 required=3.0 tests=BAYES_00, 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