From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751131AbdCNH5K (ORCPT ); Tue, 14 Mar 2017 03:57:10 -0400 Received: from aserp1040.oracle.com ([141.146.126.69]:38503 "EHLO aserp1040.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750847AbdCNH45 (ORCPT ); Tue, 14 Mar 2017 03:56:57 -0400 Date: Tue, 14 Mar 2017 10:56:32 +0300 From: Dan Carpenter To: Peter Rosin Cc: linux-kernel@vger.kernel.org, kernel-janitors@vger.kernel.org Subject: [PATCH] mux: checking for IS_ERR() instead of NULL or vice versa Message-ID: <20170314075243.GA6169@mwanda> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.6.0 (2016-04-01) X-Source-IP: aserv0021.oracle.com [141.146.126.233] Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This error handling is mixed up. mux_chip_alloc() doesn't return error pointers but devm_mux_chip_alloc() does. Fixes: 4f5078327db1 ("mux: minimal mux subsystem and gpio-based mux controller") Signed-off-by: Dan Carpenter diff --git a/drivers/mux/mux-core.c b/drivers/mux/mux-core.c index 46088a0f9677..de678520a329 100644 --- a/drivers/mux/mux-core.c +++ b/drivers/mux/mux-core.c @@ -167,9 +167,9 @@ struct mux_chip *devm_mux_chip_alloc(struct device *dev, return ERR_PTR(-ENOMEM); mux_chip = mux_chip_alloc(dev, controllers, sizeof_priv); - if (IS_ERR(mux_chip)) { + if (!mux_chip) { devres_free(ptr); - return mux_chip; + return ERR_PTR(-ENOMEM); } *ptr = mux_chip; diff --git a/drivers/mux/mux-gpio.c b/drivers/mux/mux-gpio.c index 04c6e548ecdc..d0596a3c2f79 100644 --- a/drivers/mux/mux-gpio.c +++ b/drivers/mux/mux-gpio.c @@ -63,8 +63,8 @@ static int mux_gpio_probe(struct platform_device *pdev) mux_chip = devm_mux_chip_alloc(dev, 1, sizeof(*mux_gpio) + pins * sizeof(*mux_gpio->val)); - if (!mux_chip) - return -ENOMEM; + if (IS_ERR(mux_chip)) + return PTR_ERR(mux_chip); mux_gpio = mux_chip_priv(mux_chip); mux_gpio->val = (int *)(mux_gpio + 1); diff --git a/drivers/mux/mux-adg792a.c b/drivers/mux/mux-adg792a.c index d58971641fdc..8972f4f6c655 100644 --- a/drivers/mux/mux-adg792a.c +++ b/drivers/mux/mux-adg792a.c @@ -65,8 +65,8 @@ static int adg792a_probe(struct i2c_client *i2c, return -EINVAL; mux_chip = devm_mux_chip_alloc(dev, cells ? 3 : 1, 0); - if (!mux_chip) - return -ENOMEM; + if (IS_ERR(mux_chip)) + return PTR_ERR(mux_chip); mux_chip->ops = &adg792a_ops;