ACPI: AGDI: Improve error reporting for problems during .remove()
authorUwe Kleine-König <u.kleine-koenig@pengutronix.de>
Fri, 14 Oct 2022 16:06:23 +0000 (18:06 +0200)
committerWill Deacon <will@kernel.org>
Mon, 17 Apr 2023 11:26:03 +0000 (12:26 +0100)
Returning an error value in a platform driver's remove callback results in
a generic error message being emitted by the driver core, but otherwise it
doesn't make a difference. The device goes away anyhow.

So instead of triggering the generic platform error message, emit a more
helpful message if a problem occurs and return 0 to suppress the generic
message.

This patch is a preparation for making platform remove callbacks return
void.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Reviewed-by: Lorenzo Pieralisi <lpieralisi@kernel.org>
Link: https://lore.kernel.org/r/20221014160623.467195-1-u.kleine-koenig@pengutronix.de
Signed-off-by: Will Deacon <will@kernel.org>
drivers/acpi/arm64/agdi.c

index cf31abd..f605302 100644 (file)
@@ -64,8 +64,11 @@ static int agdi_remove(struct platform_device *pdev)
        int err, i;
 
        err = sdei_event_disable(adata->sdei_event);
-       if (err)
-               return err;
+       if (err) {
+               dev_err(&pdev->dev, "Failed to disable sdei-event #%d (%pe)\n",
+                       adata->sdei_event, ERR_PTR(err));
+               return 0;
+       }
 
        for (i = 0; i < 3; i++) {
                err = sdei_event_unregister(adata->sdei_event);
@@ -75,7 +78,11 @@ static int agdi_remove(struct platform_device *pdev)
                schedule();
        }
 
-       return err;
+       if (err)
+               dev_err(&pdev->dev, "Failed to unregister sdei-event #%d (%pe)\n",
+                       adata->sdei_event, ERR_PTR(err));
+
+       return 0;
 }
 
 static struct platform_driver agdi_driver = {