lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
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

Powered by Openwall GNU/*/Linux Powered by OpenVZ