From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753908AbcCWCw7 (ORCPT ); Tue, 22 Mar 2016 22:52:59 -0400 Received: from mleia.com ([178.79.152.223]:55388 "EHLO mail.mleia.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750921AbcCWCwv (ORCPT ); Tue, 22 Mar 2016 22:52:51 -0400 From: Vladimir Zapolskiy To: Greg Kroah-Hartman Cc: Arnd Bergmann , linux-kernel@vger.kernel.org Subject: [PATCH v2] misc: sram: fix check of devm_ioremap*() return value Date: Wed, 23 Mar 2016 04:52:45 +0200 Message-Id: <1458701565-10722-1-git-send-email-vz@mleia.com> X-Mailer: git-send-email 2.1.4 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-49551924 X-CRM114-CacheID: sfid-20160323_025656_452812_C8A6E0D0 X-CRM114-Status: GOOD ( 14.51 ) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Both devm_ioremap() and devm_ioremap_wc() functions return either a pointer to valid iomem region or NULL, check for IS_ERR() is improper and may result in oops on error path. Now on error -ENOMEM is returned. Fixes: 0ab163ad1ea0 ("misc: sram: switch to ioremap_wc from ioremap") Signed-off-by: Vladimir Zapolskiy --- I add Fixes: tag for reference, but unfortunately the change can not be cleanly applied to kernel versions liable to the problem. Changes from v1 to v2: - had to rebase on top of eb43e023130b ("misc: sram: add optional ioremap without write combining") - slightly reworded the commit message and subject v1 of the change: https://lkml.org/lkml/2016/3/6/202 drivers/misc/sram.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/misc/sram.c b/drivers/misc/sram.c index 69cdabe..f84b53d 100644 --- a/drivers/misc/sram.c +++ b/drivers/misc/sram.c @@ -364,8 +364,8 @@ static int sram_probe(struct platform_device *pdev) sram->virt_base = devm_ioremap(sram->dev, res->start, size); else sram->virt_base = devm_ioremap_wc(sram->dev, res->start, size); - if (IS_ERR(sram->virt_base)) - return PTR_ERR(sram->virt_base); + if (!sram->virt_base) + return -ENOMEM; sram->pool = devm_gen_pool_create(sram->dev, ilog2(SRAM_GRANULARITY), NUMA_NO_NODE, NULL); -- 2.1.4