From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pj1-f45.google.com (mail-pj1-f45.google.com [209.85.216.45]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4FD363B5842 for ; Thu, 4 Jun 2026 04:29:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.45 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780547358; cv=none; b=QppeOgwFbCZ01oCAUdeoElPuWFeteWsGRgIVpY2A/VBRapX+TiPYLFr3rUVLYEBd+HX/RkVEkQqmbTjqu2qMeoxVXjVSSGkAteQkfvG3Lx/+4DmQA6nk69qJK5maeHLhe3UoQccPWNq+Loe+cFXWzTRvSmq8RMYGDUIEW5595pU= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780547358; c=relaxed/simple; bh=YQ3tZP9hOmsg6xgnhZY4vtNYCMk1EwYkhSILz1Ggfwg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=rD8ad5Y+LLiRf/iduCXEclSjG913aCgBtU8dFDchRoQDXAaOqGvoeu0ArZZzgA383c9oyWpASLwD0tobzLEfiz/sMBH8RcsE7ogDFqWh7ohcsdgR15RyxRGx9W69KjEUViTs5w4HFuxII0a2m0OSnAqnyOy3Ro5tTqEB9fu9xVw= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=XHOI7km5; arc=none smtp.client-ip=209.85.216.45 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="XHOI7km5" Received: by mail-pj1-f45.google.com with SMTP id 98e67ed59e1d1-36bdb11bf8bso128292a91.0 for ; Wed, 03 Jun 2026 21:29:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1780547356; x=1781152156; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=/C8HZyPdgEjM6PTgEALPdtSsmsudtrKf+xZ1PEvmLu8=; b=XHOI7km56TkdMFprbhQfFqXQ7r7kz19ECDQWMKM2lwy1+bZV/p+W1Cci3xi/9QG9jL LV/0G1v3XXTCvCBd7fxKvsXesfKVOiSkSkQyzUD06cTYgMAzw9d4AsZS737hIZCQqteY afvwhZaivMd5kLJOBEgtVemF2ly+M7fJHZfwCBODHq4JPOA9golgomDOqqTZ2NFKZcGT Jfv3n+pc1oWkRjcvrt3ufm5IfOQzGj69oMoj8gLjaZg1ktt8aiW8zFzw0y/LTYzLfByv 9IgGAbSSR9JA3Yak4oKjPI+mNWXPxodwkod3uOnsp1+zjjZW8nBmtUMThSzEYIw3swQS OM4A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780547356; x=1781152156; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=/C8HZyPdgEjM6PTgEALPdtSsmsudtrKf+xZ1PEvmLu8=; b=fpHQqA/Uk1fJ3et2HzcG/Xhz2YesOJYwVTQpXtpvsITKno9N8manKJW1B6pUa3wH0b 0yhL8SC1yCYurt54zvGbzmaDcsALG8gi/gcmKMFDZcAr21H9X+rXMev2vKV9eDV/tlFc i1xgVAnpdRfqhKgxPTR7pfNBYj7LCr4hG4SjhdrTGZGhhqr62fFvMcxaZMc03Ilf3EwB LHNcG/e/mRsHxlK20LizW6gu7pS2Ka6o1C6eCkGzCnfPd2RMbclYAaoW8SlxpZXVM3Tq 8hII84yPPUBVKyL4GyjawipK+sZCGSs+CpreJ2//26V+SV12ku3nzVaCsLTiwPRvrEFF CtuA== X-Gm-Message-State: AOJu0Yy5GYPIWUQl9CogKGPjLW9ZDOv8m45ywBMDdRBXbFhKrgSrB/LP A5roQwUJ0blFicrq8dDZKUaHyIad5Z8oI1Yxf9YwXCsl/u/EkY7YU3Rsblsb7rXa X-Gm-Gg: Acq92OH+iga66Hd/OwzTL89VTDcD+xmpuKyI1yPLg04FlFNc+MIoBQn8lkRSxATQR77 cA/7KZ2PS6dA6YPUGcTjJI/1kpZ9j4XiDdKrKOkmRygn2HI3qtzBVf9NL+VoDhPLxhRhKOCN3l7 DsC0Z3lrvQNzdJOfW9NdcZ/Aqu3IGvd65tqezoncz3LBp+ffTl2SmPJfJmUJ/6fFz6kBq819WvZ ++rCzfFbZGfD0+TFxppoCCcCBqJDnafLgePpIaG9tKkByaP0p80rRvX1e5JmPHQFSZk8//yJdYc nM1/hLUqVfdZwnieGuwnajOa1qgYipHv5l2h2p1ki0KeynGfZQjIgyUA7AsmFXsVnehwg8Jqdwh 56uV+ZQgpQy/DlAbG+nnKjM0shYsX/uc9vn7QAnyJ5vsjUPD1y8QHQVyA9rp05r+PuH1d3IhTEJ AsXpo3kW380zoOsB5MKav7juLudZXip5bjnEr6BVaW9WYHu2F+kCkDV7nBrco+DIFn+KRx31456 wEw9XKC0wLhbi53cBT4lRFRIYi+dbwr7REGIBRVHVa46A== X-Received: by 2002:a17:90b:48cf:b0:36d:633a:e8aa with SMTP id 98e67ed59e1d1-36e30a2855amr6555375a91.13.1780547356387; Wed, 03 Jun 2026 21:29:16 -0700 (PDT) Received: from ryzen ([2601:644:8000:5b5d:7285:c2ff:fe45:8a32]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2c166396fa9sm41006575ad.66.2026.06.03.21.29.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 03 Jun 2026 21:29:15 -0700 (PDT) From: Rosen Penev To: linux-kernel@vger.kernel.org Cc: Krzysztof Kozlowski Subject: [PATCH 2/3] memory: fsl_ifc: Use devm_platform_ioremap_resource and fix error paths Date: Wed, 3 Jun 2026 21:28:55 -0700 Message-ID: <20260604042856.90859-3-rosenp@gmail.com> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260604042856.90859-1-rosenp@gmail.com> References: <20260604042856.90859-1-rosenp@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Replace of_iomap() with devm_platform_ioremap_resource() for automatic resource management, eliminating manual iounmap in remove and error paths. devm_ioremap_resource() reserves the region and checks for overlaps, which is safe here since the IFC controller register space and child chip-select ranges are always at distinct addresses in all DTS files. Also fix the request_irq failure path to properly free the registered main IRQ, and remove an incorrect nand_irq < 0 check that treated a missing optional NAND IRQ as a fatal error. Assisted-by: opencode:big-pickle Signed-off-by: Rosen Penev --- drivers/memory/fsl_ifc.c | 25 ++++++------------------- 1 file changed, 6 insertions(+), 19 deletions(-) diff --git a/drivers/memory/fsl_ifc.c b/drivers/memory/fsl_ifc.c index 80b82ea952f7..effeae0bdacc 100644 --- a/drivers/memory/fsl_ifc.c +++ b/drivers/memory/fsl_ifc.c @@ -92,10 +92,6 @@ static void fsl_ifc_ctrl_remove(struct platform_device *dev) if (ctrl->nand_irq > 0) free_irq(ctrl->nand_irq, ctrl); free_irq(ctrl->irq, ctrl); - - iounmap(ctrl->gregs); - - dev_set_drvdata(&dev->dev, NULL); } /* @@ -213,11 +209,9 @@ static int fsl_ifc_ctrl_probe(struct platform_device *dev) dev_set_drvdata(&dev->dev, fsl_ifc_ctrl_dev); /* IOMAP the entire IFC region */ - fsl_ifc_ctrl_dev->gregs = of_iomap(dev->dev.of_node, 0); - if (!fsl_ifc_ctrl_dev->gregs) { - dev_err(&dev->dev, "failed to get memory region\n"); - return -ENODEV; - } + fsl_ifc_ctrl_dev->gregs = devm_platform_ioremap_resource(dev, 0); + if (IS_ERR(fsl_ifc_ctrl_dev->gregs)) + return PTR_ERR(fsl_ifc_ctrl_dev->gregs); if (of_property_read_bool(dev->dev.of_node, "little-endian")) { fsl_ifc_ctrl_dev->little_endian = true; @@ -248,15 +242,14 @@ static int fsl_ifc_ctrl_probe(struct platform_device *dev) fsl_ifc_ctrl_dev->irq = platform_get_irq(dev, 0); if (fsl_ifc_ctrl_dev->irq < 0) { dev_err(&dev->dev, "failed to get irq resource for IFC\n"); - ret = fsl_ifc_ctrl_dev->irq; - goto err; + return fsl_ifc_ctrl_dev->irq; } fsl_ifc_ctrl_dev->dev = &dev->dev; ret = fsl_ifc_ctrl_init(fsl_ifc_ctrl_dev); if (ret < 0) - goto err; + return ret; init_waitqueue_head(&fsl_ifc_ctrl_dev->nand_wait); @@ -265,15 +258,11 @@ static int fsl_ifc_ctrl_probe(struct platform_device *dev) if (ret != 0) { dev_err(&dev->dev, "failed to install irq (%d)\n", fsl_ifc_ctrl_dev->irq); - goto err; + goto err_free_irq; } /* get the nand machine irq */ fsl_ifc_ctrl_dev->nand_irq = platform_get_irq_optional(dev, 1); - if (fsl_ifc_ctrl_dev->nand_irq < 0) { - ret = fsl_ifc_ctrl_dev->nand_irq; - goto err_free_irq; - } if (fsl_ifc_ctrl_dev->nand_irq > 0) { ret = request_irq(fsl_ifc_ctrl_dev->nand_irq, fsl_ifc_nand_irq, 0, "fsl-ifc-nand", fsl_ifc_ctrl_dev); @@ -296,8 +285,6 @@ static int fsl_ifc_ctrl_probe(struct platform_device *dev) free_irq(fsl_ifc_ctrl_dev->nand_irq, fsl_ifc_ctrl_dev); err_free_irq: free_irq(fsl_ifc_ctrl_dev->irq, fsl_ifc_ctrl_dev); -err: - iounmap(fsl_ifc_ctrl_dev->gregs); return ret; } -- 2.54.0