Message ID | CANUX_P3kv5ofQJLGyEvRSgetHg=TJsaVennLJWq3ummgRJHWgg@mail.gmail.com (mailing list archive) |
---|---|
State | Not Applicable |
Headers | show |
Emmanuel Grumbach egrumbach@gmail.com On Sun, Jan 18, 2015 at 9:13 PM, Emmanuel Grumbach <egrumbach@gmail.com> wrote: > On Sun, Jan 18, 2015 at 8:52 PM, Emmanuel Grumbach <egrumbach@gmail.com> wrote: >> On Sun, Jan 18, 2015 at 8:40 PM, Linus Torvalds >> <torvalds@linux-foundation.org> wrote: >>> On Mon, Jan 19, 2015 at 5:48 AM, Arend van Spriel <arend@broadcom.com> wrote: >>>> >>>> So as you indicated you were in location where none of your configured >>>> networks were available. Flipping the rfkill switch in that situation is the >>>> way to trigger the issue. >>> >>> So you certainly seem to be able to explain the behavior I saw under >>> the circumstances they happened. >>> >>> I suspect the best thing to do is to just apply your patch. I may not >>> be able to really test it much for the next few days anyway. Emmanuel? >>> >> >> Sorry - I was a bit busy. >> The patch seems wrong, we can't really call that function from the >> rfkill interrupt - it will blow up. >> The good news is that I could reproduce the bug based on what Arend >> pointed. I totally missed the fact >> that it was scheduled scan - thanks Arend for that. >> >> So the system I have here doesn't have HW rfkill so I had to implement >> a hook that fakes it, >> but I can't reproduce the problem. >> I'll come up with a patch. > > > Ok - Here is the patch: > > diff --git a/drivers/net/wireless/iwlwifi/mvm/ops.c > b/drivers/net/wireless/iwlwifi/mvm/ops.c > index 384eefd..bbd8054 100644 > --- a/drivers/net/wireless/iwlwifi/mvm/ops.c > +++ b/drivers/net/wireless/iwlwifi/mvm/ops.c > @@ -867,6 +867,9 @@ static bool iwl_mvm_set_hw_rfkill_state(struct > iwl_op_mode *op_mode, bool state) > if (calibrating) > iwl_abort_notification_waits(&mvm->notif_wait); > > + if (state) > + mvm->scan_status = IWL_MVM_SCAN_NONE; > + > /* > * Stop the device if we run OPERATIONAL firmware or if we are in the > * middle of the calibrations. > > > I will send that for internal review, because I am not all that much > familiar with this and I want the guy who wrote that code to take a > look before I send a pull request, but that should help. > Nah this is bad... I have a correct patch - pull request on the way. -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/net/wireless/iwlwifi/mvm/ops.c b/drivers/net/wireless/iwlwifi/mvm/ops.c index 384eefd..bbd8054 100644 --- a/drivers/net/wireless/iwlwifi/mvm/ops.c +++ b/drivers/net/wireless/iwlwifi/mvm/ops.c @@ -867,6 +867,9 @@ static bool iwl_mvm_set_hw_rfkill_state(struct iwl_op_mode *op_mode, bool state) if (calibrating) iwl_abort_notification_waits(&mvm->notif_wait); + if (state) + mvm->scan_status = IWL_MVM_SCAN_NONE; + /* * Stop the device if we run OPERATIONAL firmware or if we are in the