Message ID | 1420631859-29004-1-git-send-email-akarwar@marvell.com (mailing list archive) |
---|---|
State | Accepted |
Delegated to: | Kalle Valo |
Headers | show |
Hi Kalle, >On Wed, Jan 7, 2015 at 5:27 PM, Amitkumar Karwar <akarwar@marvell.com> wrote: >Ignore scan and connection requests from cfg80211 when driver >unload is in process or previous command has timed out due to >a firmware bug. This patch fixes corner case system crash >issues. >Signed-off-by: Amitkumar Karwar <akarwar@marvell.com> >Signed-off-by: Cathy Luo <cluo@marvell.com> >--- > drivers/net/wireless/mwifiex/cfg80211.c | 8 ++++++++ > drivers/net/wireless/mwifiex/scan.c | 6 ++++++ > 2 files changed, 14 insertions(+) Could you please check this patch? Let me know if you want me to resend it. Best regards, Amit
Amitkumar Karwar <akarwar@marvell.com> writes: > Hi Kalle, > >>On Wed, Jan 7, 2015 at 5:27 PM, Amitkumar Karwar <akarwar@marvell.com> wrote: >>Ignore scan and connection requests from cfg80211 when driver >>unload is in process or previous command has timed out due to >>a firmware bug. This patch fixes corner case system crash >>issues. > >>Signed-off-by: Amitkumar Karwar <akarwar@marvell.com> >>Signed-off-by: Cathy Luo <cluo@marvell.com> >>--- >> drivers/net/wireless/mwifiex/cfg80211.c | 8 ++++++++ >> drivers/net/wireless/mwifiex/scan.c | 6 ++++++ >> 2 files changed, 14 insertions(+) > > Could you please check this patch? Let me know if you want me to > resend it. Unfortunately I'm lagging behind because I decided to work on automating the patch handling. I'm hoping that makes it easier for me to stay up-to-date. Also it would help me that instead of mailing me people would check the status from the patchwork: https://patchwork.kernel.org/project/linux-wireless/list/ If the patch is delegated to me and state is one of "New", "Under Review" or "Awaiting Upstream" it means that the patch is in queue of patches to process. If it's anything else it means that the patch is dropped due to some reason, either for a reason (issues found during review etc) or accidentally (which can also happen in rare cases). This patch is in 'Under Review' state so I will get to it eventually: https://patchwork.kernel.org/patch/5584351/ And even looks to be in top of my list so it shouldn't take long.
SGkgS2FsbG8sDQoNCj5vd25lckB2Z2VyLmtlcm5lbC5vcmddIE9uIEJlaGFsZiBPZiBLYWxsZSBW YWxvDQo+U2VudDogMjIgSmFudWFyeSAyMDE1IDE5OjQzDQo+VG86IEFtaXRrdW1hciBLYXJ3YXIN Cj5DYzogQXZpbmFzaCBQYXRpbDsgQ2F0aHkgTHVvOyBsaW51eC13aXJlbGVzc0B2Z2VyLmtlcm5l bC5vcmcNCj5TdWJqZWN0OiBSZTogW1BBVENIXSBtd2lmaWV4OiBjaGVjayBkcml2ZXIgc3RhdHVz IGluIGNvbm5lY3QgYW5kIHNjYW4NCj5oYW5kbGVycw0KPg0KPkFtaXRrdW1hciBLYXJ3YXIgPGFr YXJ3YXJAbWFydmVsbC5jb20+IHdyaXRlczoNCj4NCj4+IEhpIEthbGxlLA0KPj4NCj4+Pk9uIFdl ZCwgSmFuIDcsIDIwMTUgYXQgNToyNyBQTSwgQW1pdGt1bWFyIEthcndhciA8YWthcndhckBtYXJ2 ZWxsLmNvbT4NCj53cm90ZToNCj4+Pklnbm9yZSBzY2FuIGFuZCBjb25uZWN0aW9uIHJlcXVlc3Rz IGZyb20gY2ZnODAyMTEgd2hlbiBkcml2ZXIgdW5sb2FkDQo+Pj5pcyBpbiBwcm9jZXNzIG9yIHBy ZXZpb3VzIGNvbW1hbmQgaGFzIHRpbWVkIG91dCBkdWUgdG8gYSBmaXJtd2FyZSBidWcuDQo+Pj5U aGlzIHBhdGNoIGZpeGVzIGNvcm5lciBjYXNlIHN5c3RlbSBjcmFzaCBpc3N1ZXMuDQo+Pg0KPj4+ U2lnbmVkLW9mZi1ieTogQW1pdGt1bWFyIEthcndhciA8YWthcndhckBtYXJ2ZWxsLmNvbT4NCj4+ PlNpZ25lZC1vZmYtYnk6IENhdGh5IEx1byA8Y2x1b0BtYXJ2ZWxsLmNvbT4NCj4+Pi0tLQ0KPj4+ wqBkcml2ZXJzL25ldC93aXJlbGVzcy9td2lmaWV4L2NmZzgwMjExLmMgfCA4ICsrKysrKysrDQo+ Pj7CoGRyaXZlcnMvbmV0L3dpcmVsZXNzL213aWZpZXgvc2Nhbi5jwqAgwqAgwqB8IDYgKysrKysr DQo+Pj7CoDIgZmlsZXMgY2hhbmdlZCwgMTQgaW5zZXJ0aW9ucygrKQ0KPj4NCj4+IENvdWxkIHlv dSBwbGVhc2UgY2hlY2sgdGhpcyBwYXRjaD8gTGV0IG1lIGtub3cgaWYgeW91IHdhbnQgbWUgdG8N Cj4+IHJlc2VuZCBpdC4NCj4NCj5VbmZvcnR1bmF0ZWx5IEknbSBsYWdnaW5nIGJlaGluZCBiZWNh dXNlIEkgZGVjaWRlZCB0byB3b3JrIG9uIGF1dG9tYXRpbmcNCj50aGUgcGF0Y2ggaGFuZGxpbmcu IEknbSBob3BpbmcgdGhhdCBtYWtlcyBpdCBlYXNpZXIgZm9yIG1lIHRvIHN0YXkgdXAtDQo+dG8t ZGF0ZS4NCj4NCj5BbHNvIGl0IHdvdWxkIGhlbHAgbWUgdGhhdCBpbnN0ZWFkIG9mIG1haWxpbmcg bWUgcGVvcGxlIHdvdWxkIGNoZWNrIHRoZQ0KPnN0YXR1cyBmcm9tIHRoZSBwYXRjaHdvcms6DQo+ DQo+aHR0cHM6Ly9wYXRjaHdvcmsua2VybmVsLm9yZy9wcm9qZWN0L2xpbnV4LXdpcmVsZXNzL2xp c3QvDQo+DQo+SWYgdGhlIHBhdGNoIGlzIGRlbGVnYXRlZCB0byBtZSBhbmQgc3RhdGUgaXMgb25l IG9mICJOZXciLCAiVW5kZXINCj5SZXZpZXciIG9yICJBd2FpdGluZyBVcHN0cmVhbSIgaXQgbWVh bnMgdGhhdCB0aGUgcGF0Y2ggaXMgaW4gcXVldWUgb2YNCj5wYXRjaGVzIHRvIHByb2Nlc3MuIElm IGl0J3MgYW55dGhpbmcgZWxzZSBpdCBtZWFucyB0aGF0IHRoZSBwYXRjaCBpcw0KPmRyb3BwZWQg ZHVlIHRvIHNvbWUgcmVhc29uLCBlaXRoZXIgZm9yIGEgcmVhc29uIChpc3N1ZXMgZm91bmQgZHVy aW5nDQo+cmV2aWV3IGV0Yykgb3IgYWNjaWRlbnRhbGx5ICh3aGljaCBjYW4gYWxzbyBoYXBwZW4g aW4gcmFyZSBjYXNlcykuDQo+DQo+VGhpcyBwYXRjaCBpcyBpbiAnVW5kZXIgUmV2aWV3JyBzdGF0 ZSBzbyBJIHdpbGwgZ2V0IHRvIGl0IGV2ZW50dWFsbHk6DQo+DQo+aHR0cHM6Ly9wYXRjaHdvcmsu a2VybmVsLm9yZy9wYXRjaC81NTg0MzUxLw0KPg0KDQpUaGFua3MgZm9yIHlvdXIgcmVwbHkuIFNv dW5kcyBnb29kIHRvIG1lLiANCg0KUmVnYXJkcywNCkFtaXRrdW1hcg0K -- 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
> Ignore scan and connection requests from cfg80211 when driver > unload is in process or previous command has timed out due to > a firmware bug. This patch fixes corner case system crash > issues. > > Signed-off-by: Amitkumar Karwar <akarwar@marvell.com> > Signed-off-by: Cathy Luo <cluo@marvell.com> Thanks, applied to wireless-drivers-next.git. Kalle Valo -- 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/mwifiex/cfg80211.c b/drivers/net/wireless/mwifiex/cfg80211.c index 93ab36f..06feb44 100644 --- a/drivers/net/wireless/mwifiex/cfg80211.c +++ b/drivers/net/wireless/mwifiex/cfg80211.c @@ -1784,6 +1784,7 @@ mwifiex_cfg80211_connect(struct wiphy *wiphy, struct net_device *dev, struct cfg80211_connect_params *sme) { struct mwifiex_private *priv = mwifiex_netdev_get_priv(dev); + struct mwifiex_adapter *adapter = priv->adapter; int ret; if (GET_BSS_ROLE(priv) != MWIFIEX_BSS_ROLE_STA) { @@ -1798,6 +1799,13 @@ mwifiex_cfg80211_connect(struct wiphy *wiphy, struct net_device *dev, return -EALREADY; } + if (adapter->surprise_removed || adapter->is_cmd_timedout) { + wiphy_err(wiphy, + "%s: Ignore connection. Card removed or FW in bad state\n", + dev->name); + return -EFAULT; + } + wiphy_dbg(wiphy, "info: Trying to associate to %s and bssid %pM\n", (char *) sme->ssid, sme->bssid); diff --git a/drivers/net/wireless/mwifiex/scan.c b/drivers/net/wireless/mwifiex/scan.c index 984a7a4..e304f07 100644 --- a/drivers/net/wireless/mwifiex/scan.c +++ b/drivers/net/wireless/mwifiex/scan.c @@ -1429,6 +1429,12 @@ int mwifiex_scan_networks(struct mwifiex_private *priv, return -EBUSY; } + if (adapter->surprise_removed || adapter->is_cmd_timedout) { + dev_err(adapter->dev, + "Ignore scan. Card removed or firmware in bad state\n"); + return -EFAULT; + } + spin_lock_irqsave(&adapter->mwifiex_cmd_lock, flags); adapter->scan_processing = true; spin_unlock_irqrestore(&adapter->mwifiex_cmd_lock, flags);