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] [day] [month] [year] [list]
Date:   Fri, 12 Apr 2019 09:38:12 +0900
From:   Chanwoo Choi <cw00.choi@...sung.com>
To:     Charles Keepax <ckeepax@...nsource.cirrus.com>,
        myungjoo.ham@...sung.com
Cc:     linux-kernel@...r.kernel.org, patches@...nsource.cirrus.com
Subject: Re: [PATCH] extcon: arizona: Disable mic detect if running when
 driver is removed

Hi Charles,

On 19. 4. 5. 오전 1:33, Charles Keepax wrote:
> Microphone detection provides the button detection features on the
> Arizona CODECs as such it will be running if the jack is currently
> inserted. If the driver is unbound whilst the jack is still inserted
> this will cause warnings from the regulator framework as the MICVDD
> regulator is put but was never disabled.
> 
> Correct this by disabling microphone detection on driver removal and if
> the microphone detection was running disable the regulator and put the
> runtime reference that was currently held.
> 
> Signed-off-by: Charles Keepax <ckeepax@...nsource.cirrus.com>
> ---
>  drivers/extcon/extcon-arizona.c | 10 ++++++++++
>  1 file changed, 10 insertions(+)
> 
> diff --git a/drivers/extcon/extcon-arizona.c b/drivers/extcon/extcon-arizona.c
> index da0e9bc4262fa..9327479c719c2 100644
> --- a/drivers/extcon/extcon-arizona.c
> +++ b/drivers/extcon/extcon-arizona.c
> @@ -1726,6 +1726,16 @@ static int arizona_extcon_remove(struct platform_device *pdev)
>  	struct arizona_extcon_info *info = platform_get_drvdata(pdev);
>  	struct arizona *arizona = info->arizona;
>  	int jack_irq_rise, jack_irq_fall;
> +	bool change;
> +
> +	regmap_update_bits_check(arizona->regmap, ARIZONA_MIC_DETECT_1,
> +				 ARIZONA_MICD_ENA, 0,
> +				 &change);
> +
> +	if (change) {
> +		regulator_disable(info->micvdd);
> +		pm_runtime_put(info->dev);
> +	}>  
>  	gpiod_put(info->micd_pol_gpio);
>  
> 

Applied it.


IMO, I think that this driver have to handle the exception handling
when regmap_update_bits_check() returns error or 'change' value
is not changed. This driver have same issue about exception handling
on multiple places. Please take it on separate patche.

-- 
Best Regards,
Chanwoo Choi
Samsung Electronics

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ