The error handling is mixed up. mux_chip_alloc() doesn't return an error pointer (just NULL on failure), so check for NULL instead of using IS_ERR. devm_mux_chip_alloc is documented to return NULL on failure, so fix that as well. All users of devm_mux_chip_alloc() are coded according to documentation. Fixes: d47598cc669b ("mux: minimal mux subsystem and gpio-based mux controller") Reported-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx> Signed-off-by: Peter Rosin <peda@xxxxxxxxxx> --- drivers/mux/mux-core.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/mux/mux-core.c b/drivers/mux/mux-core.c index 900b88526f97..66a8bccfc3d7 100644 --- a/drivers/mux/mux-core.c +++ b/drivers/mux/mux-core.c @@ -166,12 +166,12 @@ struct mux_chip *devm_mux_chip_alloc(struct device *dev, ptr = devres_alloc(devm_mux_chip_release, sizeof(*ptr), GFP_KERNEL); if (!ptr) - return ERR_PTR(-ENOMEM); + return NULL; mux_chip = mux_chip_alloc(dev, controllers, sizeof_priv); - if (IS_ERR(mux_chip)) { + if (!mux_chip) { devres_free(ptr); - return mux_chip; + return NULL; } *ptr = mux_chip; -- 2.1.4 -- To unsubscribe from this list: send the line "unsubscribe linux-iio" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html