Re: [PATCH] [ACPI] fan_core: Add error handling in fan_set_state_acpi4

From: Rafael J. Wysocki
Date: Wed Dec 06 2023 - 15:06:43 EST


On Wed, Nov 29, 2023 at 8:15 AM Haoran Liu <liuhaoran14@xxxxxxx> wrote:
>
> This patch introduces error handling for the acpi_driver_data
> call within the fan_set_state_acpi4 function in
> drivers/acpi/fan_core.c. Previously, the function did not account
> for potential null returns from acpi_driver_data, which could
> lead to instability if encountered.

This needs to explain why/how it is possible for acpi_driver_data() to
return NULL in fan_set_state_acpi4().

> Signed-off-by: Haoran Liu <liuhaoran14@xxxxxxx>
> ---
> drivers/acpi/fan_core.c | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/drivers/acpi/fan_core.c b/drivers/acpi/fan_core.c
> index 9dccbae9e8ea..f2553a47a705 100644
> --- a/drivers/acpi/fan_core.c
> +++ b/drivers/acpi/fan_core.c
> @@ -154,6 +154,12 @@ static int fan_set_state_acpi4(struct acpi_device *device, unsigned long state)
> u64 value = state;
> int max_state;
>
> + if (!fan) {
> + pr_err("%s: No ACPI fan data "
> + "associated with the device\n", __func__);
> + return -ENODEV;
> + }
> +
> if (fan->fif.fine_grain_ctrl)
> max_state = 100 / fan->fif.step_size;
> else
> --
> 2.17.1
>