mac80211: rt2x00: import and update pending patches
Imported from patchwork, patches marked with '=' have already been in our tree: [v3,1/4] cfg80211: add ratelimited variants of err and warn [v3,2/4] rt2x00: use ratelimited variants dev_warn/dev_err [v3,3/4] rt2x00: check number of EPROTO errors =[v3,4/4] rt2x00: do not print error when queue is full Signed-off-by: Daniel Golle <daniel@makrotopia.org>
This commit is contained in:
parent
74ef848b96
commit
36530ba72a
@ -0,0 +1,39 @@
|
|||||||
|
From patchwork Tue Mar 12 09:51:40 2019
|
||||||
|
Content-Type: text/plain; charset="utf-8"
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Transfer-Encoding: 7bit
|
||||||
|
X-Patchwork-Submitter: Stanislaw Gruszka <sgruszka@redhat.com>
|
||||||
|
X-Patchwork-Id: 10848957
|
||||||
|
X-Patchwork-Delegate: johannes@sipsolutions.net
|
||||||
|
From: Stanislaw Gruszka <sgruszka@redhat.com>
|
||||||
|
To: linux-wireless@vger.kernel.org
|
||||||
|
Cc: =?utf-8?q?Tomislav_Po=C5=BEega?= <pozega.tomislav@gmail.com>,
|
||||||
|
Daniel Golle <daniel@makrotopia.org>, Felix Fietkau <nbd@nbd.name>,
|
||||||
|
Mathias Kresin <dev@kresin.me>
|
||||||
|
Subject: [PATCH v3 1/4] cfg80211: add ratelimited variants of err and warn
|
||||||
|
Date: Tue, 12 Mar 2019 10:51:40 +0100
|
||||||
|
Message-Id: <1552384303-29529-2-git-send-email-sgruszka@redhat.com>
|
||||||
|
In-Reply-To: <1552384303-29529-1-git-send-email-sgruszka@redhat.com>
|
||||||
|
References: <1552384303-29529-1-git-send-email-sgruszka@redhat.com>
|
||||||
|
|
||||||
|
wiphy_{err,warn}_ratelimited will be used by rt2x00
|
||||||
|
|
||||||
|
Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
|
||||||
|
---
|
||||||
|
include/net/cfg80211.h | 5 +++++
|
||||||
|
1 file changed, 5 insertions(+)
|
||||||
|
|
||||||
|
--- a/include/net/cfg80211.h
|
||||||
|
+++ b/include/net/cfg80211.h
|
||||||
|
@@ -6588,6 +6588,11 @@ int cfg80211_external_auth_request(struc
|
||||||
|
#define wiphy_info(wiphy, format, args...) \
|
||||||
|
dev_info(&(wiphy)->dev, format, ##args)
|
||||||
|
|
||||||
|
+#define wiphy_err_ratelimited(wiphy, format, args...) \
|
||||||
|
+ dev_err_ratelimited(&(wiphy)->dev, format, ##args)
|
||||||
|
+#define wiphy_warn_ratelimited(wiphy, format, args...) \
|
||||||
|
+ dev_warn_ratelimited(&(wiphy)->dev, format, ##args)
|
||||||
|
+
|
||||||
|
#define wiphy_debug(wiphy, format, args...) \
|
||||||
|
wiphy_printk(KERN_DEBUG, wiphy, format, ##args)
|
||||||
|
|
@ -0,0 +1,42 @@
|
|||||||
|
From patchwork Tue Mar 12 09:51:41 2019
|
||||||
|
Content-Type: text/plain; charset="utf-8"
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Transfer-Encoding: 7bit
|
||||||
|
X-Patchwork-Submitter: Stanislaw Gruszka <sgruszka@redhat.com>
|
||||||
|
X-Patchwork-Id: 10848959
|
||||||
|
X-Patchwork-Delegate: kvalo@adurom.com
|
||||||
|
From: Stanislaw Gruszka <sgruszka@redhat.com>
|
||||||
|
To: linux-wireless@vger.kernel.org
|
||||||
|
Cc: =?utf-8?q?Tomislav_Po=C5=BEega?= <pozega.tomislav@gmail.com>,
|
||||||
|
Daniel Golle <daniel@makrotopia.org>, Felix Fietkau <nbd@nbd.name>,
|
||||||
|
Mathias Kresin <dev@kresin.me>
|
||||||
|
Subject: [PATCH v3 2/4] rt2x00: use ratelimited variants dev_warn/dev_err
|
||||||
|
Date: Tue, 12 Mar 2019 10:51:41 +0100
|
||||||
|
Message-Id: <1552384303-29529-3-git-send-email-sgruszka@redhat.com>
|
||||||
|
In-Reply-To: <1552384303-29529-1-git-send-email-sgruszka@redhat.com>
|
||||||
|
References: <1552384303-29529-1-git-send-email-sgruszka@redhat.com>
|
||||||
|
|
||||||
|
As reported by Randy we can overwhelm logs on some USB error conditions.
|
||||||
|
To avoid that use dev_warn_ratelimited() and dev_err_ratelimitd().
|
||||||
|
|
||||||
|
Reported-and-tested-by: Randy Oostdyk <linux-kernel@oostdyk.com>
|
||||||
|
Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
|
||||||
|
---
|
||||||
|
drivers/net/wireless/ralink/rt2x00/rt2x00.h | 4 ++--
|
||||||
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
--- a/drivers/net/wireless/ralink/rt2x00/rt2x00.h
|
||||||
|
+++ b/drivers/net/wireless/ralink/rt2x00/rt2x00.h
|
||||||
|
@@ -69,10 +69,10 @@
|
||||||
|
printk(KERN_ERR KBUILD_MODNAME ": %s: Error - " fmt, \
|
||||||
|
__func__, ##__VA_ARGS__)
|
||||||
|
#define rt2x00_err(dev, fmt, ...) \
|
||||||
|
- wiphy_err((dev)->hw->wiphy, "%s: Error - " fmt, \
|
||||||
|
+ wiphy_err_ratelimited((dev)->hw->wiphy, "%s: Error - " fmt, \
|
||||||
|
__func__, ##__VA_ARGS__)
|
||||||
|
#define rt2x00_warn(dev, fmt, ...) \
|
||||||
|
- wiphy_warn((dev)->hw->wiphy, "%s: Warning - " fmt, \
|
||||||
|
+ wiphy_warn_ratelimited((dev)->hw->wiphy, "%s: Warning - " fmt, \
|
||||||
|
__func__, ##__VA_ARGS__)
|
||||||
|
#define rt2x00_info(dev, fmt, ...) \
|
||||||
|
wiphy_info((dev)->hw->wiphy, "%s: Info - " fmt, \
|
@ -0,0 +1,96 @@
|
|||||||
|
From patchwork Tue Mar 12 09:51:42 2019
|
||||||
|
Content-Type: text/plain; charset="utf-8"
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Transfer-Encoding: 7bit
|
||||||
|
X-Patchwork-Submitter: Stanislaw Gruszka <sgruszka@redhat.com>
|
||||||
|
X-Patchwork-Id: 10848961
|
||||||
|
X-Patchwork-Delegate: kvalo@adurom.com
|
||||||
|
From: Stanislaw Gruszka <sgruszka@redhat.com>
|
||||||
|
To: linux-wireless@vger.kernel.org
|
||||||
|
Cc: =?utf-8?q?Tomislav_Po=C5=BEega?= <pozega.tomislav@gmail.com>,
|
||||||
|
Daniel Golle <daniel@makrotopia.org>, Felix Fietkau <nbd@nbd.name>,
|
||||||
|
Mathias Kresin <dev@kresin.me>
|
||||||
|
Subject: [PATCH v3 3/4] rt2x00: check number of EPROTO errors
|
||||||
|
Date: Tue, 12 Mar 2019 10:51:42 +0100
|
||||||
|
Message-Id: <1552384303-29529-4-git-send-email-sgruszka@redhat.com>
|
||||||
|
In-Reply-To: <1552384303-29529-1-git-send-email-sgruszka@redhat.com>
|
||||||
|
References: <1552384303-29529-1-git-send-email-sgruszka@redhat.com>
|
||||||
|
|
||||||
|
Some USB host devices/drivers on some conditions can always return
|
||||||
|
EPROTO error on submitted URBs. That can cause infinity loop in the
|
||||||
|
rt2x00 driver.
|
||||||
|
|
||||||
|
Since we can have single EPROTO errors we can not mark as device as
|
||||||
|
removed to avoid infinity loop. However we can count consecutive
|
||||||
|
EPROTO errors and mark device as removed if get lot of it.
|
||||||
|
I choose number 10 as threshold.
|
||||||
|
|
||||||
|
Reported-and-tested-by: Randy Oostdyk <linux-kernel@oostdyk.com>
|
||||||
|
Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
|
||||||
|
---
|
||||||
|
drivers/net/wireless/ralink/rt2x00/rt2x00.h | 1 +
|
||||||
|
drivers/net/wireless/ralink/rt2x00/rt2x00usb.c | 22 +++++++++++++++++++---
|
||||||
|
2 files changed, 20 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
--- a/drivers/net/wireless/ralink/rt2x00/rt2x00.h
|
||||||
|
+++ b/drivers/net/wireless/ralink/rt2x00/rt2x00.h
|
||||||
|
@@ -1017,6 +1017,7 @@ struct rt2x00_dev {
|
||||||
|
unsigned int extra_tx_headroom;
|
||||||
|
|
||||||
|
struct usb_anchor *anchor;
|
||||||
|
+ unsigned int num_proto_errs;
|
||||||
|
|
||||||
|
/* Clock for System On Chip devices. */
|
||||||
|
struct clk *clk;
|
||||||
|
--- a/drivers/net/wireless/ralink/rt2x00/rt2x00usb.c
|
||||||
|
+++ b/drivers/net/wireless/ralink/rt2x00/rt2x00usb.c
|
||||||
|
@@ -31,6 +31,22 @@
|
||||||
|
#include "rt2x00.h"
|
||||||
|
#include "rt2x00usb.h"
|
||||||
|
|
||||||
|
+static bool rt2x00usb_check_usb_error(struct rt2x00_dev *rt2x00dev, int status)
|
||||||
|
+{
|
||||||
|
+ if (status == -ENODEV || status == -ENOENT)
|
||||||
|
+ return true;
|
||||||
|
+
|
||||||
|
+ if (status == -EPROTO || status == -ETIMEDOUT)
|
||||||
|
+ rt2x00dev->num_proto_errs++;
|
||||||
|
+ else
|
||||||
|
+ rt2x00dev->num_proto_errs = 0;
|
||||||
|
+
|
||||||
|
+ if (rt2x00dev->num_proto_errs > 3)
|
||||||
|
+ return true;
|
||||||
|
+
|
||||||
|
+ return false;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
/*
|
||||||
|
* Interfacing with the HW.
|
||||||
|
*/
|
||||||
|
@@ -57,7 +73,7 @@ int rt2x00usb_vendor_request(struct rt2x
|
||||||
|
if (status >= 0)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
- if (status == -ENODEV || status == -ENOENT) {
|
||||||
|
+ if (rt2x00usb_check_usb_error(rt2x00dev, status)) {
|
||||||
|
/* Device has disappeared. */
|
||||||
|
clear_bit(DEVICE_STATE_PRESENT, &rt2x00dev->flags);
|
||||||
|
break;
|
||||||
|
@@ -321,7 +337,7 @@ static bool rt2x00usb_kick_tx_entry(stru
|
||||||
|
|
||||||
|
status = usb_submit_urb(entry_priv->urb, GFP_ATOMIC);
|
||||||
|
if (status) {
|
||||||
|
- if (status == -ENODEV || status == -ENOENT)
|
||||||
|
+ if (rt2x00usb_check_usb_error(rt2x00dev, status))
|
||||||
|
clear_bit(DEVICE_STATE_PRESENT, &rt2x00dev->flags);
|
||||||
|
set_bit(ENTRY_DATA_IO_FAILED, &entry->flags);
|
||||||
|
rt2x00lib_dmadone(entry);
|
||||||
|
@@ -410,7 +426,7 @@ static bool rt2x00usb_kick_rx_entry(stru
|
||||||
|
|
||||||
|
status = usb_submit_urb(entry_priv->urb, GFP_ATOMIC);
|
||||||
|
if (status) {
|
||||||
|
- if (status == -ENODEV || status == -ENOENT)
|
||||||
|
+ if (rt2x00usb_check_usb_error(rt2x00dev, status))
|
||||||
|
clear_bit(DEVICE_STATE_PRESENT, &rt2x00dev->flags);
|
||||||
|
set_bit(ENTRY_DATA_IO_FAILED, &entry->flags);
|
||||||
|
rt2x00lib_dmadone(entry);
|
@ -1,10 +1,20 @@
|
|||||||
From 1a8a8989b779e51e4652a30e9f22c36a1b6ffc4b Mon Sep 17 00:00:00 2001
|
From patchwork Tue Mar 12 09:51:43 2019
|
||||||
From: Stanislaw Gruszka <sgruszka@redhat.com>
|
Content-Type: text/plain; charset="utf-8"
|
||||||
Date: Thu, 20 Dec 2018 16:16:11 +0100
|
MIME-Version: 1.0
|
||||||
|
Content-Transfer-Encoding: 7bit
|
||||||
X-Patchwork-Submitter: Stanislaw Gruszka <sgruszka@redhat.com>
|
X-Patchwork-Submitter: Stanislaw Gruszka <sgruszka@redhat.com>
|
||||||
X-Patchwork-Id: 10739037
|
X-Patchwork-Id: 10848963
|
||||||
X-Patchwork-Delegate: kvalo@adurom.com
|
X-Patchwork-Delegate: kvalo@adurom.com
|
||||||
Subject: [PATCH 20/28] rt2x00: do not print error when queue is full
|
From: Stanislaw Gruszka <sgruszka@redhat.com>
|
||||||
|
To: linux-wireless@vger.kernel.org
|
||||||
|
Cc: =?utf-8?q?Tomislav_Po=C5=BEega?= <pozega.tomislav@gmail.com>,
|
||||||
|
Daniel Golle <daniel@makrotopia.org>, Felix Fietkau <nbd@nbd.name>,
|
||||||
|
Mathias Kresin <dev@kresin.me>
|
||||||
|
Subject: [PATCH v3 4/4] rt2x00: do not print error when queue is full
|
||||||
|
Date: Tue, 12 Mar 2019 10:51:43 +0100
|
||||||
|
Message-Id: <1552384303-29529-5-git-send-email-sgruszka@redhat.com>
|
||||||
|
In-Reply-To: <1552384303-29529-1-git-send-email-sgruszka@redhat.com>
|
||||||
|
References: <1552384303-29529-1-git-send-email-sgruszka@redhat.com>
|
||||||
|
|
||||||
For unknown reasons printk() on some context can cause CPU hung on
|
For unknown reasons printk() on some context can cause CPU hung on
|
||||||
embedded MT7620 AP/router MIPS platforms. What can result on wifi
|
embedded MT7620 AP/router MIPS platforms. What can result on wifi
|
Loading…
Reference in New Issue
Block a user