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 2C26B606A32E for ; Sat, 7 Nov 2026 19:22:52 +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=ljwmTJfx; 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=i364JM43 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=3W8iRI/dBALtGoMLlICK7A6gZuLB0hzKAayPyZdUSjo=; b=ljwmTJfx4+KYOnrKC2lazdPU3e VFzziNs1idFaU3cHBLu1iNMd5ddBR4JjUM6dRrAiqACx7Sd8/A6L+v4tCGGNgwrf+QR8+E1751gky APdBpY1lG5+xRFx5AhRPAMnpAm5C25ofdemVmeO8U9EGVt40j/Vz+p4kpuQm0N1DmISUhvToPAx9L c14z0zs7SG7UjS1LbQIy24C6oA6pMOH7uaWreiaZFKlu9oXKwY9b9wBavJh3/gO3KwzpNwqNKYugo wEmuBJsJqukZUDFCn0cIAAkY7dMbD0COJTa3JBfyfQILibr1NDXq5c/u9gfHIw7dFqiGl42+UjBpg rxHw3VTw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.100.1 #2 (Red Hat Linux)) id 1xPlzw-0000000FDfh-2YXL; Sat, 07 Nov 2026 19:22:44 +0000 Received: from mail-oa1-x31.google.com ([2001:4860:4864:20::31]) by bombadil.infradead.org with esmtps (Exim 4.100.1 #2 (Red Hat Linux)) id 1xPlzn-0000000FDb4-2Bfk for linux-amlogic@lists.infradead.org; Sat, 07 Nov 2026 19:22:40 +0000 Received: by mail-oa1-x31.google.com with SMTP id 586e51a60fabf-46556b9e02cso500444fac.1 for ; Sat, 07 Nov 2026 11:22:35 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20260707; t=1794079354; x=1794684154; 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=0BAmvwUewoGLOJLuXxq6dZ5RycZKZl8yqwoNBMJWREA=; b=i364JM43meKJ/HWMIu7WcIhOvTv3ej+FnhgLhmlhoEPTRYyWry4L+s97UfJgFnszyl bkIU/4YPrJZvOwF7E2/I+0bndUIXTk2/N5+O2Jilqxhfa2HwS+nQpwQsyn8qJc1RbVXC zUeluHFndAheGUYhugAU0TMeSFpO8xg0BkF4ZW97G26XGPUlFAOQSjvyfQC4wuFT2hHe YvmBBF9wKfh7vX1IDIF30Vi0AL09h2b6JZDFmsi8R+5eidtkuYTqjeKtt9B8zEeiqADo 48ZDOf+Cm9nU2TxlRgbkKPTWBABh9BSej9UqwRGGq88UvRyMc6ocdKAViSBX01puneNY G3Hg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1794079354; x=1794684154; 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=0BAmvwUewoGLOJLuXxq6dZ5RycZKZl8yqwoNBMJWREA=; b=aI0kqomG/d8oNQ2270M6EM7Gt3Vu7nH3+YG2m74H8XQEPHqKrZWT4/G0KVJoAk+rmh tM+dvCCE+Feq2f4UpeBFcO2ERH1drBkqZyUuzjjE/F/QTodNnEbnovIBbdR94M62Iz2v 6MlvClsh798VDe6B56lb2mDYC6JC5t7sPw+wr7D8GczDLlHMWP0RFhnQzPqzBTfTwvQh KSsLr4oNLwxLCOJB9S/TReKbX7MccK2RGJhT2UFZo53ee9f0N9FtHex20SS4OkSeyvfW B2M4vmKBOhhGWARwhuK5EAok4cT+kWQHqHYbrHCIotMwLZX+llotz+2bTYl3JjtoNq3Y L/WQ== X-Forwarded-Encrypted: i=1; AL+hErEwanWYogbA3wOZxMoFSbYGcR6hz6/WaxjlnbhNeaKniUQsrodyvOMejrhjITbmcHt69qwWEIzwdxR7E046@lists.infradead.org X-Gm-Message-State: APuU4Z+9Bbx56Or7pslBo7ugo5O8hWfj/I6lcL5ri4eftSnf6z1t3t/B rpNaWkpOgbEn4oEyoKMUwykLMofrs5vSbjQBisqgZ+ieNs9ELYCWULF0 X-Gm-Gg: AYBFou1QdpQivewgUUdAU0HgJhCgd2TzHztevyBbYoXz0SUj0tN61ksiVxKLiDSWy77 w5q+90x1+rhwjnAloPfgGrMrBAUsdFEBUxI7tUL5U2GL/QPZ72PmpRhXyR/IwAm4UhZqdIT7F3M xgDtbxUv0wFU1+fyFn/+bE0WwePJzX4wNUJ0cGqVrzGm29V/VgqW+fNdSVb2Pjw1NzhofWjvV3V YmLxQhIVeOGh/VapFgkui9JLCFUv8JbDWxb87FeEPXPc2UeQzxMLxcNqLw4dav/+XX5wanIONb1 N0TPPiG6H+0ByQXqRB+KHOTaUeYCvItzfZRbWrDPvvQPDQAvbConU0rSaeHQ4wi5qCV10jKzAN8 SB7B2omi2wPn1ldgcGWuympUFziMEu/99D2NWulyz40QqpdX18C3WbOoG2p41yR3co27euJCjN2 BV1GEmyB3unIhUhgPMFoQ+goEpe7wkfx+zLf2+EN6Q0HpcjrnR2lbtdvQDdzZ3XW/tCt+iG9mUu hrjStqtlRtE0NHCVx4DtVj19HUdqjEXgr/EHhZ2URu/pse8oSPTMrZzMZKUCHY0wXb1p/NwTMQg kODXnRa3zt7gmp1i8E0IhHLnoqscn3pwOpDXqq/xgGbQzaAd+mTXXEVYQSTL5elEb+377m/A54i dZbLKWyXt+695gzuqJmcQqJI2Ctq8Nh+QeccscXzvAOAjigv3iX2Uhuqu8I9HDUti6ec50kZNyC F72Hv8IQ9hDx7dqNK7wf9OpXEVqT+cHI7wGmjGtqthJEIxrKq4ydqV X-Received: by 2002:a05:6870:b909:b0:49d:c800:c431 with SMTP id 586e51a60fabf-4adc0db6cc1mr1204864fac.28.1794079354066; Sat, 07 Nov 2026 11:22:34 -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.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 07 Nov 2026 11:22:33 -0800 (PST) From: James Hilliard Date: Sat, 07 Nov 2026 03:16:22 -0700 Subject: [PATCH 25/58] mtd: rawnand: hisi504: retain open-handle state on removal X-Archived-By: MIME-Version: 1.0 Message-Id: <20261107-submit-rawnand-retained-handle-lifetime-v1-v1-25-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_112237_722205_3F590458 X-CRM114-Status: GOOD ( 15.37 ) 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. Retain the host through its embedded legacy controller. Signed-off-by: James Hilliard --- drivers/mtd/nand/raw/hisi504_nand.c | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/drivers/mtd/nand/raw/hisi504_nand.c b/drivers/mtd/nand/raw/hisi504_nand.c index d97270ec1185..36427a242c2b 100644 --- a/drivers/mtd/nand/raw/hisi504_nand.c +++ b/drivers/mtd/nand/raw/hisi504_nand.c @@ -731,6 +731,11 @@ static const struct nand_controller_ops hisi_nfc_controller_ops = { .attach_chip = hisi_nfc_attach_chip, }; +static void hisi_nfc_release(struct nand_controller *controller) +{ + kfree(container_of(controller, struct hinfc_host, chip.legacy.dummy_controller)); +} + static int hisi_nfc_probe(struct platform_device *pdev) { int ret = 0, irq, max_chips = HINFC504_MAX_CHIP; @@ -740,9 +745,14 @@ static int hisi_nfc_probe(struct platform_device *pdev) struct mtd_info *mtd; struct device_node *np = dev->of_node; - host = devm_kzalloc(dev, sizeof(*host), GFP_KERNEL); + host = kzalloc_obj(*host); if (!host) return -ENOMEM; + chip = &host->chip; + chip->controller = &chip->legacy.dummy_controller; + ret = devm_nand_controller_init(dev, chip->controller, hisi_nfc_release); + if (ret) + return ret; host->dev = dev; platform_set_drvdata(pdev, host); @@ -788,10 +798,16 @@ static int hisi_nfc_probe(struct platform_device *pdev) if (ret) return ret; + ret = nand_set_release(chip, NULL); + if (ret) { + nand_cleanup(chip); + return ret; + } ret = mtd_device_register(mtd, NULL, 0); if (ret) { dev_err(dev, "Err MTD partition=%d\n", ret); - nand_cleanup(chip); + nand_disconnect(chip); + mtd_put_master(mtd); return ret; } @@ -806,7 +822,8 @@ static void hisi_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