On Fri, Jan 20, 2017 at 07:14:18PM +0800, Jeffy Chen wrote:
> It's much the same as what we did for mwifiex in:
> b9da4d2 mwifiex: avoid double-disable_irq() race

You could still stand to borrow some of the explanation for your commit
message here...

> Signed-off-by: Jeffy Chen <[email protected]>

Fix looks good:

Reviewed-by: Brian Norris <[email protected]>

> ---
> 
>  drivers/bluetooth/btmrvl_sdio.c | 8 ++++++--
>  1 file changed, 6 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/bluetooth/btmrvl_sdio.c b/drivers/bluetooth/btmrvl_sdio.c
> index d02f2c1..c738bae 100644
> --- a/drivers/bluetooth/btmrvl_sdio.c
> +++ b/drivers/bluetooth/btmrvl_sdio.c
> @@ -1682,8 +1682,12 @@ static int btmrvl_sdio_resume(struct device *dev)
>       /* Disable platform specific wakeup interrupt */
>       if (card->plt_wake_cfg && card->plt_wake_cfg->irq_bt >= 0) {
>               disable_irq_wake(card->plt_wake_cfg->irq_bt);
> -             if (!card->plt_wake_cfg->wake_by_bt)
> -                     disable_irq(card->plt_wake_cfg->irq_bt);
> +             disable_irq(card->plt_wake_cfg->irq_bt);
> +             if (card->plt_wake_cfg->wake_by_bt)
> +                     /* Undo our disable, since interrupt handler already
> +                      * did this.
> +                      */
> +                     enable_irq(card->plt_wake_cfg->irq_bt);
>       }
>  
>       return 0;
> -- 
> 2.1.4
> 
> 

Reply via email to