Message ID | 20190805171504.48122-1-briannorris@chromium.org (mailing list archive) |
---|---|
State | Accepted |
Commit | 654026df2635863fd695b2ca833e5c62454bd5ee |
Delegated to: | Kalle Valo |
Headers | show |
Series | Revert "mwifiex: fix system hang problem after resume" | expand |
Brian Norris <briannorris@chromium.org> wrote: > This reverts commit 437322ea2a36d112e20aa7282c869bf924b3a836. > > This above-mentioned "fix" does not actually do anything to prevent a > race condition. It simply papers over it so that the issue doesn't > appear. > > If this is a real problem, it should be explained better than the above > commit does, and an alternative, non-racy solution should be found. > > For further reason to revert this: there's no reason we can't try > resetting the card when it's *actually* stuck in host-sleep mode. So > instead, this is unnecessarily creating scenarios where we can't recover > Wifi (and in fact, I'm fielding reports of Chromebooks that can't > recover after the aforementioned commit). > > Note that this was proposed in 2017 and Ack'ed then, but due to my > marking as RFC, it never went anywhere: > > https://patchwork.kernel.org/patch/9657277/ > [RFC] Revert "mwifiex: fix system hang problem after resume" > > Cc: Amitkumar Karwar <akarwar@marvell.com> > Signed-off-by: Brian Norris <briannorris@chromium.org> > Reviewed-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> > Acked-by: Amitkumar Karwar <amitkarwar@gmail.com> > Tested-by: Matthias Kaehlcke <mka@chromium.org> Patch applied to wireless-drivers-next.git, thanks. 654026df2635 Revert "mwifiex: fix system hang problem after resume"
diff --git a/drivers/net/wireless/marvell/mwifiex/init.c b/drivers/net/wireless/marvell/mwifiex/init.c index 6c0e52eb8794..1aa93e7e9835 100644 --- a/drivers/net/wireless/marvell/mwifiex/init.c +++ b/drivers/net/wireless/marvell/mwifiex/init.c @@ -59,7 +59,7 @@ static void wakeup_timer_fn(struct timer_list *t) adapter->hw_status = MWIFIEX_HW_STATUS_RESET; mwifiex_cancel_all_pending_cmd(adapter); - if (adapter->if_ops.card_reset && !adapter->hs_activated) + if (adapter->if_ops.card_reset) adapter->if_ops.card_reset(adapter); }