From: Johannes Pointner Date: Mon, 25 Aug 2014 08:04:00 +0000 (+0100) Subject: iio:inkern: fix overwritten -EPROBE_DEFER in of_iio_channel_get_by_name X-Git-Tag: v3.17-rc6~3^2~1^2~11 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=872687f626e033b4ddfaec1e410057cfc6636d77;p=karo-tx-linux.git iio:inkern: fix overwritten -EPROBE_DEFER in of_iio_channel_get_by_name Fixes: a2c12493ed7e ('iio: of_iio_channel_get_by_name() returns non-null pointers for error legs') which improperly assumes that of_iio_channel_get_by_name must always return NULL and thus now hides -EPROBE_DEFER. Signed-off-by: Johannes Pointner Reviewed-by: Guenter Roeck Signed-off-by: Jonathan Cameron Cc: Stable@vger.kernel.org --- diff --git a/drivers/iio/inkern.c b/drivers/iio/inkern.c index c7497009d60a..f0846108d006 100644 --- a/drivers/iio/inkern.c +++ b/drivers/iio/inkern.c @@ -178,7 +178,7 @@ static struct iio_channel *of_iio_channel_get_by_name(struct device_node *np, index = of_property_match_string(np, "io-channel-names", name); chan = of_iio_channel_get(np, index); - if (!IS_ERR(chan)) + if (!IS_ERR(chan) || PTR_ERR(chan) == -EPROBE_DEFER) break; else if (name && index >= 0) { pr_err("ERROR: could not get IIO channel %s:%s(%i)\n",