spmi: Return meaningful errors in spmi_controller_alloc()
authorFei Shao <fshao@chromium.org>
Wed, 6 Dec 2023 23:17:30 +0000 (15:17 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 15 Dec 2023 16:27:04 +0000 (17:27 +0100)
spmi_controller_alloc() currently returns NULL to all types of errors,
which can be improved.

Use appropriate error code in returns and pass the errors from used
functions where possible.

Signed-off-by: Fei Shao <fshao@chromium.org>
Link: https://lore.kernel.org/r/20230824104101.4083400-6-fshao@chromium.org
Signed-off-by: Stephen Boyd <sboyd@kernel.org>
Link: https://lore.kernel.org/r/20231206231733.4031901-8-sboyd@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/spmi/spmi-devres.c
drivers/spmi/spmi.c

index 7683e6fdb18f51cb79145f4dead7be07287c3e96..62c4b3f24d0656eea9b6da489b7716b9965bedbe 100644 (file)
@@ -20,9 +20,9 @@ struct spmi_controller *devm_spmi_controller_alloc(struct device *parent, size_t
                return ERR_PTR(-ENOMEM);
 
        ctrl = spmi_controller_alloc(parent, size);
-       if (!ctrl) {
+       if (IS_ERR(ctrl)) {
                devres_free(ptr);
-               return ERR_PTR(-ENOMEM);
+               return ctrl;
        }
 
        *ptr = ctrl;
index 93cd4a34debc7808c6a0cd336b47d38204db8f53..3a60fd2e09e1f978c436ec925a06d554fd04e747 100644 (file)
@@ -448,11 +448,11 @@ struct spmi_controller *spmi_controller_alloc(struct device *parent,
        int id;
 
        if (WARN_ON(!parent))
-               return NULL;
+               return ERR_PTR(-EINVAL);
 
        ctrl = kzalloc(sizeof(*ctrl) + size, GFP_KERNEL);
        if (!ctrl)
-               return NULL;
+               return ERR_PTR(-ENOMEM);
 
        device_initialize(&ctrl->dev);
        ctrl->dev.type = &spmi_ctrl_type;
@@ -466,7 +466,7 @@ struct spmi_controller *spmi_controller_alloc(struct device *parent,
                dev_err(parent,
                        "unable to allocate SPMI controller identifier.\n");
                spmi_controller_put(ctrl);
-               return NULL;
+               return ERR_PTR(id);
        }
 
        ctrl->nr = id;