Reviewed-by: Lyude Paul <ly...@redhat.com>
(hope you don't mind that I'm using my gmail address for this ;)

On Thu, 2018-01-18 at 16:49 -0800, Dmitry Torokhov wrote:
> We want to free memory reserved for interrupt mask handling only after we
> free functions, as function drivers might want to mask interrupts. This is
> needed for the followup patch to the F03 that would implement unmasking and
> masking interrupts from the serio pass-through port open() and close()
> methods.
> 
> Cc: sta...@vger.kernel.org
> Signed-off-by: Dmitry Torokhov <dmitry.torok...@gmail.com>
> ---
>  drivers/input/rmi4/rmi_driver.c | 14 +++++++-------
>  1 file changed, 7 insertions(+), 7 deletions(-)
> 
> diff --git a/drivers/input/rmi4/rmi_driver.c
> b/drivers/input/rmi4/rmi_driver.c
> index 27791d6546c66..ce3ede289ed04 100644
> --- a/drivers/input/rmi4/rmi_driver.c
> +++ b/drivers/input/rmi4/rmi_driver.c
> @@ -41,6 +41,13 @@ void rmi_free_function_list(struct rmi_device *rmi_dev)
>  
>       rmi_dbg(RMI_DEBUG_CORE, &rmi_dev->dev, "Freeing function list\n");
>  
> +     /* Doing it in the reverse order so F01 will be removed last */
> +     list_for_each_entry_safe_reverse(fn, tmp,
> +                                      &data->function_list, node) {
> +             list_del(&fn->node);
> +             rmi_unregister_function(fn);
> +     }
> +
>       devm_kfree(&rmi_dev->dev, data->irq_memory);
>       data->irq_memory = NULL;
>       data->irq_status = NULL;
> @@ -50,13 +57,6 @@ void rmi_free_function_list(struct rmi_device *rmi_dev)
>  
>       data->f01_container = NULL;
>       data->f34_container = NULL;
> -
> -     /* Doing it in the reverse order so F01 will be removed last */
> -     list_for_each_entry_safe_reverse(fn, tmp,
> -                                      &data->function_list, node) {
> -             list_del(&fn->node);
> -             rmi_unregister_function(fn);
> -     }
>  }
>  
>  static int reset_one_function(struct rmi_function *fn)

Reply via email to