diff mbox

mwifiex: uninit wakeup info when failed to add card

Message ID 1499068470-8022-1-git-send-email-jeffy.chen@rock-chips.com (mailing list archive)
State Changes Requested
Delegated to: Kalle Valo
Headers show

Commit Message

Jeffy Chen July 3, 2017, 7:54 a.m. UTC
We inited wakeup info at the beginning of mwifiex_add_card, so we need
to uninit it in the error handling.

It's much the same as what we did in:
36908c4 mwifiex: uninit wakeup info when removing device

Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>

---

 drivers/net/wireless/marvell/mwifiex/main.c | 2 ++
 1 file changed, 2 insertions(+)

Comments

Brian Norris July 5, 2017, 6:08 p.m. UTC | #1
On Mon, Jul 03, 2017 at 03:54:30PM +0800, Jeffy Chen wrote:
> We inited wakeup info at the beginning of mwifiex_add_card, so we need
> to uninit it in the error handling.
> 
> It's much the same as what we did in:
> 36908c4 mwifiex: uninit wakeup info when removing device

Yeah, I noticed I hadn't covered all the error cases, so your change is
part of the fix. But you're not covering the error paths when the
firmware doesn't load correctly -- this happens asynchronously to
mwifiex_add_card(). i.e., you need to fixup the error paths in
_mwifiex_fw_dpc() too.

Brian

> Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
> 
> ---
> 
>  drivers/net/wireless/marvell/mwifiex/main.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/drivers/net/wireless/marvell/mwifiex/main.c b/drivers/net/wireless/marvell/mwifiex/main.c
> index f2600b8..17d2cbe 100644
> --- a/drivers/net/wireless/marvell/mwifiex/main.c
> +++ b/drivers/net/wireless/marvell/mwifiex/main.c
> @@ -1655,6 +1655,8 @@ mwifiex_add_card(void *card, struct completion *fw_done,
>  		mwifiex_shutdown_drv(adapter);
>  	}
>  err_kmalloc:
> +	if (adapter->irq_wakeup >= 0)
> +		device_init_wakeup(adapter->dev, false);
>  	mwifiex_free_adapter(adapter);
>  
>  err_init_sw:
> -- 
> 2.1.4
> 
>
Jeffy Chen July 6, 2017, 8:47 a.m. UTC | #2
Hi brian,

On 07/06/2017 02:08 AM, Brian Norris wrote:
> On Mon, Jul 03, 2017 at 03:54:30PM +0800, Jeffy Chen wrote:
>> We inited wakeup info at the beginning of mwifiex_add_card, so we need
>> to uninit it in the error handling.
>>
>> It's much the same as what we did in:
>> 36908c4 mwifiex: uninit wakeup info when removing device
>
> Yeah, I noticed I hadn't covered all the error cases, so your change is
> part of the fix. But you're not covering the error paths when the
> firmware doesn't load correctly -- this happens asynchronously to
> mwifiex_add_card(). i.e., you need to fixup the error paths in
> _mwifiex_fw_dpc() too.
right, so we need to uninit it before every mwifiex_free_adapter :)
>
> Brian
>
>> Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
>>
>> ---
>>
>>   drivers/net/wireless/marvell/mwifiex/main.c | 2 ++
>>   1 file changed, 2 insertions(+)
>>
>> diff --git a/drivers/net/wireless/marvell/mwifiex/main.c b/drivers/net/wireless/marvell/mwifiex/main.c
>> index f2600b8..17d2cbe 100644
>> --- a/drivers/net/wireless/marvell/mwifiex/main.c
>> +++ b/drivers/net/wireless/marvell/mwifiex/main.c
>> @@ -1655,6 +1655,8 @@ mwifiex_add_card(void *card, struct completion *fw_done,
>>   		mwifiex_shutdown_drv(adapter);
>>   	}
>>   err_kmalloc:
>> +	if (adapter->irq_wakeup >= 0)
>> +		device_init_wakeup(adapter->dev, false);
>>   	mwifiex_free_adapter(adapter);
>>
>>   err_init_sw:
>> --
>> 2.1.4
>>
>>
>
>
>
diff mbox

Patch

diff --git a/drivers/net/wireless/marvell/mwifiex/main.c b/drivers/net/wireless/marvell/mwifiex/main.c
index f2600b8..17d2cbe 100644
--- a/drivers/net/wireless/marvell/mwifiex/main.c
+++ b/drivers/net/wireless/marvell/mwifiex/main.c
@@ -1655,6 +1655,8 @@  mwifiex_add_card(void *card, struct completion *fw_done,
 		mwifiex_shutdown_drv(adapter);
 	}
 err_kmalloc:
+	if (adapter->irq_wakeup >= 0)
+		device_init_wakeup(adapter->dev, false);
 	mwifiex_free_adapter(adapter);
 
 err_init_sw: