platform/surface: platform_profile: Propagate error if profile registration fails
authorArmin Wolf <W_Armin@gmx.de>
Sat, 14 Oct 2023 23:54:49 +0000 (01:54 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 25 Oct 2023 10:03:15 +0000 (12:03 +0200)
commit fe0e04cf66a12ffe6d1b43725ddaabd5599d024f upstream.

If platform_profile_register() fails, the driver does not propagate
the error, but instead probes successfully. This means when the driver
unbinds, the a warning might be issued by platform_profile_remove().

Fix this by propagating the error back to the caller of
surface_platform_profile_probe().

Compile-tested only.

Fixes: b78b4982d763 ("platform/surface: Add platform profile driver")
Signed-off-by: Armin Wolf <W_Armin@gmx.de>
Reviewed-by: Maximilian Luz <luzmaximilian@gmail.com>
Tested-by: Maximilian Luz <luzmaximilian@gmail.com>
Link: https://lore.kernel.org/r/20231014235449.288702-1-W_Armin@gmx.de
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/platform/surface/surface_platform_profile.c

index fbf2e11fd6ce75447a83545fee7a0b4bb9161a2f..37c761f57714944d8840e47812860529aff718a7 100644 (file)
@@ -159,8 +159,7 @@ static int surface_platform_profile_probe(struct ssam_device *sdev)
        set_bit(PLATFORM_PROFILE_BALANCED_PERFORMANCE, tpd->handler.choices);
        set_bit(PLATFORM_PROFILE_PERFORMANCE, tpd->handler.choices);
 
-       platform_profile_register(&tpd->handler);
-       return 0;
+       return platform_profile_register(&tpd->handler);
 }
 
 static void surface_platform_profile_remove(struct ssam_device *sdev)