[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1516323951.2814.2.camel@gmail.com>
Date: Thu, 18 Jan 2018 20:05:51 -0500
From: thatslyude@...il.com
To: Dmitry Torokhov <dmitry.torokhov@...il.com>,
Benjamin Tissoires <benjamin.tissoires@...hat.com>,
Damjan Georgievski <gdamjan@...il.com>
Cc: linux-input@...r.kernel.org, linux-kernel@...r.kernel.org,
Andrew Duggan <aduggan@...aptics.com>, stable@...r.kernel.org
Subject: Re: [PATCH 1/3] Input: synaptics_rmi4 - do not delete interrupt
memory too early
Reviewed-by: Lyude Paul <lyude@...hat.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: stable@...r.kernel.org
> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@...il.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)
Powered by blists - more mailing lists