* [PATCH 1/1] rtl8xxxu: Implement 8192e specific power down sequence
From: Jes.Sorensen @ 2016-09-13 19:03 UTC (permalink / raw)
To: linux-wireless; +Cc: kvalo, Larry.Finger, Jes Sorensen
In-Reply-To: <1473793395-28927-1-git-send-email-Jes.Sorensen@redhat.com>
From: Jes Sorensen <Jes.Sorensen@redhat.com>
This powers down the 8192e correctly, or at least to the point where
the firmware will load again, when reloading the driver module.
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
---
.../net/wireless/realtek/rtl8xxxu/rtl8xxxu_8192e.c | 144 ++++++++++++++++++++-
.../net/wireless/realtek/rtl8xxxu/rtl8xxxu_regs.h | 1 +
2 files changed, 144 insertions(+), 1 deletion(-)
diff --git a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8192e.c b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8192e.c
index 841522e..df54d27 100644
--- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8192e.c
+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8192e.c
@@ -1396,6 +1396,114 @@ exit:
return ret;
}
+static int rtl8192eu_active_to_lps(struct rtl8xxxu_priv *priv)
+{
+ struct device *dev = &priv->udev->dev;
+ u8 val8;
+ u16 val16;
+ u32 val32;
+ int retry, retval;
+
+ rtl8xxxu_write8(priv, REG_TXPAUSE, 0xff);
+
+ retry = 100;
+ retval = -EBUSY;
+ /*
+ * Poll 32 bit wide 0x05f8 for 0x00000000 to ensure no TX is pending.
+ */
+ do {
+ val32 = rtl8xxxu_read32(priv, REG_SCH_TX_CMD);
+ if (!val32) {
+ retval = 0;
+ break;
+ }
+ } while (retry--);
+
+ if (!retry) {
+ dev_warn(dev, "Failed to flush TX queue\n");
+ retval = -EBUSY;
+ goto out;
+ }
+
+ /* Disable CCK and OFDM, clock gated */
+ val8 = rtl8xxxu_read8(priv, REG_SYS_FUNC);
+ val8 &= ~SYS_FUNC_BBRSTB;
+ rtl8xxxu_write8(priv, REG_SYS_FUNC, val8);
+
+ udelay(2);
+
+ /* Reset whole BB */
+ val8 = rtl8xxxu_read8(priv, REG_SYS_FUNC);
+ val8 &= ~SYS_FUNC_BB_GLB_RSTN;
+ rtl8xxxu_write8(priv, REG_SYS_FUNC, val8);
+
+ /* Reset MAC TRX */
+ val16 = rtl8xxxu_read16(priv, REG_CR);
+ val16 &= 0xff00;
+ val16 |= (CR_HCI_TXDMA_ENABLE | CR_HCI_RXDMA_ENABLE);
+ rtl8xxxu_write16(priv, REG_CR, val16);
+
+ val16 = rtl8xxxu_read16(priv, REG_CR);
+ val16 &= ~CR_SECURITY_ENABLE;
+ rtl8xxxu_write16(priv, REG_CR, val16);
+
+ val8 = rtl8xxxu_read8(priv, REG_DUAL_TSF_RST);
+ val8 |= DUAL_TSF_TX_OK;
+ rtl8xxxu_write8(priv, REG_DUAL_TSF_RST, val8);
+
+out:
+ return retval;
+}
+
+static int rtl8192eu_active_to_emu(struct rtl8xxxu_priv *priv)
+{
+ u8 val8;
+ int count, ret = 0;
+
+ /* Turn off RF */
+ rtl8xxxu_write8(priv, REG_RF_CTRL, 0);
+
+ /* Switch DPDT_SEL_P output from register 0x65[2] */
+ val8 = rtl8xxxu_read8(priv, REG_LEDCFG2);
+ val8 &= ~LEDCFG2_DPDT_SELECT;
+ rtl8xxxu_write8(priv, REG_LEDCFG2, val8);
+
+ /* 0x0005[1] = 1 turn off MAC by HW state machine*/
+ val8 = rtl8xxxu_read8(priv, REG_APS_FSMCO + 1);
+ val8 |= BIT(1);
+ rtl8xxxu_write8(priv, REG_APS_FSMCO + 1, val8);
+
+ for (count = RTL8XXXU_MAX_REG_POLL; count; count--) {
+ val8 = rtl8xxxu_read8(priv, REG_APS_FSMCO + 1);
+ if ((val8 & BIT(1)) == 0)
+ break;
+ udelay(10);
+ }
+
+ if (!count) {
+ dev_warn(&priv->udev->dev, "%s: Disabling MAC timed out\n",
+ __func__);
+ ret = -EBUSY;
+ goto exit;
+ }
+
+exit:
+ return ret;
+}
+
+static int rtl8192eu_emu_to_disabled(struct rtl8xxxu_priv *priv)
+{
+ u8 val8;
+
+ /* 0x04[12:11] = 01 enable WL suspend */
+ val8 = rtl8xxxu_read8(priv, REG_APS_FSMCO + 1);
+ val8 &= ~(BIT(3) | BIT(4));
+ val8 |= BIT(3);
+ rtl8xxxu_write8(priv, REG_APS_FSMCO + 1, val8);
+
+ return 0;
+}
+
static int rtl8192eu_power_on(struct rtl8xxxu_priv *priv)
{
u16 val16;
@@ -1446,6 +1554,40 @@ exit:
return ret;
}
+void rtl8192eu_power_off(struct rtl8xxxu_priv *priv)
+{
+ u8 val8;
+ u16 val16;
+
+ rtl8xxxu_flush_fifo(priv);
+
+ val8 = rtl8xxxu_read8(priv, REG_TX_REPORT_CTRL);
+ val8 &= ~TX_REPORT_CTRL_TIMER_ENABLE;
+ rtl8xxxu_write8(priv, REG_TX_REPORT_CTRL, val8);
+
+ /* Turn off RF */
+ rtl8xxxu_write8(priv, REG_RF_CTRL, 0x00);
+
+ rtl8192eu_active_to_lps(priv);
+
+ /* Reset Firmware if running in RAM */
+ if (rtl8xxxu_read8(priv, REG_MCU_FW_DL) & MCU_FW_RAM_SEL)
+ rtl8xxxu_firmware_self_reset(priv);
+
+ /* Reset MCU */
+ val16 = rtl8xxxu_read16(priv, REG_SYS_FUNC);
+ val16 &= ~SYS_FUNC_CPU_ENABLE;
+ rtl8xxxu_write16(priv, REG_SYS_FUNC, val16);
+
+ /* Reset MCU ready status */
+ rtl8xxxu_write8(priv, REG_MCU_FW_DL, 0x00);
+
+ rtl8xxxu_reset_8051(priv);
+
+ rtl8192eu_active_to_emu(priv);
+ rtl8192eu_emu_to_disabled(priv);
+}
+
static void rtl8192e_enable_rf(struct rtl8xxxu_priv *priv)
{
u32 val32;
@@ -1487,7 +1629,7 @@ struct rtl8xxxu_fileops rtl8192eu_fops = {
.parse_efuse = rtl8192eu_parse_efuse,
.load_firmware = rtl8192eu_load_firmware,
.power_on = rtl8192eu_power_on,
- .power_off = rtl8xxxu_power_off,
+ .power_off = rtl8192eu_power_off,
.reset_8051 = rtl8xxxu_reset_8051,
.llt_init = rtl8xxxu_auto_llt_table,
.init_phy_bb = rtl8192eu_init_phy_bb,
diff --git a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_regs.h b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_regs.h
index 3555a2f..315ccfb 100644
--- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_regs.h
+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_regs.h
@@ -676,6 +676,7 @@
#define REG_SCH_TXCMD 0x05d0
/* define REG_FW_TSF_SYNC_CNT 0x04a0 */
+#define REG_SCH_TX_CMD 0x05f8
#define REG_FW_RESET_TSF_CNT_1 0x05fc
#define REG_FW_RESET_TSF_CNT_0 0x05fd
#define REG_FW_BCN_DIS_CNT 0x05fe
--
2.7.4
^ permalink raw reply related
* [PATCH 0/1] Fix problem with rtl8192eu firmware reload
From: Jes.Sorensen @ 2016-09-13 19:03 UTC (permalink / raw)
To: linux-wireless; +Cc: kvalo, Larry.Finger, Jes Sorensen
From: Jes Sorensen <Jes.Sorensen@redhat.com>
Hi,
This one goes on top of my previous patches, albeit it probably
applies out of order.
It resolves the issue where firmware wouldn't load correctly if
reloading the driver module.
Cheers,
Jes
Jes Sorensen (1):
rtl8xxxu: Implment 8192e specific power down sequence
.../net/wireless/realtek/rtl8xxxu/rtl8xxxu_8192e.c | 144 ++++++++++++++++++++-
.../net/wireless/realtek/rtl8xxxu/rtl8xxxu_regs.h | 1 +
2 files changed, 144 insertions(+), 1 deletion(-)
--
2.7.4
^ permalink raw reply
* pull-request: mac80211 2016-09-13
From: Johannes Berg @ 2016-09-13 20:03 UTC (permalink / raw)
To: David Miller; +Cc: netdev, linux-wireless
Hi Dave,
We found a few more issues, I'm sending you small fixes here. The diffstat
would be even shorter, but one of Felix's patches has to move about 30 lines
of code, which makes it seem much bigger than it really is.
Let me know if there's any problem.
Thanks,
johannes
The following changes since commit 15543692a010192b4264ade0d45390e8bb3dc639:
Merge tag 'mac80211-for-davem-2016-08-30' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211 (2016-08-30 21:34:48 -0700)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211.git tags/mac80211-for-davem-2016-09-13
for you to fetch changes up to ad5987b47e96a0fb6d13fea250e936aed000093c:
nl80211: validate number of probe response CSA counters (2016-09-13 20:19:27 +0200)
----------------------------------------------------------------
A few more fixes:
* better mesh path fixing, from Thomas
* fix TIM IE recalculation after sending frames
to a sleeping station, from Felix
* fix sequence number assignment while sending
frames to a sleeping station, also from Felix
* validate number of probe response CSA counter
offsets, fixing a copy/paste bug (from myself)
----------------------------------------------------------------
Felix Fietkau (2):
mac80211: fix tim recalculation after PS response
mac80211: fix sequence number assignment for PS response frames
Johannes Berg (1):
nl80211: validate number of probe response CSA counters
Pedersen, Thomas (1):
mac80211: make mpath path fixing more robust
net/mac80211/mesh_hwmp.c | 3 ++-
net/mac80211/mesh_pathtbl.c | 2 +-
net/mac80211/sta_info.c | 4 +--
net/mac80211/tx.c | 65 +++++++++++++++++++++++----------------------
net/wireless/nl80211.c | 2 +-
5 files changed, 39 insertions(+), 37 deletions(-)
^ permalink raw reply
* [PATCH] ath10k: cache calibration data when the core is stopped.
From: Marty Faltesek @ 2016-09-13 21:11 UTC (permalink / raw)
To: ath10k; +Cc: linux-wireless
Caching calibration data allows it to be accessed when the
device is not active.
Signed-off-by: Marty Faltesek <mfaltesek@google.com>
---
drivers/net/wireless/ath/ath10k/core.c | 47 ++++++++++++++++++++++++++++++
drivers/net/wireless/ath/ath10k/core.h | 2 ++
drivers/net/wireless/ath/ath10k/debug.c | 51 +++++++++------------------------
drivers/net/wireless/ath/ath10k/debug.h | 1 +
drivers/net/wireless/ath/ath10k/mac.c | 1 +
5 files changed, 65 insertions(+), 37 deletions(-)
diff --git a/drivers/net/wireless/ath/ath10k/core.c b/drivers/net/wireless/ath/ath10k/core.c
index c0b9797..c99ad9e 100644
--- a/drivers/net/wireless/ath/ath10k/core.c
+++ b/drivers/net/wireless/ath/ath10k/core.c
@@ -1227,6 +1227,42 @@ success:
return 0;
}
+int
+ath10k_cal_data_alloc(struct ath10k *ar, void **buf)
+{
+ u32 hi_addr;
+ __le32 addr;
+ int ret;
+
+ vfree(*buf);
+ *buf = vmalloc(QCA988X_CAL_DATA_LEN);
+ if (!*buf) {
+ return -EAGAIN;
+ }
+
+ hi_addr = host_interest_item_address(HI_ITEM(hi_board_data));
+
+ ret = ath10k_hif_diag_read(ar, hi_addr, &addr, sizeof(addr));
+
+ if (ret) {
+ ath10k_warn(ar, "failed to read hi_board_data address: %d\n", ret);
+ } else {
+ ret = ath10k_hif_diag_read(ar, le32_to_cpu(addr), *buf,
+ QCA988X_CAL_DATA_LEN);
+ if (ret) {
+ ath10k_warn(ar, "failed to read calibration data: %d\n", ret);
+ }
+ }
+
+ if (ret) {
+ vfree(*buf);
+ *buf = NULL;
+ }
+
+ return ret;
+}
+
+
static int ath10k_download_cal_data(struct ath10k *ar)
{
int ret;
@@ -1714,6 +1750,12 @@ int ath10k_core_start(struct ath10k *ar, enum ath10k_firmware_mode mode)
INIT_LIST_HEAD(&ar->arvifs);
+ /*
+ * We are up now, so no need to cache calibration data.
+ */
+ vfree(ar->cal_data);
+ ar->cal_data = NULL;
+
return 0;
err_hif_stop:
@@ -1757,6 +1799,11 @@ void ath10k_core_stop(struct ath10k *ar)
lockdep_assert_held(&ar->conf_mutex);
ath10k_debug_stop(ar);
+ /*
+ * Cache caclibration data while stopped.
+ */
+ ath10k_cal_data_alloc(ar, &ar->cal_data);
+
/* try to suspend target */
if (ar->state != ATH10K_STATE_RESTARTING &&
ar->state != ATH10K_STATE_UTF)
diff --git a/drivers/net/wireless/ath/ath10k/core.h b/drivers/net/wireless/ath/ath10k/core.h
index 4d3f002..cce61c1 100644
--- a/drivers/net/wireless/ath/ath10k/core.h
+++ b/drivers/net/wireless/ath/ath10k/core.h
@@ -635,6 +635,8 @@ struct ath10k {
struct ath10k_htc htc;
struct ath10k_htt htt;
+ void *cal_data;
+
struct ath10k_hw_params {
u32 id;
u16 dev_id;
diff --git a/drivers/net/wireless/ath/ath10k/debug.c b/drivers/net/wireless/ath/ath10k/debug.c
index 8b01e3e..7de0eb4 100644
--- a/drivers/net/wireless/ath/ath10k/debug.c
+++ b/drivers/net/wireless/ath/ath10k/debug.c
@@ -1427,53 +1427,26 @@ static const struct file_operations fops_fw_dbglog = {
static int ath10k_debug_cal_data_open(struct inode *inode, struct file *file)
{
struct ath10k *ar = inode->i_private;
- void *buf;
- u32 hi_addr;
- __le32 addr;
int ret;
mutex_lock(&ar->conf_mutex);
if (ar->state != ATH10K_STATE_ON &&
- ar->state != ATH10K_STATE_UTF) {
- ret = -ENETDOWN;
- goto err;
- }
-
- buf = vmalloc(QCA988X_CAL_DATA_LEN);
- if (!buf) {
- ret = -ENOMEM;
- goto err;
+ ar->state != ATH10K_STATE_UTF && ! ar->cal_data) {
+ mutex_unlock(&ar->conf_mutex);
+ return (-ENETDOWN);
}
- hi_addr = host_interest_item_address(HI_ITEM(hi_board_data));
-
- ret = ath10k_hif_diag_read(ar, hi_addr, &addr, sizeof(addr));
- if (ret) {
- ath10k_warn(ar, "failed to read hi_board_data address: %d\n", ret);
- goto err_vfree;
- }
-
- ret = ath10k_hif_diag_read(ar, le32_to_cpu(addr), buf,
- QCA988X_CAL_DATA_LEN);
- if (ret) {
- ath10k_warn(ar, "failed to read calibration data: %d\n", ret);
- goto err_vfree;
+ if (ar->cal_data) {
+ file->private_data = ar->cal_data;
+ mutex_unlock(&ar->conf_mutex);
+ return 0;
}
- file->private_data = buf;
-
- mutex_unlock(&ar->conf_mutex);
-
- return 0;
-
-err_vfree:
- vfree(buf);
-
-err:
+ ret = ath10k_cal_data_alloc(ar, &file->private_data);
mutex_unlock(&ar->conf_mutex);
- return ret;
+ return (ret);
}
static ssize_t ath10k_debug_cal_data_read(struct file *file,
@@ -1489,7 +1462,11 @@ static ssize_t ath10k_debug_cal_data_read(struct file *file,
static int ath10k_debug_cal_data_release(struct inode *inode,
struct file *file)
{
- vfree(file->private_data);
+ struct ath10k *ar = inode->i_private;
+
+ /* Free if it's not the cached version */
+ if (ar->cal_data != file->private_data)
+ vfree(file->private_data);
return 0;
}
diff --git a/drivers/net/wireless/ath/ath10k/debug.h b/drivers/net/wireless/ath/ath10k/debug.h
index 3900934..1ae757c 100644
--- a/drivers/net/wireless/ath/ath10k/debug.h
+++ b/drivers/net/wireless/ath/ath10k/debug.h
@@ -59,6 +59,7 @@ enum ath10k_dbg_aggr_mode {
#define ATH10K_FW_STATS_BUF_SIZE (1024*1024)
extern unsigned int ath10k_debug_mask;
+extern int ath10k_cal_data_alloc(struct ath10k *ar, void **buf);
__printf(2, 3) void ath10k_info(struct ath10k *ar, const char *fmt, ...);
__printf(2, 3) void ath10k_err(struct ath10k *ar, const char *fmt, ...);
diff --git a/drivers/net/wireless/ath/ath10k/mac.c b/drivers/net/wireless/ath/ath10k/mac.c
index eb36859..88fb27f 100644
--- a/drivers/net/wireless/ath/ath10k/mac.c
+++ b/drivers/net/wireless/ath/ath10k/mac.c
@@ -6924,6 +6924,7 @@ struct ath10k *ath10k_mac_create(size_t priv_size)
void ath10k_mac_destroy(struct ath10k *ar)
{
+ vfree(ar->cal_data);
ieee80211_free_hw(ar->hw);
}
--
2.8.0.rc3.226.g39d4020
^ permalink raw reply related
* [PATCH 0/5] Fix wlcore config firwmare annoyances
From: Tony Lindgren @ 2016-09-13 21:50 UTC (permalink / raw)
To: Kalle Valo
Cc: Eyal Reizer, Guy Mishol, Maital Hahn, Maxim Altshul,
Shahar Patury, linux-wireless, linux-omap
Hi all,
Here are some patches to fix the firmware loading for wl12xx/wl18xx
when the same rootfs is used on multiple WLAN chip variants.
Regards,
Tony
Tony Lindgren (5):
wlcore: Prepare family to fix nvs file handling
wlcore: sdio: Populate config firmware data
wlcore: sdio: Populate config firmware data
wlcore: Fix config firmware loading issues
wlcore: wl18xx: Use chip specific configuration firmware
drivers/net/wireless/ti/wl18xx/main.c | 19 ++++----
drivers/net/wireless/ti/wlcore/boot.c | 15 ++++--
drivers/net/wireless/ti/wlcore/main.c | 34 +++++++++-----
drivers/net/wireless/ti/wlcore/sdio.c | 76 +++++++++++++++++++------------
drivers/net/wireless/ti/wlcore/spi.c | 48 +++++++++----------
drivers/net/wireless/ti/wlcore/wlcore_i.h | 12 ++---
6 files changed, 122 insertions(+), 82 deletions(-)
--
2.9.3
^ permalink raw reply
* [PATCH 1/5] wlcore: Prepare family to fix nvs file handling
From: Tony Lindgren @ 2016-09-13 21:50 UTC (permalink / raw)
To: Kalle Valo
Cc: Eyal Reizer, Guy Mishol, Maital Hahn, Maxim Altshul,
Shahar Patury, linux-wireless, linux-omap
In-Reply-To: <20160913215043.29454-1-tony@atomide.com>
Move struct wilink_family_data to be available for all TI WLAN
variants. And fix familiy typo, it should be just family.
Looks like wl12xx use two different nvs.bin files and wl18xx
uses a different conf.bin file.
Signed-off-by: Tony Lindgren <tony@atomide.com>
---
drivers/net/wireless/ti/wlcore/spi.c | 12 ++++--------
drivers/net/wireless/ti/wlcore/wlcore_i.h | 7 +++++++
2 files changed, 11 insertions(+), 8 deletions(-)
diff --git a/drivers/net/wireless/ti/wlcore/spi.c b/drivers/net/wireless/ti/wlcore/spi.c
index 0ed526e..a336493 100644
--- a/drivers/net/wireless/ti/wlcore/spi.c
+++ b/drivers/net/wireless/ti/wlcore/spi.c
@@ -80,17 +80,13 @@
((SPI_AGGR_BUFFER_SIZE / WSPI_MAX_CHUNK_SIZE) + 1)
-struct wilink_familiy_data {
- char name[8];
-};
-
-static const struct wilink_familiy_data *wilink_data;
+static const struct wilink_family_data *wilink_data;
-static const struct wilink_familiy_data wl18xx_data = {
+static const struct wilink_family_data wl18xx_data = {
.name = "wl18xx",
};
-static const struct wilink_familiy_data wl12xx_data = {
+static const struct wilink_family_data wl12xx_data = {
.name = "wl12xx",
};
@@ -461,7 +457,7 @@ static int wlcore_probe_of(struct spi_device *spi, struct wl12xx_spi_glue *glue,
return -ENODEV;
wilink_data = of_id->data;
- dev_info(&spi->dev, "selected chip familiy is %s\n",
+ dev_info(&spi->dev, "selected chip family is %s\n",
wilink_data->name);
if (of_find_property(dt_node, "clock-xtal", NULL))
diff --git a/drivers/net/wireless/ti/wlcore/wlcore_i.h b/drivers/net/wireless/ti/wlcore/wlcore_i.h
index 0277ae5..f68280d 100644
--- a/drivers/net/wireless/ti/wlcore/wlcore_i.h
+++ b/drivers/net/wireless/ti/wlcore/wlcore_i.h
@@ -42,6 +42,12 @@
*/
#define WL12XX_NVS_NAME "ti-connectivity/wl1271-nvs.bin"
+struct wilink_family_data {
+ const char *name;
+ const char *nvs_name; /* wl12xx nvs file */
+ const char *cfg_name; /* wl18xx cfg file */
+};
+
#define WL1271_TX_SECURITY_LO16(s) ((u16)((s) & 0xffff))
#define WL1271_TX_SECURITY_HI32(s) ((u32)(((s) >> 16) & 0xffffffff))
#define WL1271_TX_SQN_POST_RECOVERY_PADDING 0xff
@@ -208,6 +214,7 @@ struct wl1271_if_operations {
struct wlcore_platdev_data {
struct wl1271_if_operations *if_ops;
+ const struct wilink_family_data *family;
bool ref_clock_xtal; /* specify whether the clock is XTAL or not */
u32 ref_clock_freq; /* in Hertz */
--
2.9.3
^ permalink raw reply related
* [PATCH 2/5] wlcore: sdio: Populate config firmware data
From: Tony Lindgren @ 2016-09-13 21:50 UTC (permalink / raw)
To: Kalle Valo
Cc: Eyal Reizer, Guy Mishol, Maital Hahn, Maxim Altshul,
Shahar Patury, linux-wireless, linux-omap
In-Reply-To: <20160913215043.29454-1-tony@atomide.com>
Configure the config firmware names and make it available
in platform data.
Signed-off-by: Tony Lindgren <tony@atomide.com>
---
drivers/net/wireless/ti/wlcore/sdio.c | 76 ++++++++++++++++++++++-------------
1 file changed, 47 insertions(+), 29 deletions(-)
diff --git a/drivers/net/wireless/ti/wlcore/sdio.c b/drivers/net/wireless/ti/wlcore/sdio.c
index 5839acb..a6e94b1 100644
--- a/drivers/net/wireless/ti/wlcore/sdio.c
+++ b/drivers/net/wireless/ti/wlcore/sdio.c
@@ -216,17 +216,33 @@ static struct wl1271_if_operations sdio_ops = {
};
#ifdef CONFIG_OF
+
+static const struct wilink_family_data wl127x_data = {
+ .name = "wl127x",
+ .nvs_name = "ti-connectivity/wl127x-nvs.bin",
+};
+
+static const struct wilink_family_data wl128x_data = {
+ .name = "wl128x",
+ .nvs_name = "ti-connectivity/wl128x-nvs.bin",
+};
+
+static const struct wilink_family_data wl18xx_data = {
+ .name = "wl18xx",
+ .cfg_name = "ti-connectivity/wl18xx-conf.bin",
+};
+
static const struct of_device_id wlcore_sdio_of_match_table[] = {
- { .compatible = "ti,wl1271" },
- { .compatible = "ti,wl1273" },
- { .compatible = "ti,wl1281" },
- { .compatible = "ti,wl1283" },
- { .compatible = "ti,wl1801" },
- { .compatible = "ti,wl1805" },
- { .compatible = "ti,wl1807" },
- { .compatible = "ti,wl1831" },
- { .compatible = "ti,wl1835" },
- { .compatible = "ti,wl1837" },
+ { .compatible = "ti,wl1271", .data = &wl127x_data },
+ { .compatible = "ti,wl1273", .data = &wl127x_data },
+ { .compatible = "ti,wl1281", .data = &wl128x_data },
+ { .compatible = "ti,wl1283", .data = &wl128x_data },
+ { .compatible = "ti,wl1801", .data = &wl18xx_data },
+ { .compatible = "ti,wl1805", .data = &wl18xx_data },
+ { .compatible = "ti,wl1807", .data = &wl18xx_data },
+ { .compatible = "ti,wl1831", .data = &wl18xx_data },
+ { .compatible = "ti,wl1835", .data = &wl18xx_data },
+ { .compatible = "ti,wl1837", .data = &wl18xx_data },
{ }
};
@@ -234,9 +250,13 @@ static int wlcore_probe_of(struct device *dev, int *irq,
struct wlcore_platdev_data *pdev_data)
{
struct device_node *np = dev->of_node;
+ const struct of_device_id *of_id;
+
+ of_id = of_match_node(wlcore_sdio_of_match_table, np);
+ if (!of_id)
+ return -ENODEV;
- if (!np || !of_match_node(wlcore_sdio_of_match_table, np))
- return -ENODATA;
+ pdev_data->family = of_id->data;
*irq = irq_of_parse_and_map(np, 0);
if (!*irq) {
@@ -263,7 +283,7 @@ static int wlcore_probe_of(struct device *dev, int *irq,
static int wl1271_probe(struct sdio_func *func,
const struct sdio_device_id *id)
{
- struct wlcore_platdev_data pdev_data;
+ struct wlcore_platdev_data *pdev_data;
struct wl12xx_sdio_glue *glue;
struct resource res[1];
mmc_pm_flag_t mmcflags;
@@ -275,14 +295,15 @@ static int wl1271_probe(struct sdio_func *func,
if (func->num != 0x02)
return -ENODEV;
- memset(&pdev_data, 0x00, sizeof(pdev_data));
- pdev_data.if_ops = &sdio_ops;
+ pdev_data = devm_kzalloc(&func->dev, sizeof(*pdev_data), GFP_KERNEL);
+ if (!pdev_data)
+ return -ENOMEM;
- glue = kzalloc(sizeof(*glue), GFP_KERNEL);
- if (!glue) {
- dev_err(&func->dev, "can't allocate glue\n");
- goto out;
- }
+ pdev_data->if_ops = &sdio_ops;
+
+ glue = devm_kzalloc(&func->dev, sizeof(*glue), GFP_KERNEL);
+ if (!glue)
+ return -ENOMEM;
glue->dev = &func->dev;
@@ -292,16 +313,16 @@ static int wl1271_probe(struct sdio_func *func,
/* Use block mode for transferring over one block size of data */
func->card->quirks |= MMC_QUIRK_BLKSZ_FOR_BYTE_MODE;
- ret = wlcore_probe_of(&func->dev, &irq, &pdev_data);
+ ret = wlcore_probe_of(&func->dev, &irq, pdev_data);
if (ret)
- goto out_free_glue;
+ goto out;
/* if sdio can keep power while host is suspended, enable wow */
mmcflags = sdio_get_host_pm_caps(func);
dev_dbg(glue->dev, "sdio PM caps = 0x%x\n", mmcflags);
if (mmcflags & MMC_PM_KEEP_POWER)
- pdev_data.pwr_in_suspend = true;
+ pdev_data->pwr_in_suspend = true;
sdio_set_drvdata(func, glue);
@@ -323,7 +344,7 @@ static int wl1271_probe(struct sdio_func *func,
if (!glue->core) {
dev_err(glue->dev, "can't allocate platform_device");
ret = -ENOMEM;
- goto out_free_glue;
+ goto out;
}
glue->core->dev.parent = &func->dev;
@@ -341,8 +362,8 @@ static int wl1271_probe(struct sdio_func *func,
goto out_dev_put;
}
- ret = platform_device_add_data(glue->core, &pdev_data,
- sizeof(pdev_data));
+ ret = platform_device_add_data(glue->core, pdev_data,
+ sizeof(*pdev_data));
if (ret) {
dev_err(glue->dev, "can't add platform data\n");
goto out_dev_put;
@@ -358,9 +379,6 @@ static int wl1271_probe(struct sdio_func *func,
out_dev_put:
platform_device_put(glue->core);
-out_free_glue:
- kfree(glue);
-
out:
return ret;
}
--
2.9.3
^ permalink raw reply related
* [PATCH 3/5] wlcore: sdio: Populate config firmware data
From: Tony Lindgren @ 2016-09-13 21:50 UTC (permalink / raw)
To: Kalle Valo
Cc: Eyal Reizer, Guy Mishol, Maital Hahn, Maxim Altshul,
Shahar Patury, linux-wireless, linux-omap
In-Reply-To: <20160913215043.29454-1-tony@atomide.com>
Configure the config firmware names and make it available
in platform data.
Let's also fix the order of the struct wilink_family_data
while at it.
Signed-off-by: Tony Lindgren <tony@atomide.com>
---
drivers/net/wireless/ti/wlcore/spi.c | 42 ++++++++++++++++++++----------------
1 file changed, 24 insertions(+), 18 deletions(-)
diff --git a/drivers/net/wireless/ti/wlcore/spi.c b/drivers/net/wireless/ti/wlcore/spi.c
index a336493..f949ad2b 100644
--- a/drivers/net/wireless/ti/wlcore/spi.c
+++ b/drivers/net/wireless/ti/wlcore/spi.c
@@ -79,15 +79,19 @@
#define WSPI_MAX_NUM_OF_CHUNKS \
((SPI_AGGR_BUFFER_SIZE / WSPI_MAX_CHUNK_SIZE) + 1)
+static const struct wilink_family_data wl127x_data = {
+ .name = "wl127x",
+ .nvs_name = "ti-connectivity/wl127x-nvs.bin",
+};
-static const struct wilink_family_data *wilink_data;
+static const struct wilink_family_data wl128x_data = {
+ .name = "wl128x",
+ .nvs_name = "ti-connectivity/wl128x-nvs.bin",
+};
static const struct wilink_family_data wl18xx_data = {
.name = "wl18xx",
-};
-
-static const struct wilink_family_data wl12xx_data = {
- .name = "wl12xx",
+ .cfg_name = "ti-connectivity/wl18xx-conf.bin",
};
struct wl12xx_spi_glue {
@@ -425,10 +429,10 @@ static struct wl1271_if_operations spi_ops = {
};
static const struct of_device_id wlcore_spi_of_match_table[] = {
- { .compatible = "ti,wl1271", .data = &wl12xx_data},
- { .compatible = "ti,wl1273", .data = &wl12xx_data},
- { .compatible = "ti,wl1281", .data = &wl12xx_data},
- { .compatible = "ti,wl1283", .data = &wl12xx_data},
+ { .compatible = "ti,wl1271", .data = &wl127x_data},
+ { .compatible = "ti,wl1273", .data = &wl127x_data},
+ { .compatible = "ti,wl1281", .data = &wl128x_data},
+ { .compatible = "ti,wl1283", .data = &wl128x_data},
{ .compatible = "ti,wl1801", .data = &wl18xx_data},
{ .compatible = "ti,wl1805", .data = &wl18xx_data},
{ .compatible = "ti,wl1807", .data = &wl18xx_data},
@@ -456,9 +460,9 @@ static int wlcore_probe_of(struct spi_device *spi, struct wl12xx_spi_glue *glue,
if (!of_id)
return -ENODEV;
- wilink_data = of_id->data;
+ pdev_data->family = of_id->data;
dev_info(&spi->dev, "selected chip family is %s\n",
- wilink_data->name);
+ pdev_data->family->name);
if (of_find_property(dt_node, "clock-xtal", NULL))
pdev_data->ref_clock_xtal = true;
@@ -475,13 +479,15 @@ static int wlcore_probe_of(struct spi_device *spi, struct wl12xx_spi_glue *glue,
static int wl1271_probe(struct spi_device *spi)
{
struct wl12xx_spi_glue *glue;
- struct wlcore_platdev_data pdev_data;
+ struct wlcore_platdev_data *pdev_data;
struct resource res[1];
int ret;
- memset(&pdev_data, 0x00, sizeof(pdev_data));
+ pdev_data = devm_kzalloc(&spi->dev, sizeof(*pdev_data), GFP_KERNEL);
+ if (!pdev_data)
+ return -ENOMEM;
- pdev_data.if_ops = &spi_ops;
+ pdev_data->if_ops = &spi_ops;
glue = devm_kzalloc(&spi->dev, sizeof(*glue), GFP_KERNEL);
if (!glue) {
@@ -505,7 +511,7 @@ static int wl1271_probe(struct spi_device *spi)
return PTR_ERR(glue->reg);
}
- ret = wlcore_probe_of(spi, glue, &pdev_data);
+ ret = wlcore_probe_of(spi, glue, pdev_data);
if (ret) {
dev_err(glue->dev,
"can't get device tree parameters (%d)\n", ret);
@@ -518,7 +524,7 @@ static int wl1271_probe(struct spi_device *spi)
return ret;
}
- glue->core = platform_device_alloc(wilink_data->name,
+ glue->core = platform_device_alloc(pdev_data->family->name,
PLATFORM_DEVID_AUTO);
if (!glue->core) {
dev_err(glue->dev, "can't allocate platform_device\n");
@@ -539,8 +545,8 @@ static int wl1271_probe(struct spi_device *spi)
goto out_dev_put;
}
- ret = platform_device_add_data(glue->core, &pdev_data,
- sizeof(pdev_data));
+ ret = platform_device_add_data(glue->core, pdev_data,
+ sizeof(*pdev_data));
if (ret) {
dev_err(glue->dev, "can't add platform data\n");
goto out_dev_put;
--
2.9.3
^ permalink raw reply related
* [PATCH 4/5] wlcore: Fix config firmware loading issues
From: Tony Lindgren @ 2016-09-13 21:50 UTC (permalink / raw)
To: Kalle Valo
Cc: Eyal Reizer, Guy Mishol, Maital Hahn, Maxim Altshul,
Shahar Patury, linux-wireless, linux-omap
In-Reply-To: <20160913215043.29454-1-tony@atomide.com>
Booting multiple wl12xx and wl18xx devices using the same rootfs is
a pain. You currently have to symlink the right nvs file depending
on the wl12xx type.
For example, with wl1271-nvs.bin being a symlink to wl127x-nvs.bin
by default and trying to bring up a wl128x based device:
wlcore: ERROR nvs size is not as expected: 1113 != 912
wlcore: ERROR NVS file is needed during boot
wlcore: ERROR NVS file is needed during boot
wlcore: ERROR firmware boot failed despite 3 retries
Note that wl18xx uses a separate config firmware wl18xx-conf.bin
that can be generated with tools using the following two git repos:
git.ti.com/wilink8-wlan/18xx-ti-utils
git.ti.com/wilink8-wlan/wl18xx_fw
So let's not configure the nvs file for wl18xx as it's not needed
AFAIK. If it turns out that we also need the nvs file for wl18xx,
we can just add it to the config firmware data for wl18xx.
Let's fix the issue by using the chip specific config firmware
data, and make sure we produce understandable warnings if something
is missing.
Signed-off-by: Tony Lindgren <tony@atomide.com>
---
drivers/net/wireless/ti/wlcore/boot.c | 15 ++++++++++----
drivers/net/wireless/ti/wlcore/main.c | 34 +++++++++++++++++++++----------
drivers/net/wireless/ti/wlcore/wlcore_i.h | 7 -------
3 files changed, 34 insertions(+), 22 deletions(-)
diff --git a/drivers/net/wireless/ti/wlcore/boot.c b/drivers/net/wireless/ti/wlcore/boot.c
index f75d304..f00509e 100644
--- a/drivers/net/wireless/ti/wlcore/boot.c
+++ b/drivers/net/wireless/ti/wlcore/boot.c
@@ -282,6 +282,9 @@ EXPORT_SYMBOL_GPL(wlcore_boot_upload_firmware);
int wlcore_boot_upload_nvs(struct wl1271 *wl)
{
+ struct platform_device *pdev = wl->pdev;
+ struct wlcore_platdev_data *pdev_data = dev_get_platdata(&pdev->dev);
+ const char *nvs_name = "unknown";
size_t nvs_len, burst_len;
int i;
u32 dest_addr, val;
@@ -293,6 +296,9 @@ int wlcore_boot_upload_nvs(struct wl1271 *wl)
return -ENODEV;
}
+ if (pdev_data && pdev_data->family)
+ nvs_name = pdev_data->family->nvs_name;
+
if (wl->quirks & WLCORE_QUIRK_LEGACY_NVS) {
struct wl1271_nvs_file *nvs =
(struct wl1271_nvs_file *)wl->nvs;
@@ -310,8 +316,9 @@ int wlcore_boot_upload_nvs(struct wl1271 *wl)
if (wl->nvs_len != sizeof(struct wl1271_nvs_file) &&
(wl->nvs_len != WL1271_INI_LEGACY_NVS_FILE_SIZE ||
wl->enable_11a)) {
- wl1271_error("nvs size is not as expected: %zu != %zu",
- wl->nvs_len, sizeof(struct wl1271_nvs_file));
+ wl1271_error("%s size is not as expected: %zu != %zu",
+ nvs_name, wl->nvs_len,
+ sizeof(struct wl1271_nvs_file));
kfree(wl->nvs);
wl->nvs = NULL;
wl->nvs_len = 0;
@@ -328,8 +335,8 @@ int wlcore_boot_upload_nvs(struct wl1271 *wl)
if (nvs->general_params.dual_mode_select)
wl->enable_11a = true;
} else {
- wl1271_error("nvs size is not as expected: %zu != %zu",
- wl->nvs_len,
+ wl1271_error("%s size is not as expected: %zu != %zu",
+ nvs_name, wl->nvs_len,
sizeof(struct wl128x_nvs_file));
kfree(wl->nvs);
wl->nvs = NULL;
diff --git a/drivers/net/wireless/ti/wlcore/main.c b/drivers/net/wireless/ti/wlcore/main.c
index ef6c15b..7f26299 100644
--- a/drivers/net/wireless/ti/wlcore/main.c
+++ b/drivers/net/wireless/ti/wlcore/main.c
@@ -6413,9 +6413,12 @@ static void wlcore_nvs_cb(const struct firmware *fw, void *context)
goto out;
}
wl->nvs_len = fw->size;
- } else {
+ } else if (pdev_data->family->nvs_name) {
wl1271_debug(DEBUG_BOOT, "Could not get nvs file %s",
- WL12XX_NVS_NAME);
+ pdev_data->family->nvs_name);
+ wl->nvs = NULL;
+ wl->nvs_len = 0;
+ } else {
wl->nvs = NULL;
wl->nvs_len = 0;
}
@@ -6510,21 +6513,29 @@ static void wlcore_nvs_cb(const struct firmware *fw, void *context)
int wlcore_probe(struct wl1271 *wl, struct platform_device *pdev)
{
+ struct wlcore_platdev_data *pdev_data = dev_get_platdata(&pdev->dev);
+ const char *nvs_name;
int ret;
- if (!wl->ops || !wl->ptable)
+ if (!wl->ops || !wl->ptable || !pdev_data)
return -EINVAL;
wl->dev = &pdev->dev;
wl->pdev = pdev;
platform_set_drvdata(pdev, wl);
- ret = request_firmware_nowait(THIS_MODULE, FW_ACTION_HOTPLUG,
- WL12XX_NVS_NAME, &pdev->dev, GFP_KERNEL,
- wl, wlcore_nvs_cb);
- if (ret < 0) {
- wl1271_error("request_firmware_nowait failed: %d", ret);
- complete_all(&wl->nvs_loading_complete);
+ if (pdev_data->family && pdev_data->family->nvs_name) {
+ nvs_name = pdev_data->family->nvs_name;
+ ret = request_firmware_nowait(THIS_MODULE, FW_ACTION_HOTPLUG,
+ nvs_name, &pdev->dev, GFP_KERNEL,
+ wl, wlcore_nvs_cb);
+ if (ret < 0) {
+ wl1271_error("request_firmware_nowait failed for %s: %d",
+ nvs_name, ret);
+ complete_all(&wl->nvs_loading_complete);
+ }
+ } else {
+ wlcore_nvs_cb(NULL, wl);
}
return ret;
@@ -6533,9 +6544,11 @@ EXPORT_SYMBOL_GPL(wlcore_probe);
int wlcore_remove(struct platform_device *pdev)
{
+ struct wlcore_platdev_data *pdev_data = dev_get_platdata(&pdev->dev);
struct wl1271 *wl = platform_get_drvdata(pdev);
- wait_for_completion(&wl->nvs_loading_complete);
+ if (pdev_data->family && pdev_data->family->nvs_name)
+ wait_for_completion(&wl->nvs_loading_complete);
if (!wl->initialized)
return 0;
@@ -6572,4 +6585,3 @@ MODULE_PARM_DESC(no_recovery, "Prevent HW recovery. FW will remain stuck.");
MODULE_LICENSE("GPL");
MODULE_AUTHOR("Luciano Coelho <coelho@ti.com>");
MODULE_AUTHOR("Juuso Oikarinen <juuso.oikarinen@nokia.com>");
-MODULE_FIRMWARE(WL12XX_NVS_NAME);
diff --git a/drivers/net/wireless/ti/wlcore/wlcore_i.h b/drivers/net/wireless/ti/wlcore/wlcore_i.h
index f68280d..e840985 100644
--- a/drivers/net/wireless/ti/wlcore/wlcore_i.h
+++ b/drivers/net/wireless/ti/wlcore/wlcore_i.h
@@ -35,13 +35,6 @@
#include "conf.h"
#include "ini.h"
-/*
- * wl127x and wl128x are using the same NVS file name. However, the
- * ini parameters between them are different. The driver validates
- * the correct NVS size in wl1271_boot_upload_nvs().
- */
-#define WL12XX_NVS_NAME "ti-connectivity/wl1271-nvs.bin"
-
struct wilink_family_data {
const char *name;
const char *nvs_name; /* wl12xx nvs file */
--
2.9.3
^ permalink raw reply related
* [PATCH 5/5] wlcore: wl18xx: Use chip specific configuration firmware
From: Tony Lindgren @ 2016-09-13 21:50 UTC (permalink / raw)
To: Kalle Valo
Cc: Eyal Reizer, Guy Mishol, Maital Hahn, Maxim Altshul,
Shahar Patury, linux-wireless, linux-omap
In-Reply-To: <20160913215043.29454-1-tony@atomide.com>
Use the wl18xx specific config firmware we now have available.
Signed-off-by: Tony Lindgren <tony@atomide.com>
---
drivers/net/wireless/ti/wl18xx/main.c | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/drivers/net/wireless/ti/wl18xx/main.c b/drivers/net/wireless/ti/wl18xx/main.c
index 00a04df..06d6943 100644
--- a/drivers/net/wireless/ti/wl18xx/main.c
+++ b/drivers/net/wireless/ti/wl18xx/main.c
@@ -1397,25 +1397,24 @@ static int wl18xx_get_pg_ver(struct wl1271 *wl, s8 *ver)
return ret;
}
-#define WL18XX_CONF_FILE_NAME "ti-connectivity/wl18xx-conf.bin"
-
static int wl18xx_load_conf_file(struct device *dev, struct wlcore_conf *conf,
- struct wl18xx_priv_conf *priv_conf)
+ struct wl18xx_priv_conf *priv_conf,
+ const char *file)
{
struct wlcore_conf_file *conf_file;
const struct firmware *fw;
int ret;
- ret = request_firmware(&fw, WL18XX_CONF_FILE_NAME, dev);
+ ret = request_firmware(&fw, file, dev);
if (ret < 0) {
wl1271_error("could not get configuration binary %s: %d",
- WL18XX_CONF_FILE_NAME, ret);
+ file, ret);
return ret;
}
if (fw->size != WL18XX_CONF_SIZE) {
- wl1271_error("configuration binary file size is wrong, expected %zu got %zu",
- WL18XX_CONF_SIZE, fw->size);
+ wl1271_error("%s configuration binary size is wrong, expected %zu got %zu",
+ file, WL18XX_CONF_SIZE, fw->size);
ret = -EINVAL;
goto out_release;
}
@@ -1448,9 +1447,12 @@ static int wl18xx_load_conf_file(struct device *dev, struct wlcore_conf *conf,
static int wl18xx_conf_init(struct wl1271 *wl, struct device *dev)
{
+ struct platform_device *pdev = wl->pdev;
+ struct wlcore_platdev_data *pdata = dev_get_platdata(&pdev->dev);
struct wl18xx_priv *priv = wl->priv;
- if (wl18xx_load_conf_file(dev, &wl->conf, &priv->conf) < 0) {
+ if (wl18xx_load_conf_file(dev, &wl->conf, &priv->conf,
+ pdata->family->cfg_name) < 0) {
wl1271_warning("falling back to default config");
/* apply driver default configuration */
@@ -2141,4 +2143,3 @@ MODULE_PARM_DESC(num_rx_desc_param,
MODULE_LICENSE("GPL v2");
MODULE_AUTHOR("Luciano Coelho <coelho@ti.com>");
MODULE_FIRMWARE(WL18XX_FW_NAME);
-MODULE_FIRMWARE(WL18XX_CONF_FILE_NAME);
--
2.9.3
^ permalink raw reply related
* AMPDU stalls with brcmfmac4366b-pcie.bin triggering WARNINGs
From: Rafał Miłecki @ 2016-09-14 5:45 UTC (permalink / raw)
To: Hante Meuleman, Arend van Spriel, brcm80211-dev-list
Cc: linux-wireless, Rafał Miłecki
Hi,
Even with the most recent brcmfmac code ppl keep seeing WARNINGs from
brcmf_netdev_wait_pend8021x [0].
Hante suggested using CONSOLE for debugging some firmware crash so I
decided to see I it could also help understanding WARNINGs. I believe it
did.
First of all, I can't reproduce these problems reliably. One evening I
got WARNINGs one by one and I could work on my debugging patch easily.
Yesterday when I got my patch complete, it took me 10+ hours to get a
single WARNING.
Anyway, it seems to me that sometimes AMPDU stalls in the firmware. It
seems firmware has some AMPDU watchdog that notices the problem and
kicks in. It prints some debugging info and starts cleaning up process.
If brcmf_netdev_wait_pend8021x gets called shortly after that (I set
wpa_group_rekey=30 in hostapd to get brcmf_cfg80211_add_key called more
often) it results in a WARNING.
For better debugging I wrote brcmfmac patch that:
1) Keeps track of every 802.1x skb submitted to the device
2) During WARNING it prints skbs and marks them as timedout
3) It informs when timedout skb gets finally reported as sent
Enough talking, please take a look at my debugging log. Does it give you
enough hint? Could you review/debug firmware's code responsible for
AMPDU? FWIW Merlin users (so no brcmfmac invovled) also saw this [1].
[ 913.569121] brcmfmac: [brcmf_cfg80211_add_key -> __send_key_to_dongle] ifp:c7369480 brcmf_ifname(ifp):wlan1
[ 913.579521] brcmfmac: [brcmf_cfg80211_add_key -> __send_key_to_dongle] ifp:c70cd480 brcmf_ifname(ifp):wlan0
[ 913.627346] brcmfmac: [brcmf_cfg80211_add_key -> __send_key_to_dongle] ifp:c71a1480 brcmf_ifname(ifp):wlan1-1
[ 913.839833] brcmfmac: [brcmf_cfg80211_add_key -> __send_key_to_dongle] ifp:c6464c80 brcmf_ifname(ifp):wlan0-1
[ 914.179775] brcmfmac: [brcmf_cfg80211_add_key -> __send_key_to_dongle] ifp:c64cac80 brcmf_ifname(ifp):wlan0-2
[ 914.191129] brcmfmac: CONSOLE: 027644.261 wl0.3: wlc_send_bar: seq 0x3 tid 0
[ 914.198474] brcmfmac: CONSOLE: 027644.266 wl0.3: wlc_send_bar: seq 0x3 tid 0
[ 914.206020] brcmfmac: CONSOLE: 027644.273 wl0.3: wlc_send_bar: seq 0x3 tid 0
[ 914.215243] brcmfmac: CONSOLE: 027644.284 wl0.3: wlc_send_bar: seq 0x3 tid 0
[ 914.224521] brcmfmac: CONSOLE: 027644.294 wl0.3: wlc_send_bar: seq 0x3 tid 0
[ 914.231878] brcmfmac: CONSOLE: 027644.298 wl0.3: wlc_send_bar: seq 0x3 tid 0
[ 914.239425] brcmfmac: CONSOLE: 027644.307 wl0.3: wlc_send_bar: seq 0x3 tid 0
[ 914.248444] brcmfmac: CONSOLE: 027644.318 wl0.3: wlc_send_bar: seq 0x3 tid 0
[ 914.257163] brcmfmac: CONSOLE: 027644.326 wl0.3: wlc_send_bar: seq 0x3 tid 0
[ 914.266616] brcmfmac: CONSOLE: 027644.336 wl0.3: wlc_send_bar: seq 0x3 tid 0
[ 914.274072] brcmfmac: CONSOLE: 027644.341 wl0.3: wlc_send_bar: seq 0x3 tid 0
[ 914.284716] brcmfmac: CONSOLE: 027644.354 wl0.3: wlc_send_bar: seq 0x3 tid 0
[ 914.291962] brcmfmac: CONSOLE: 027644.359 wl0.3: wlc_send_bar: seq 0x3 tid 0
[ 914.299172] brcmfmac: CONSOLE: 027644.364 wl0.3: wlc_send_bar: seq 0x3 tid 0
[ 914.306646] brcmfmac: CONSOLE: 027644.371 wl0.3: wlc_send_bar: seq 0x3 tid 0
[ 914.314058] brcmfmac: CONSOLE: 027644.380 wl0.3: wlc_send_bar: seq 0x3 tid 0
[ 914.323193] brcmfmac: CONSOLE: 027644.393 wl0.3: wlc_send_bar: seq 0x3 tid 0
[ 914.330640] brcmfmac: CONSOLE: 027644.400 wl0.3: wlc_send_bar: seq 0x3 tid 0
[ 914.340886] brcmfmac: CONSOLE: 027644.410 wl0.3: wlc_send_bar: seq 0x3 tid 0
[ 914.352975] brcmfmac: CONSOLE: 027644.422 wl0.3: wlc_send_bar: seq 0x3 tid 0
[ 914.365365] brcmfmac: CONSOLE: 027644.434 wl0.3: wlc_send_bar: seq 0x3 tid 0
[ 914.372790] brcmfmac: CONSOLE: 027644.440 wl0.3: wlc_send_bar: seq 0x3 tid 0
[ 914.384982] brcmfmac: CONSOLE: 027644.454 wl0.3: wlc_send_bar: seq 0x3 tid 0
[ 914.395488] brcmfmac: CONSOLE: 027644.465 wl0.3: wlc_send_bar: seq 0x3 tid 0
[ 914.402977] brcmfmac: CONSOLE: 027644.471 wl0.3: wlc_send_bar: seq 0x3 tid 0
[ 914.701404] brcmfmac: CONSOLE: 027644.771 wl0.3: wlc_send_bar: seq 0x4 tid 0
[ 914.710513] brcmfmac: CONSOLE: 027644.780 wl0.3: wlc_send_bar: seq 0x4 tid 0
[ 914.717731] brcmfmac: CONSOLE: 027644.787 wl0.3: wlc_send_bar: seq 0x4 tid 0
[ 914.728099] brcmfmac: CONSOLE: 027644.798 wl0.3: wlc_send_bar: seq 0x4 tid 0
[ 914.737616] brcmfmac: CONSOLE: 027644.807 wl0.3: wlc_send_bar: seq 0x4 tid 0
[ 914.745320] brcmfmac: CONSOLE: 027644.815 wl0.3: wlc_send_bar: seq 0x4 tid 0
[ 914.757985] brcmfmac: CONSOLE: 027644.827 wl0.3: wlc_send_bar: seq 0x4 tid 0
[ 914.765457] brcmfmac: CONSOLE: 027644.833 wl0.3: wlc_send_bar: seq 0x4 tid 0
[ 914.772729] brcmfmac: CONSOLE: 027644.841 wl0.3: wlc_send_bar: seq 0x4 tid 0
[ 914.781407] brcmfmac: CONSOLE: 027644.851 wl0.3: wlc_send_bar: seq 0x4 tid 0
[ 914.789268] brcmfmac: CONSOLE: 027644.859 wl0.3: wlc_send_bar: seq 0x4 tid 0
[ 914.796754] brcmfmac: CONSOLE: 027644.866 wl0.3: wlc_send_bar: seq 0x4 tid 0
[ 914.808174] brcmfmac: CONSOLE: 027644.878 wl0.3: wlc_send_bar: seq 0x4 tid 0
[ 914.818975] brcmfmac: CONSOLE: 027644.888 wl0.3: wlc_send_bar: seq 0x4 tid 0
[ 917.077991] brcmfmac: CONSOLE: 027647.149 ampdu_dbg: wl0.3 scb:00347c74 tid:0
[ 917.085368] brcmfmac: CONSOLE: 027647.149 ampdu_dbg: wl0.3 dead_cnt 2 tx_in_transit 1 psm_mux 0xfff0 aqmqmap 0x0x101 aqmfifo_status 0x0x4000 fifordy 0x0 cpbusy 0x0
[ 917.100070] brcmfmac: CONSOLE: 027647.149 ampdu_dbg: ifsstat 0xaf nav_stat 0x0 txop 30788
[ 917.108303] brcmfmac: CONSOLE: 027647.149 ampdu_dbg: pktpend: 0 2 0 0 0 ap 1
[ 917.115434] brcmfmac: CONSOLE: 027647.149 ampdu_dbg: txall 5901 txbcn 0 txrts 0 rxcts 0 rsptmout 0 rxstrt 0
[ 917.125265] brcmfmac: CONSOLE: 027647.149 ampdu_dbg: cwcur0-3 f f 7 3 bslots cur/0-3 9 0 9 0 0 ifs_boff 0
[ 917.134907] brcmfmac: CONSOLE: 027647.149 ampdu_dbg: again1 ifsstat 0xaf nav_stat 0x0
[ 917.142806] brcmfmac: CONSOLE: 027647.149 ampdu_dbg: again2 ifsstat 0xaf nav_stat 0x0
[ 917.150739] brcmfmac: CONSOLE: 027647.149 wl0: wlc_ampdu_watchdog: cleaning up ini tid 0 due to no progress for 2 secs tx_in_transit 1
[ 917.162912] brcmfmac: CONSOLE: 027647.149 wl0: wlc_ampdu_tx_send_delba: tid 0 initiator 1 reason 39
[ 917.718723] brcmfmac: [brcmf_cfg80211_add_key -> __send_key_to_dongle] ifp:c6518c80 brcmf_ifname(ifp):wlan1-2
[ 918.678558] ------------[ cut here ]------------
[ 918.683329] WARNING: CPU: 1 PID: 1145 at compat-wireless-2016-06-20/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c:1219 brcmf_netdev_wait_pend8021x+0xbc/0x184 [brcmfmac]()
[ 918.699599] Modules linked in: pppoe ppp_async iptable_nat brcmfmac pppox ppp_generic nf_nat_ipv4 nf_conntrack_ipv6 nf_conntrack_ipv4 ipt_REJECT ipt_MASQUERADE cfg80211 xt_time xt_tcpudp xt_state xt_nat xt_multiport xt_mark xt_mac xt_limit xt_id xt_conntrack xt_commed
[ 918.771954] CPU: 1 PID: 1145 Comm: hostapd Not tainted 4.4.19 #0
[ 918.777971] Hardware name: BCM5301X
[ 918.781461] Backtrace:
[ 918.783938] [<c001708c>] (dump_backtrace) from [<c0017288>] (show_stack+0x18/0x1c)
[ 918.791523] r7:000004c3 r6:bf1d0e9c r5:60000013 r4:00000000
[ 918.797240] [<c0017270>] (show_stack) from [<c017c210>] (dump_stack+0x84/0xa4)
[ 918.804480] [<c017c18c>] (dump_stack) from [<c0021490>] (warn_slowpath_common+0x8c/0xb8)
[ 918.812587] r5:00000009 r4:00000000
[ 918.816184] [<c0021404>] (warn_slowpath_common) from [<c0021560>] (warn_slowpath_null+0x24/0x2c)
[ 918.824981] r8:c72f10a4 r7:00000001 r6:c64f7b3c r5:00000000 r4:c6518c80
[ 918.831764] [<c002153c>] (warn_slowpath_null) from [<bf1be578>] (brcmf_netdev_wait_pend8021x+0xbc/0x184 [brcmfmac])
[ 918.842243] [<bf1be4bc>] (brcmf_netdev_wait_pend8021x [brcmfmac]) from [<bf1ab200>] (brcmf_cfg80211_sched_scan_start+0x460/0x6c0 [brcmfmac])
[ 918.854870] r8:c72f10a4 r7:bf1c8613 r6:c6518c80 r5:c04903c8 r4:c72f1394
[ 918.861641] [<bf1ab13c>] (brcmf_cfg80211_sched_scan_start [brcmfmac]) from [<bf1ad740>] (brcmf_cfg80211_add_key+0x2e0/0x3dc [brcmfmac])
[ 918.873836] r7:00000000 r6:c6518c80 r5:c72f10a4 r4:00000004
[ 918.879578] [<bf1ad460>] (brcmf_cfg80211_add_key [brcmfmac]) from [<bf160b48>] (nl80211_new_key+0xfc/0x128 [cfg80211])
[ 918.890296] r10:00000014 r9:c7250800 r8:c64f7ca0 r7:c72de000 r6:c6518800 r5:00000000
[ 918.898181] r4:bf1ad460
[ 918.900751] [<bf160a4c>] (nl80211_new_key [cfg80211]) from [<c0286f40>] (genl_rcv_msg+0x260/0x2e4)
[ 918.909723] r8:c5d50300 r7:c658b614 r6:bf170540 r5:bf1787d0 r4:00000000
[ 918.916482] [<c0286ce0>] (genl_rcv_msg) from [<c0286260>] (netlink_rcv_skb+0x60/0xbc)
[ 918.924328] r10:c5d50300 r9:00000000 r8:c64f7d84 r7:c6b0e400 r6:c0286ce0 r5:c5d50300
[ 918.932214] r4:c658b600
[ 918.934761] [<c0286200>] (netlink_rcv_skb) from [<c0286ccc>] (genl_rcv+0x28/0x3c)
[ 918.942258] r7:c6b0e400 r6:c5d50300 r5:c5d50300 r4:c04a42a0
[ 918.947965] [<c0286ca4>] (genl_rcv) from [<c0285c48>] (netlink_unicast+0x138/0x1f4)
[ 918.955637] r5:00000048 r4:c7952000
[ 918.959236] [<c0285b10>] (netlink_unicast) from [<c02860c8>] (netlink_sendmsg+0x300/0x320)
[ 918.967517] r9:00000008 r8:00000000 r7:00000048 r6:c64f7f4c r5:c6b0e400 r4:00000000
[ 918.975324] [<c0285dc8>] (netlink_sendmsg) from [<c0248de4>] (sock_sendmsg+0x1c/0x2c)
[ 918.983167] r10:00000000 r9:00000000 r8:00000000 r7:c7544900 r6:c64f7e64 r5:00000000
[ 918.991053] r4:c64f7f4c
[ 918.993598] [<c0248dc8>] (sock_sendmsg) from [<c0249398>] (___sys_sendmsg+0x198/0x228)
[ 919.001529] [<c0249200>] (___sys_sendmsg) from [<c024a1ec>] (__sys_sendmsg+0x44/0x68)
[ 919.009375] r10:00000000 r9:c64f6000 r8:c00098c4 r7:00000128 r6:00000000 r5:bee617c0
[ 919.017260] r4:c7544900
[ 919.019807] [<c024a1a8>] (__sys_sendmsg) from [<c024a220>] (SyS_sendmsg+0x10/0x14)
[ 919.027393] r6:00003000 r5:00000000 r4:00000000
[ 919.032046] [<c024a210>] (SyS_sendmsg) from [<c0009700>] (ret_fast_syscall+0x0/0x3c)
[ 919.039829] ---[ end trace ab86393507c49518 ]---
[ 919.044467] brcmfmac: [brcmf_netdev_wait_pend8021x] ifp:c6518c80 brcmf_ifname(ifp):wlan1-2 brcmf_get_pend_8021x_cnt(ifp):2
[ 919.055542] brcmfmac: [brcmf_netdev_wait_pend8021x] List of pending 802.1x skbs:
[ 919.062956] brcmfmac: [brcmf_netdev_wait_pend8021x] skb:c7269780 skb->dev:c6518800 skb->dev->name:wlan1-2
[ 919.072547] brcmfmac: [brcmf_netdev_wait_pend8021x] skb:c72693c0 skb->dev:c6518800 skb->dev->name:wlan1-2
[ 919.082148] brcmfmac: [brcmf_msgbuf_process_txstatus -> __brcmf_txfinalize] Finally finalizing skb:c7269780 skb->dev:c6518800 skb->dev->name:wlan1-2
[ 919.098449] brcmfmac: [brcmf_cfg80211_del_key -> __send_key_to_dongle] ifp:c6518c80 brcmf_ifname(ifp):wlan1-2
[ 920.058595] ------------[ cut here ]------------
[ 920.063473] WARNING: CPU: 1 PID: 1145 at compat-wireless-2016-06-20/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c:1219 brcmf_netdev_wait_pend8021x+0xbc/0x184 [brcmfmac]()
[ 920.079937] Modules linked in: pppoe ppp_async iptable_nat brcmfmac pppox ppp_generic nf_nat_ipv4 nf_conntrack_ipv6 nf_conntrack_ipv4 ipt_REJECT ipt_MASQUERADE cfg80211 xt_time xt_tcpudp xt_state xt_nat xt_multiport xt_mark xt_mac xt_limit xt_id xt_conntrack xt_commed
[ 920.152313] CPU: 1 PID: 1145 Comm: hostapd Tainted: G W 4.4.19 #0
[ 920.159547] Hardware name: BCM5301X
[ 920.163038] Backtrace:
[ 920.165515] [<c001708c>] (dump_backtrace) from [<c0017288>] (show_stack+0x18/0x1c)
[ 920.173101] r7:000004c3 r6:bf1d0e9c r5:60000013 r4:00000000
[ 920.178818] [<c0017270>] (show_stack) from [<c017c210>] (dump_stack+0x84/0xa4)
[ 920.186056] [<c017c18c>] (dump_stack) from [<c0021490>] (warn_slowpath_common+0x8c/0xb8)
[ 920.194164] r5:00000009 r4:00000000
[ 920.197761] [<c0021404>] (warn_slowpath_common) from [<c0021560>] (warn_slowpath_null+0x24/0x2c)
[ 920.206558] r8:c5d50300 r7:00000001 r6:c64f7b74 r5:00000000 r4:c6518c80
[ 920.213343] [<c002153c>] (warn_slowpath_null) from [<bf1be578>] (brcmf_netdev_wait_pend8021x+0xbc/0x184 [brcmfmac])
[ 920.223820] [<bf1be4bc>] (brcmf_netdev_wait_pend8021x [brcmfmac]) from [<bf1ab200>] (brcmf_cfg80211_sched_scan_start+0x460/0x6c0 [brcmfmac])
[ 920.236447] r8:c5d50300 r7:bf1c85fc r6:c6518c80 r5:c04903c8 r4:c72f12f0
[ 920.243218] [<bf1ab13c>] (brcmf_cfg80211_sched_scan_start [brcmfmac]) from [<bf1ad420>] (brcmf_cfg80211_del_key+0xb0/0xf0 [brcmfmac])
[ 920.255240] r7:c6518c80 r6:00000002 r5:c72f1254 r4:c72f1000
[ 920.260981] [<bf1ad370>] (brcmf_cfg80211_del_key [brcmfmac]) from [<bf1608b8>] (nl80211_del_key+0xf4/0x148 [cfg80211])
[ 920.271699] r7:c72de000 r6:c6518800 r5:c70c5620 r4:bf1ad370
[ 920.277429] [<bf1607c4>] (nl80211_del_key [cfg80211]) from [<c0286f40>] (genl_rcv_msg+0x260/0x2e4)
[ 920.286400] r7:c70c5614 r6:bf170554 r5:bf1787d0 r4:00000000
[ 920.292106] [<c0286ce0>] (genl_rcv_msg) from [<c0286260>] (netlink_rcv_skb+0x60/0xbc)
[ 920.299952] r10:c5d50300 r9:00000000 r8:c64f7d84 r7:c6b0e400 r6:c0286ce0 r5:c5d50300
[ 920.307837] r4:c70c5600
[ 920.310384] [<c0286200>] (netlink_rcv_skb) from [<c0286ccc>] (genl_rcv+0x28/0x3c)
[ 920.317882] r7:c6b0e400 r6:c5d50300 r5:c5d50300 r4:c04a42a0
[ 920.323588] [<c0286ca4>] (genl_rcv) from [<c0285c48>] (netlink_unicast+0x138/0x1f4)
[ 920.331261] r5:00000030 r4:c7952000
[ 920.334859] [<c0285b10>] (netlink_unicast) from [<c02860c8>] (netlink_sendmsg+0x300/0x320)
[ 920.343141] r9:00000008 r8:00000000 r7:00000030 r6:c64f7f4c r5:c6b0e400 r4:00000000
[ 920.350947] [<c0285dc8>] (netlink_sendmsg) from [<c0248de4>] (sock_sendmsg+0x1c/0x2c)
[ 920.358790] r10:00000000 r9:00000000 r8:00000000 r7:c7544900 r6:c64f7e64 r5:00000000
[ 920.366677] r4:c64f7f4c
[ 920.369222] [<c0248dc8>] (sock_sendmsg) from [<c0249398>] (___sys_sendmsg+0x198/0x228)
[ 920.377162] [<c0249200>] (___sys_sendmsg) from [<c024a1ec>] (__sys_sendmsg+0x44/0x68)
[ 920.385007] r10:00000000 r9:c64f6000 r8:c00098c4 r7:00000128 r6:00000000 r5:bee61790
[ 920.392893] r4:c7544900
[ 920.395439] [<c024a1a8>] (__sys_sendmsg) from [<c024a220>] (SyS_sendmsg+0x10/0x14)
[ 920.403024] r6:00003000 r5:00000000 r4:00000000
[ 920.407678] [<c024a210>] (SyS_sendmsg) from [<c0009700>] (ret_fast_syscall+0x0/0x3c)
[ 920.415462] ---[ end trace ab86393507c49519 ]---
[ 920.420108] brcmfmac: [brcmf_netdev_wait_pend8021x] ifp:c6518c80 brcmf_ifname(ifp):wlan1-2 brcmf_get_pend_8021x_cnt(ifp):1
[ 920.431188] brcmfmac: [brcmf_netdev_wait_pend8021x] List of pending 802.1x skbs:
[ 920.438608] brcmfmac: [brcmf_netdev_wait_pend8021x] skb:c72693c0 skb->dev:c6518800 skb->dev->name:wlan1-2
[ 921.488695] brcmfmac: CONSOLE: 027651.562 wl0: Proxy STA 78:d6:f0:9b:ba:bc link is already gone !!??
[ 921.498112] brcmfmac: [brcmf_msgbuf_process_txstatus -> __brcmf_txfinalize] Finally finalizing skb:c72693c0 skb->dev:c6518800 skb->dev->name:wlan1-2
[ 943.599077] brcmfmac: [brcmf_cfg80211_add_key -> __send_key_to_dongle] ifp:c7369480 brcmf_ifname(ifp):wlan1
[ 943.609854] brcmfmac: [brcmf_cfg80211_add_key -> __send_key_to_dongle] ifp:c70cd480 brcmf_ifname(ifp):wlan0
[ 943.642073] brcmfmac: [brcmf_cfg80211_add_key -> __send_key_to_dongle] ifp:c71a1480 brcmf_ifname(ifp):wlan1-1
[ 943.859842] brcmfmac: [brcmf_cfg80211_add_key -> __send_key_to_dongle] ifp:c6464c80 brcmf_ifname(ifp):wlan0-1
[ 944.189138] brcmfmac: [brcmf_cfg80211_add_key -> __send_key_to_dongle] ifp:c6518c80 brcmf_ifname(ifp):wlan1-2
[ 944.209834] brcmfmac: [brcmf_cfg80211_add_key -> __send_key_to_dongle] ifp:c64cac80 brcmf_ifname(ifp):wlan0-2
[0] https://forum.openwrt.org/viewtopic.php?pid=335019#p335019
[1] http://www.snbforums.com/threads/alpha-builds-for-rt-ac88u-and-rt-ac3100.28024/#post-215754
---
.../broadcom/brcm80211/brcmfmac/cfg80211.c | 4 +-
.../wireless/broadcom/brcm80211/brcmfmac/core.c | 66 +++++++++++++++++++++-
.../wireless/broadcom/brcm80211/brcmfmac/core.h | 15 ++++-
.../broadcom/brcm80211/brcmfmac/flowring.c | 2 +
.../broadcom/brcm80211/brcmfmac/fwsignal.c | 12 +++-
.../wireless/broadcom/brcm80211/brcmfmac/msgbuf.c | 3 +
.../net/wireless/broadcom/brcm80211/brcmfmac/usb.c | 3 +
.../wireless/broadcom/brcm80211/brcmutil/utils.c | 2 +-
.../broadcom/brcm80211/include/brcmu_utils.h | 2 +-
9 files changed, 101 insertions(+), 8 deletions(-)
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
index 201a980..c7ccea5 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
@@ -464,11 +464,12 @@ static void convert_key_from_CPU(struct brcmf_wsec_key *key,
}
static int
-send_key_to_dongle(struct brcmf_if *ifp, struct brcmf_wsec_key *key)
+__send_key_to_dongle(const char *c0, struct brcmf_if *ifp, struct brcmf_wsec_key *key)
{
int err;
struct brcmf_wsec_key_le key_le;
+ pr_info("[%s -> %s] ifp:%p brcmf_ifname(ifp):%s\n", c0, __func__, ifp, brcmf_ifname(ifp));
convert_key_from_CPU(key, &key_le);
brcmf_netdev_wait_pend8021x(ifp);
@@ -480,6 +481,7 @@ send_key_to_dongle(struct brcmf_if *ifp, struct brcmf_wsec_key *key)
brcmf_err("wsec_key error (%d)\n", err);
return err;
}
+#define send_key_to_dongle(ifp, key) __send_key_to_dongle(__func__, ifp, key)
static s32
brcmf_configure_arp_nd_offload(struct brcmf_if *ifp, bool enable)
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c
index 8d16f02..cc02e3d 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c
@@ -38,6 +38,30 @@
#include "pcie.h"
#include "common.h"
+/* Free the driver packet. Free the tag if present */
+void __brcmu_pkt_buf_free_skb(const char *c0, struct brcmf_if *ifp, struct sk_buff *skb)
+{
+ if (!skb)
+ return;
+
+ if (ifp) {
+ struct skb_list *e;
+
+ mutex_lock(&ifp->pend_8021x_mutex);
+ list_for_each_entry(e, &ifp->pend_8021x_skbs, list) {
+ if (e->skb == skb) {
+ pr_info("[%s -> %s] [ifp:%p] ***BUG*** skb:%p skb->dev:%p skb->dev->name:%s\n", c0, __func__, ifp, e->skb, e->skb->dev, e->skb->dev ? e->skb->dev->name : "---");
+ }
+ }
+ mutex_unlock(&ifp->pend_8021x_mutex);
+ } else if (strcmp(c0, "brcmf_msgbuf_query_dcmd")) {
+ pr_info("[%s -> %s] [ifp:%p] Freeing skb:%p skb->dev:%p skb->dev->name:%s\n", c0, __func__, ifp, skb, skb->dev, skb->dev ? skb->dev->name : "---");
+ }
+
+ WARN_ON(skb->next);
+ dev_kfree_skb_any(skb);
+}
+
#define MAX_WAIT_FOR_8021X_TX msecs_to_jiffies(950)
#define BRCMF_BSSIDX_INVALID -1
@@ -247,8 +271,17 @@ static netdev_tx_t brcmf_netdev_start_xmit(struct sk_buff *skb,
goto done;
}
- if (eh->h_proto == htons(ETH_P_PAE))
+ if (eh->h_proto == htons(ETH_P_PAE)) {
+ struct skb_list *e;
+
+ e = kzalloc(sizeof(*e), GFP_KERNEL);
+ e->skb = skb;
+
atomic_inc(&ifp->pend_8021x_cnt);
+ mutex_lock(&ifp->pend_8021x_mutex);
+ list_add_tail(&e->list, &ifp->pend_8021x_skbs);
+ mutex_unlock(&ifp->pend_8021x_mutex);
+ }
ret = brcmf_fws_process_skb(ifp, skb);
@@ -333,7 +366,7 @@ static int brcmf_rx_hdrpull(struct brcmf_pub *drvr, struct sk_buff *skb,
if (ret || !(*ifp) || !(*ifp)->ndev) {
if (ret != -ENODATA && *ifp)
(*ifp)->stats.rx_errors++;
- brcmu_pkt_buf_free_skb(skb);
+ __brcmu_pkt_buf_free_skb(__func__, *ifp, skb);
return -ENODATA;
}
@@ -378,7 +411,7 @@ void brcmf_rx_event(struct device *dev, struct sk_buff *skb)
brcmu_pkt_buf_free_skb(skb);
}
-void brcmf_txfinalize(struct brcmf_if *ifp, struct sk_buff *txp, bool success)
+void __brcmf_txfinalize(const char *c0, struct brcmf_if *ifp, struct sk_buff *txp, bool success)
{
struct ethhdr *eh;
u16 type;
@@ -387,7 +420,19 @@ void brcmf_txfinalize(struct brcmf_if *ifp, struct sk_buff *txp, bool success)
type = ntohs(eh->h_proto);
if (type == ETH_P_PAE) {
+ struct skb_list *e, *tmp;
+
atomic_dec(&ifp->pend_8021x_cnt);
+ mutex_lock(&ifp->pend_8021x_mutex);
+ list_for_each_entry_safe(e, tmp, &ifp->pend_8021x_skbs, list) {
+ if (e->skb == txp) {
+ if (e->timedout)
+ pr_info("[%s -> %s] Finally finalizing skb:%p skb->dev:%p skb->dev->name:%s\n", c0, __func__, e->skb, e->skb->dev, e->skb->dev ? e->skb->dev->name : "---");
+ list_del(&e->list);
+ kfree(e);
+ }
+ }
+ mutex_unlock(&ifp->pend_8021x_mutex);
if (waitqueue_active(&ifp->pend_8021x_wait))
wake_up(&ifp->pend_8021x_wait);
}
@@ -476,6 +521,8 @@ static int brcmf_netdev_open(struct net_device *ndev)
}
atomic_set(&ifp->pend_8021x_cnt, 0);
+ INIT_LIST_HEAD(&ifp->pend_8021x_skbs);
+ mutex_init(&ifp->pend_8021x_mutex);
/* Get current TOE mode from dongle */
if (brcmf_fil_iovar_int_get(ifp, "toe_ol", &toe_ol) >= 0
@@ -1170,6 +1217,19 @@ int brcmf_netdev_wait_pend8021x(struct brcmf_if *ifp)
MAX_WAIT_FOR_8021X_TX);
WARN_ON(!err);
+ if (!err)
+ pr_info("[%s] ifp:%p brcmf_ifname(ifp):%s brcmf_get_pend_8021x_cnt(ifp):%d\n", __func__, ifp, brcmf_ifname(ifp), brcmf_get_pend_8021x_cnt(ifp));
+ if (!list_empty(&ifp->pend_8021x_skbs)) {
+ struct skb_list *e;
+
+ mutex_lock(&ifp->pend_8021x_mutex);
+ pr_info("[%s] List of pending 802.1x skbs:\n", __func__);
+ list_for_each_entry(e, &ifp->pend_8021x_skbs, list) {
+ e->timedout = true;
+ pr_info("[%s] skb:%p skb->dev:%p skb->dev->name:%s\n", __func__, e->skb, e->skb->dev, e->skb->dev ? e->skb->dev->name : "---");
+ }
+ mutex_unlock(&ifp->pend_8021x_mutex);
+ }
return !err;
}
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.h b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.h
index 8fa34ca..1509d4f 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.h
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.h
@@ -50,6 +50,9 @@
#define NDOL_MAX_ENTRIES 8
+void __brcmu_pkt_buf_free_skb(const char *c0, struct brcmf_if *ifp, struct sk_buff *skb);
+#define brcmu_pkt_buf_free_skb(skb) __brcmu_pkt_buf_free_skb(__func__, ifp, skb)
+
/**
* struct brcmf_ampdu_rx_reorder - AMPDU receive reorder info
*
@@ -169,6 +172,12 @@ enum brcmf_netif_stop_reason {
BRCMF_NETIF_STOP_REASON_DISCONNECTED = BIT(2)
};
+struct skb_list {
+ struct sk_buff *skb;
+ bool timedout;
+ struct list_head list;
+};
+
/**
* struct brcmf_if - interface control information.
*
@@ -203,6 +212,9 @@ struct brcmf_if {
u8 netif_stop;
spinlock_t netif_stop_lock;
atomic_t pend_8021x_cnt;
+ struct list_head pend_8021x_skbs;
+ struct mutex pend_8021x_mutex;
+ bool pend_8021x_ready;
wait_queue_head_t pend_8021x_wait;
struct in6_addr ipv6_addr_tbl[NDOL_MAX_ENTRIES];
u8 ipv6addr_idx;
@@ -219,7 +231,8 @@ struct brcmf_if *brcmf_add_if(struct brcmf_pub *drvr, s32 bsscfgidx, s32 ifidx,
void brcmf_remove_interface(struct brcmf_if *ifp, bool rtnl_locked);
void brcmf_txflowblock_if(struct brcmf_if *ifp,
enum brcmf_netif_stop_reason reason, bool state);
-void brcmf_txfinalize(struct brcmf_if *ifp, struct sk_buff *txp, bool success);
+void __brcmf_txfinalize(const char *c0, struct brcmf_if *ifp, struct sk_buff *txp, bool success);
+#define brcmf_txfinalize(ifp, txp, success) __brcmf_txfinalize(__func__, ifp, txp, success)
void brcmf_netif_rx(struct brcmf_if *ifp, struct sk_buff *skb);
void brcmf_net_setcarrier(struct brcmf_if *ifp, bool on);
void brcmf_c_set_joinpref_default(struct brcmf_if *ifp);
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c
index 7e269f9..87c8de0 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c
@@ -249,6 +249,8 @@ void brcmf_flowring_delete(struct brcmf_flowring *flow, u16 flowid)
skb = skb_dequeue(&ring->skblist);
while (skb) {
+ struct brcmf_if *ifp = NULL;
+
brcmu_pkt_buf_free_skb(skb);
skb = skb_dequeue(&ring->skblist);
}
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c
index 9f9024a..41dd3fb 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c
@@ -590,6 +590,8 @@ static void brcmf_fws_psq_flush(struct brcmf_fws_info *fws, struct pktq *q,
for (prec = 0; prec < q->num_prec; prec++) {
skb = brcmu_pktq_pdeq_match(q, prec, matchfn, &ifidx);
while (skb) {
+ struct brcmf_if *ifp = NULL;
+
brcmu_pkt_buf_free_skb(skb);
skb = brcmu_pktq_pdeq_match(q, prec, matchfn, &ifidx);
}
@@ -697,6 +699,8 @@ static void brcmf_fws_hanger_cleanup(struct brcmf_fws_info *fws,
s == BRCMF_FWS_HANGER_ITEM_STATE_INUSE_SUPPRESSED) {
skb = h->items[i].pkt;
if (fn == NULL || fn(skb, &ifidx)) {
+ struct brcmf_if *ifp = NULL;
+
/* suppress packets freed from psq */
if (s == BRCMF_FWS_HANGER_ITEM_STATE_INUSE)
brcmu_pkt_buf_free_skb(skb);
@@ -845,6 +849,8 @@ static void brcmf_fws_bus_txq_cleanup(struct brcmf_fws_info *fws,
for (prec = 0; prec < txq->num_prec; prec++) {
skb = brcmu_pktq_pdeq_match(txq, prec, fn, &ifidx);
while (skb) {
+ struct brcmf_if *ifp = NULL;
+
hslot = brcmf_skb_htod_tag_get_field(skb, HSLOT);
hi = &fws->hanger.items[hslot];
WARN_ON(skb != hi->pkt);
@@ -971,8 +977,11 @@ static bool brcmf_fws_tim_update(struct brcmf_fws_info *fws,
brcmf_fws_unlock(fws);
err = brcmf_proto_txdata(fws->drvr, ifidx, data_offset, skb);
brcmf_fws_lock(fws);
- if (err)
+ if (err) {
+ struct brcmf_if *ifp = NULL;
+
brcmu_pkt_buf_free_skb(skb);
+ }
return true;
}
return false;
@@ -2454,6 +2463,7 @@ bool brcmf_fws_fc_active(struct brcmf_fws_info *fws)
void brcmf_fws_bustxfail(struct brcmf_fws_info *fws, struct sk_buff *skb)
{
+ struct brcmf_if *ifp = NULL;
u32 hslot;
if (brcmf_skbcb(skb)->state == BRCMF_FWS_SKBSTATE_TIM) {
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/msgbuf.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/msgbuf.c
index 2b9a2bc..e47f5a3 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/msgbuf.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/msgbuf.c
@@ -392,6 +392,8 @@ brcmf_msgbuf_release_array(struct device *dev,
count = 0;
do {
if (array[count].allocated.counter) {
+ struct brcmf_if *ifp = NULL;
+
pktid = &array[count];
dma_unmap_single(dev, pktid->physaddr,
pktid->skb->len - pktid->data_offset,
@@ -483,6 +485,7 @@ static int brcmf_msgbuf_query_dcmd(struct brcmf_pub *drvr, int ifidx,
{
struct brcmf_msgbuf *msgbuf = (struct brcmf_msgbuf *)drvr->proto->pd;
struct sk_buff *skb = NULL;
+ struct brcmf_if *ifp = NULL;
int timeout;
int err;
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/usb.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/usb.c
index 2f978a3..edbe353 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/usb.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/usb.c
@@ -498,6 +498,7 @@ static void brcmf_usb_rx_complete(struct urb *urb)
{
struct brcmf_usbreq *req = (struct brcmf_usbreq *)urb->context;
struct brcmf_usbdev_info *devinfo = req->devinfo;
+ struct brcmf_if *ifp = NULL;
struct sk_buff *skb;
brcmf_dbg(USB, "Enter, urb->status=%d\n", urb->status);
@@ -548,6 +549,8 @@ static void brcmf_usb_rx_refill(struct brcmf_usbdev_info *devinfo,
ret = usb_submit_urb(req->urb, GFP_ATOMIC);
if (ret) {
+ struct brcmf_if *ifp = NULL;
+
brcmf_usb_del_fromq(devinfo, req);
brcmu_pkt_buf_free_skb(req->skb);
req->skb = NULL;
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmutil/utils.c b/drivers/net/wireless/broadcom/brcm80211/brcmutil/utils.c
index 0543607..bf525b7 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmutil/utils.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmutil/utils.c
@@ -49,7 +49,7 @@ void brcmu_pkt_buf_free_skb(struct sk_buff *skb)
WARN_ON(skb->next);
dev_kfree_skb_any(skb);
}
-EXPORT_SYMBOL(brcmu_pkt_buf_free_skb);
+//EXPORT_SYMBOL(brcmu_pkt_buf_free_skb);
/*
* osl multiple-precedence packet queue
diff --git a/drivers/net/wireless/broadcom/brcm80211/include/brcmu_utils.h b/drivers/net/wireless/broadcom/brcm80211/include/brcmu_utils.h
index 4196952..7bd705d 100644
--- a/drivers/net/wireless/broadcom/brcm80211/include/brcmu_utils.h
+++ b/drivers/net/wireless/broadcom/brcm80211/include/brcmu_utils.h
@@ -126,7 +126,7 @@ struct sk_buff *brcmu_pktq_pdeq_match(struct pktq *pq, int prec,
/* packet primitives */
struct sk_buff *brcmu_pkt_buf_get_skb(uint len);
-void brcmu_pkt_buf_free_skb(struct sk_buff *skb);
+//void brcmu_pkt_buf_free_skb(struct sk_buff *skb);
/* Empty the queue at particular precedence level */
/* callback function fn(pkt, arg) returns true if pkt belongs to if */
--
2.9.3
^ permalink raw reply related
* Re: [PATCH] mac80211: allow driver to handle packet-loss mechanism
From: Johannes Berg @ 2016-09-14 6:06 UTC (permalink / raw)
To: Rajkumar Manoharan; +Cc: Rajkumar Manoharan, linux-wireless
In-Reply-To: <e968a9083a9f5fd7e9c04d563288b229@codeaurora.org>
> > The way you describe this it sounds like somehow you'll be
> > reporting the indication to userspace from the driver; but you do
> > not, and cannot do that. The description seems thus misleading?
> >
> Sorry for confusion.. The idea is that driver will report low ack
> status by ieee80211_report_low_ack and if driver wants to completely
> rely on firmware algorithm, then this flag will be used to bypass
> mac80211 packet loss mechanism. does it make sense?
Oh, so you *can* already do that. Please just say that in the commit
message.
johannes
^ permalink raw reply
* Assigning bugzilla bugs
From: Luca Coelho @ 2016-09-14 6:49 UTC (permalink / raw)
To: linux-wireless
Hi,
Some weeks ago, I started looking into unassigned bugzilla bugs
reported to wireless-drivers periodically to fish out the iwlwifi bugs.
While doing this, I always bump into new bugs on other drivers, so I
could easily reassign them to the appropriate owners for more
visibility.
So, if you are the maintainer of a wireless driver and want me to
assign eventual bugzilla bugs to you when I see them, just let me know
by telling me the email address to assign to and the tag you want added
to the summary (e.g. we use "iwlwifi:" for our bugs).
<disclaimer>
Please note that this is a "service" that I will provide voluntarily
and sporadically, without guarantees of any kind (e.g. I may stop doing
this at anytime without further notice).
</disclaimer>
But I'll do my best to help. :)
--
Cheers,
Luca.
^ permalink raw reply
* Re: [PATCH 2/2] ath10k: add platform regulatory domain support
From: Valo, Kalle @ 2016-09-14 7:06 UTC (permalink / raw)
To: bartosz.markowski@tieto.com
Cc: linux-wireless@vger.kernel.org, ath10k@lists.infradead.org
In-Reply-To: <CACKGw+FAwPb2NLW5G8CnGH4X2eCCjUkuJwLoqW9w9rKpDuQJDw@mail.gmail.com>
Bartosz Markowski <bartosz.markowski@tieto.com> writes:
> On 12 September 2016 at 17:35, Valo, Kalle <kvalo@qca.qualcomm.com> wrote=
:
>
>> > +#ifdef CONFIG_ACPI
>> > +#define WRD_METHOD "WRDD"
>> > +#define WRDD_WIFI (0x07)
>> > +
>> > +static u32 ath10k_mac_wrdd_get_mcc(struct ath10k *ar, union acpi_obje=
ct *wrdd)
>> > +{
>>
>> I don't think the ifdef is really necessary, acpi.h should handle that
>> (hopefully). Also I changed the error handling to use standard error
>> values and changed the info messages to dbg, they are too spammy in my
>> opinion. Please check carefully my changes in the pending branch:
>>
>> https://git.kernel.org/cgit/linux/kernel/git/kvalo/ath.git/commit/?h=3Dp=
ending&id=3Dfe91745381ec3999d8de6dedb07b396c82539717
>
> I'm OK with the changes, I have not tried that though, except of
> reviewing and compiling it (do not have access to the chromebook for
> next few days). If you want to wait with it until I test it, it's fine
> too.
Ok, I'll wait for few days in case you have time to test it.
--=20
Kalle Valo=
^ permalink raw reply
* [PATCH v2] mac80211: allow driver to handle packet-loss mechanism
From: Rajkumar Manoharan @ 2016-09-14 7:18 UTC (permalink / raw)
To: johannes; +Cc: linux-wireless, rmanohar, Rajkumar Manoharan
Based on consecutive msdu failures, mac80211 triggers CQM packet-loss
mechanism. Drivers like ath10k that have its own connection monitoring
algorithm, offloaded to firmware for triggering station kickout. In case
of station kickout, driver will report low ack status by mac80211 API
(ieee80211_report_low_ack).
This flag will enable the driver to completely rely on firmware events
for station kickout and bypass mac80211 packet loss mechanism.
Signed-off-by: Rajkumar Manoharan <rmanohar@qti.qualcomm.com>
---
v2: updated comments and commit log
include/net/mac80211.h | 6 ++++++
net/mac80211/debugfs.c | 1 +
net/mac80211/status.c | 6 ++++++
3 files changed, 13 insertions(+)
diff --git a/include/net/mac80211.h b/include/net/mac80211.h
index 08bac23c8de1..d1351aaccda0 100644
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -2018,6 +2018,11 @@ struct ieee80211_txq {
* @IEEE80211_HW_TX_FRAG_LIST: Hardware (or driver) supports sending frag_list
* skbs, needed for zero-copy software A-MSDU.
*
+ * @IEEE80211_HW_REPORTS_LOW_ACK: The driver (or firmware) reports low ack event
+ * by ieee80211_report_low_ack() based on its own algorithm. For such
+ * drivers, mac80211 packet loss mechanism will not be triggered and driver
+ * is completely depending on firmware event for station kickout.
+ *
* @NUM_IEEE80211_HW_FLAGS: number of hardware flags, used for sizing arrays
*/
enum ieee80211_hw_flags {
@@ -2058,6 +2063,7 @@ enum ieee80211_hw_flags {
IEEE80211_HW_USES_RSS,
IEEE80211_HW_TX_AMSDU,
IEEE80211_HW_TX_FRAG_LIST,
+ IEEE80211_HW_REPORTS_LOW_ACK,
/* keep last, obviously */
NUM_IEEE80211_HW_FLAGS
diff --git a/net/mac80211/debugfs.c b/net/mac80211/debugfs.c
index 5bbb470f335f..8ca62b6bb02a 100644
--- a/net/mac80211/debugfs.c
+++ b/net/mac80211/debugfs.c
@@ -201,6 +201,7 @@ static const char *hw_flag_names[] = {
FLAG(USES_RSS),
FLAG(TX_AMSDU),
FLAG(TX_FRAG_LIST),
+ FLAG(REPORTS_LOW_ACK),
#undef FLAG
};
diff --git a/net/mac80211/status.c b/net/mac80211/status.c
index fabd9ff710d9..ea39f8a7baf3 100644
--- a/net/mac80211/status.c
+++ b/net/mac80211/status.c
@@ -557,6 +557,12 @@ static void ieee80211_report_used_skb(struct ieee80211_local *local,
static void ieee80211_lost_packet(struct sta_info *sta,
struct ieee80211_tx_info *info)
{
+ /* If driver relies on its own algorithm for station kickout, skip
+ * mac80211 packet loss mechanism.
+ */
+ if (ieee80211_hw_check(&sta->local->hw, REPORTS_LOW_ACK))
+ return;
+
/* This packet was aggregated but doesn't carry status info */
if ((info->flags & IEEE80211_TX_CTL_AMPDU) &&
!(info->flags & IEEE80211_TX_STAT_AMPDU))
--
2.9.3
^ permalink raw reply related
* Re: AMPDU stalls with brcmfmac4366b-pcie.bin triggering WARNINGs
From: Rafał Miłecki @ 2016-09-14 7:25 UTC (permalink / raw)
To: Hante Meuleman, Arend van Spriel, brcm80211-dev-list; +Cc: linux-wireless
In-Reply-To: <20160914054528.28717-1-zajec5@gmail.com>
On 09/14/2016 07:45 AM, Rafał Miłecki wrote:
> Even with the most recent brcmfmac code ppl keep seeing WARNINGs from
> brcmf_netdev_wait_pend8021x [0].
>
> Hante suggested using CONSOLE for debugging some firmware crash so I
> decided to see I it could also help understanding WARNINGs. I believe it
> did.
>
> First of all, I can't reproduce these problems reliably. One evening I
> got WARNINGs one by one and I could work on my debugging patch easily.
> Yesterday when I got my patch complete, it took me 10+ hours to get a
> single WARNING.
>
> Anyway, it seems to me that sometimes AMPDU stalls in the firmware. It
> seems firmware has some AMPDU watchdog that notices the problem and
> kicks in. It prints some debugging info and starts cleaning up process.
>
> If brcmf_netdev_wait_pend8021x gets called shortly after that (I set
> wpa_group_rekey=30 in hostapd to get brcmf_cfg80211_add_key called more
> often) it results in a WARNING.
Above log was from D-Link DIR-885L.
I can also see WARNINGs on SmartRG SR-400ac with 2 x 43602a1. Unfortunately
brcmfmac43602-pcie.ap.bin doesn't seem to have so many debugging messages so
despite having CONSOLE enabled, I didn't get anything interesting :(
Below you can find 4 logs that look pretty identical to me. At the end of
e-mail there is a confirmation of CONSOLE working.
[30256.622554] brcmfmac: [brcmf_cfg80211_add_key -> __send_key_to_dongle] ifp:c7b2ec80 brcmf_ifname(ifp):wlan0
[30258.179143] brcmfmac: [brcmf_cfg80211_add_key -> __send_key_to_dongle] ifp:c652ec80 brcmf_ifname(ifp):wlan0-1
[30258.402521] brcmfmac: [brcmf_cfg80211_add_key -> __send_key_to_dongle] ifp:c64e1c80 brcmf_ifname(ifp):wlan1-1
[30258.525317] brcmfmac: [brcmf_cfg80211_add_key -> __send_key_to_dongle] ifp:c64e2c80 brcmf_ifname(ifp):wlan1-2
[30258.539100] brcmfmac: [brcmf_cfg80211_add_key -> __send_key_to_dongle] ifp:c647c480 brcmf_ifname(ifp):wlan0-2
[30260.112015] brcmfmac: [brcmf_cfg80211_add_key -> __send_key_to_dongle] ifp:c7b2d480 brcmf_ifname(ifp):wlan1
[30261.071798] ------------[ cut here ]------------
[30261.076459] WARNING: CPU: 1 PID: 1505 at compat-wireless-2016-06-20/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c:1219 brcmf_netdev_wait_pend8021x+0xbc/0x184 [brcmfmac]()
[30261.092493] Modules linked in: pppoe ppp_async iptable_nat brcmfmac pppox ppp_generic nf_nat_ipv4 nf_conntrack_ipv6 nf_conntrack_ipv4 ipt_REJECT ipt_MASQUERADE cfg80211 xt_time xt_tcpudp xt_state xt_nat xt_multiport xt_mark xt_mac xt_limit xt_id xt_conntrack xt_commed
[30261.164362] CPU: 1 PID: 1505 Comm: hostapd Not tainted 4.4.19 #0
[30261.170342] Hardware name: BCM5301X
[30261.173816] Backtrace:
[30261.176284] [<c001708c>] (dump_backtrace) from [<c0017288>] (show_stack+0x18/0x1c)
[30261.183813] r7:000004c3 r6:bf1d0e9c r5:60000013 r4:00000000
[30261.189496] [<c0017270>] (show_stack) from [<c017c210>] (dump_stack+0x84/0xa4)
[30261.196687] [<c017c18c>] (dump_stack) from [<c0021490>] (warn_slowpath_common+0x8c/0xb8)
[30261.204738] r5:00000009 r4:00000000
[30261.208312] [<c0021404>] (warn_slowpath_common) from [<c0021560>] (warn_slowpath_null+0x24/0x2c)
[30261.217050] r8:c71b3148 r7:00000001 r6:c6505b3c r5:00000000 r4:c7b2d480
[30261.223791] [<c002153c>] (warn_slowpath_null) from [<bf1be578>] (brcmf_netdev_wait_pend8021x+0xbc/0x184 [brcmfmac])
[30261.234206] [<bf1be4bc>] (brcmf_netdev_wait_pend8021x [brcmfmac]) from [<bf1ab200>] (brcmf_cfg80211_sched_scan_start+0x460/0x6c0 [brcmfmac])
[30261.246746] r8:c71b3148 r7:bf1c8613 r6:c7b2d480 r5:c04903c8 r4:c71b3438
[30261.253477] [<bf1ab13c>] (brcmf_cfg80211_sched_scan_start [brcmfmac]) from [<bf1ad740>] (brcmf_cfg80211_add_key+0x2e0/0x3dc [brcmfmac])
[30261.265589] r7:00000000 r6:c7b2d480 r5:c71b3148 r4:00000004
[30261.271315] [<bf1ad460>] (brcmf_cfg80211_add_key [brcmfmac]) from [<bf160b48>] (nl80211_new_key+0xfc/0x128 [cfg80211])
[30261.281955] r10:00000014 r9:c7a61c00 r8:c6505ca0 r7:c6a58000 r6:c7b2d000 r5:00000000
[30261.289781] r4:bf1ad460
[30261.292349] [<bf160a4c>] (nl80211_new_key [cfg80211]) from [<c0286f40>] (genl_rcv_msg+0x260/0x2e4)
[30261.301264] r8:c68ef900 r7:c656fc14 r6:bf170540 r5:bf1787d0 r4:00000000
[30261.307978] [<c0286ce0>] (genl_rcv_msg) from [<c0286260>] (netlink_rcv_skb+0x60/0xbc)
[30261.315770] r10:c68ef900 r9:00000000 r8:c6505d84 r7:c646dc00 r6:c0286ce0 r5:c68ef900
[30261.323599] r4:c656fc00
[30261.326131] [<c0286200>] (netlink_rcv_skb) from [<c0286ccc>] (genl_rcv+0x28/0x3c)
[30261.333577] r7:c646dc00 r6:c68ef900 r5:c68ef900 r4:c04a42a0
[30261.339247] [<c0286ca4>] (genl_rcv) from [<c0285c48>] (netlink_unicast+0x138/0x1f4)
[30261.346865] r5:00000048 r4:c7931c00
[30261.350443] [<c0285b10>] (netlink_unicast) from [<c02860c8>] (netlink_sendmsg+0x300/0x320)
[30261.358667] r9:00000008 r8:00000000 r7:00000048 r6:c6505f4c r5:c646dc00 r4:00000000
[30261.366421] [<c0285dc8>] (netlink_sendmsg) from [<c0248de4>] (sock_sendmsg+0x1c/0x2c)
[30261.374211] r10:00000000 r9:00000000 r8:00000000 r7:c756e900 r6:c6505e64 r5:00000000
[30261.382039] r4:c6505f4c
[30261.384568] [<c0248dc8>] (sock_sendmsg) from [<c0249398>] (___sys_sendmsg+0x198/0x228)
[30261.392450] [<c0249200>] (___sys_sendmsg) from [<c024a1ec>] (__sys_sendmsg+0x44/0x68)
[30261.400235] r10:00000000 r9:c6504000 r8:c00098c4 r7:00000128 r6:00000000 r5:be8ca7a0
[30261.408062] r4:c756e900
[30261.410593] [<c024a1a8>] (__sys_sendmsg) from [<c024a220>] (SyS_sendmsg+0x10/0x14)
[30261.418119] r6:b6f371c8 r5:00000000 r4:00000000
[30261.422743] [<c024a210>] (SyS_sendmsg) from [<c0009700>] (ret_fast_syscall+0x0/0x3c)
[30261.430519] ---[ end trace 7622542e763ab584 ]---
[30261.435138] brcmfmac: [brcmf_netdev_wait_pend8021x] ifp:c7b2d480 brcmf_ifname(ifp):wlan1 brcmf_get_pend_8021x_cnt(ifp):3
[30261.445963] brcmfmac: [brcmf_netdev_wait_pend8021x] List of pending 802.1x skbs:
[30261.453335] brcmfmac: [brcmf_netdev_wait_pend8021x] skb:c68ef540 skb->dev:c7b2d000 skb->dev->name:wlan1
[30261.462690] brcmfmac: [brcmf_netdev_wait_pend8021x] skb:c68ef240 skb->dev:c7b2d000 skb->dev->name:wlan1
[30261.472048] brcmfmac: [brcmf_netdev_wait_pend8021x] skb:c68ef600 skb->dev:c7b2d000 skb->dev->name:wlan1
[30261.481438] brcmfmac: [brcmf_msgbuf_process_txstatus -> __brcmf_txfinalize] Finally finalizing skb:c68ef540 skb->dev:c7b2d000 skb->dev->name:wlan1
[30261.495608] brcmfmac: [brcmf_cfg80211_del_key -> __send_key_to_dongle] ifp:c7b2d480 brcmf_ifname(ifp):wlan1
[30262.451804] ------------[ cut here ]------------
[30262.456462] WARNING: CPU: 1 PID: 1505 at compat-wireless-2016-06-20/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c:1219 brcmf_netdev_wait_pend8021x+0xbc/0x184 [brcmfmac]()
[30262.472486] Modules linked in: pppoe ppp_async iptable_nat brcmfmac pppox ppp_generic nf_nat_ipv4 nf_conntrack_ipv6 nf_conntrack_ipv4 ipt_REJECT ipt_MASQUERADE cfg80211 xt_time xt_tcpudp xt_state xt_nat xt_multiport xt_mark xt_mac xt_limit xt_id xt_conntrack xt_commed
[30262.544371] CPU: 1 PID: 1505 Comm: hostapd Tainted: G W 4.4.19 #0
[30262.551559] Hardware name: BCM5301X
[30262.555032] Backtrace:
[30262.557500] [<c001708c>] (dump_backtrace) from [<c0017288>] (show_stack+0x18/0x1c)
[30262.565030] r7:000004c3 r6:bf1d0e9c r5:60000013 r4:00000000
[30262.570722] [<c0017270>] (show_stack) from [<c017c210>] (dump_stack+0x84/0xa4)
[30262.577920] [<c017c18c>] (dump_stack) from [<c0021490>] (warn_slowpath_common+0x8c/0xb8)
[30262.585971] r5:00000009 r4:00000000
[30262.589546] [<c0021404>] (warn_slowpath_common) from [<c0021560>] (warn_slowpath_null+0x24/0x2c)
[30262.598284] r8:c68ef540 r7:00000001 r6:c6505b74 r5:00000000 r4:c7b2d480
[30262.605024] [<c002153c>] (warn_slowpath_null) from [<bf1be578>] (brcmf_netdev_wait_pend8021x+0xbc/0x184 [brcmfmac])
[30262.615440] [<bf1be4bc>] (brcmf_netdev_wait_pend8021x [brcmfmac]) from [<bf1ab200>] (brcmf_cfg80211_sched_scan_start+0x460/0x6c0 [brcmfmac])
[30262.627979] r8:c68ef540 r7:bf1c85fc r6:c7b2d480 r5:c04903c8 r4:c71b32f0
[30262.634711] [<bf1ab13c>] (brcmf_cfg80211_sched_scan_start [brcmfmac]) from [<bf1ad420>] (brcmf_cfg80211_del_key+0xb0/0xf0 [brcmfmac])
[30262.646649] r7:c7b2d480 r6:00000002 r5:c71b3254 r4:c71b3000
[30262.652374] [<bf1ad370>] (brcmf_cfg80211_del_key [brcmfmac]) from [<bf1608b8>] (nl80211_del_key+0xf4/0x148 [cfg80211])
[30262.663014] r7:c6a58000 r6:c7b2d000 r5:c644b720 r4:bf1ad370
[30262.668718] [<bf1607c4>] (nl80211_del_key [cfg80211]) from [<c0286f40>] (genl_rcv_msg+0x260/0x2e4)
[30262.677634] r7:c644b714 r6:bf170554 r5:bf1787d0 r4:00000000
[30262.683301] [<c0286ce0>] (genl_rcv_msg) from [<c0286260>] (netlink_rcv_skb+0x60/0xbc)
[30262.691095] r10:c68ef540 r9:00000000 r8:c6505d84 r7:c646dc00 r6:c0286ce0 r5:c68ef540
[30262.698922] r4:c644b700
[30262.701453] [<c0286200>] (netlink_rcv_skb) from [<c0286ccc>] (genl_rcv+0x28/0x3c)
[30262.708892] r7:c646dc00 r6:c68ef540 r5:c68ef540 r4:c04a42a0
[30262.714561] [<c0286ca4>] (genl_rcv) from [<c0285c48>] (netlink_unicast+0x138/0x1f4)
[30262.722180] r5:00000030 r4:c7931c00
[30262.725758] [<c0285b10>] (netlink_unicast) from [<c02860c8>] (netlink_sendmsg+0x300/0x320)
[30262.733974] r9:00000008 r8:00000000 r7:00000030 r6:c6505f4c r5:c646dc00 r4:00000000
[30262.741728] [<c0285dc8>] (netlink_sendmsg) from [<c0248de4>] (sock_sendmsg+0x1c/0x2c)
[30262.749518] r10:00000000 r9:00000000 r8:00000000 r7:c756e900 r6:c6505e64 r5:00000000
[30262.757345] r4:c6505f4c
[30262.759875] [<c0248dc8>] (sock_sendmsg) from [<c0249398>] (___sys_sendmsg+0x198/0x228)
[30262.767756] [<c0249200>] (___sys_sendmsg) from [<c024a1ec>] (__sys_sendmsg+0x44/0x68)
[30262.775542] r10:00000000 r9:c6504000 r8:c00098c4 r7:00000128 r6:00000000 r5:be8ca770
[30262.783369] r4:c756e900
[30262.785901] [<c024a1a8>] (__sys_sendmsg) from [<c024a220>] (SyS_sendmsg+0x10/0x14)
[30262.793427] r6:b6f371c8 r5:00000000 r4:00000000
[30262.798050] [<c024a210>] (SyS_sendmsg) from [<c0009700>] (ret_fast_syscall+0x0/0x3c)
[30262.805792] ---[ end trace 7622542e763ab585 ]---
[30262.810397] brcmfmac: [brcmf_netdev_wait_pend8021x] ifp:c7b2d480 brcmf_ifname(ifp):wlan1 brcmf_get_pend_8021x_cnt(ifp):2
[30262.821229] brcmfmac: [brcmf_netdev_wait_pend8021x] List of pending 802.1x skbs:
[30262.828606] brcmfmac: [brcmf_netdev_wait_pend8021x] skb:c68ef240 skb->dev:c7b2d000 skb->dev->name:wlan1
[30262.837962] brcmfmac: [brcmf_netdev_wait_pend8021x] skb:c68ef600 skb->dev:c7b2d000 skb->dev->name:wlan1
[30264.339034] brcmfmac: [brcmf_msgbuf_process_txstatus -> __brcmf_txfinalize] Finally finalizing skb:c68ef240 skb->dev:c7b2d000 skb->dev->name:wlan1
[30264.352306] brcmfmac: [brcmf_msgbuf_process_txstatus -> __brcmf_txfinalize] Finally finalizing skb:c68ef600 skb->dev:c7b2d000 skb->dev->name:wlan1
[ 2688.254245] brcmfmac: [brcmf_cfg80211_add_key -> __send_key_to_dongle] ifp:c719d480 brcmf_ifname(ifp):wlan1
[ 2688.597156] brcmfmac: [brcmf_cfg80211_add_key -> __send_key_to_dongle] ifp:c719a480 brcmf_ifname(ifp):wlan0
[ 2689.411719] brcmfmac: [brcmf_cfg80211_add_key -> __send_key_to_dongle] ifp:c7ab4480 brcmf_ifname(ifp):wlan0-1
[ 2689.961683] brcmfmac: [brcmf_cfg80211_add_key -> __send_key_to_dongle] ifp:c7b1ec80 brcmf_ifname(ifp):wlan0-2
[ 2689.974174] brcmfmac: [brcmf_cfg80211_add_key -> __send_key_to_dongle] ifp:c6532c80 brcmf_ifname(ifp):wlan1-2
[ 2692.133701] brcmfmac: [brcmf_cfg80211_add_key -> __send_key_to_dongle] ifp:c649bc80 brcmf_ifname(ifp):wlan1-1
[ 2693.093493] ------------[ cut here ]------------
[ 2693.098153] WARNING: CPU: 1 PID: 1202 at compat-wireless-2016-06-20/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c:1219 brcmf_netdev_wait_pend8021x+0xbc/0x184 [brcmfmac]()
[ 2693.114191] Modules linked in: pppoe ppp_async iptable_nat brcmfmac pppox ppp_generic nf_nat_ipv4 nf_conntrack_ipv6 nf_conntrack_ipv4 ipt_REJECT ipt_MASQUERADE cfg80211 xt_time xt_tcpudp xt_state xt_nat xt_multiport xt_mark xt_mac xt_limit xt_id xt_conntrack xt_commed
[ 2693.186072] CPU: 1 PID: 1202 Comm: hostapd Not tainted 4.4.19 #0
[ 2693.192051] Hardware name: BCM5301X
[ 2693.195524] Backtrace:
[ 2693.197993] [<c001708c>] (dump_backtrace) from [<c0017288>] (show_stack+0x18/0x1c)
[ 2693.205520] r7:000004c3 r6:bf1d0e9c r5:60000013 r4:00000000
[ 2693.211206] [<c0017270>] (show_stack) from [<c017c210>] (dump_stack+0x84/0xa4)
[ 2693.218401] [<c017c18c>] (dump_stack) from [<c0021490>] (warn_slowpath_common+0x8c/0xb8)
[ 2693.226446] r5:00000009 r4:00000000
[ 2693.230020] [<c0021404>] (warn_slowpath_common) from [<c0021560>] (warn_slowpath_null+0x24/0x2c)
[ 2693.238758] r8:c72f4148 r7:00000001 r6:c6475b3c r5:00000000 r4:c649bc80
[ 2693.245498] [<c002153c>] (warn_slowpath_null) from [<bf1be578>] (brcmf_netdev_wait_pend8021x+0xbc/0x184 [brcmfmac])
[ 2693.255915] [<bf1be4bc>] (brcmf_netdev_wait_pend8021x [brcmfmac]) from [<bf1ab200>] (brcmf_cfg80211_sched_scan_start+0x460/0x6c0 [brcmfmac])
[ 2693.268453] r8:c72f4148 r7:bf1c8613 r6:c649bc80 r5:c04903c8 r4:c72f4438
[ 2693.275185] [<bf1ab13c>] (brcmf_cfg80211_sched_scan_start [brcmfmac]) from [<bf1ad740>] (brcmf_cfg80211_add_key+0x2e0/0x3dc [brcmfmac])
[ 2693.287298] r7:00000000 r6:c649bc80 r5:c72f4148 r4:00000004
[ 2693.293021] [<bf1ad460>] (brcmf_cfg80211_add_key [brcmfmac]) from [<bf160b48>] (nl80211_new_key+0xfc/0x128 [cfg80211])
[ 2693.303661] r10:00000014 r9:c7966800 r8:c6475ca0 r7:c715e000 r6:c649b800 r5:00000000
[ 2693.311489] r4:bf1ad460
[ 2693.314057] [<bf160a4c>] (nl80211_new_key [cfg80211]) from [<c0286f40>] (genl_rcv_msg+0x260/0x2e4)
[ 2693.322972] r8:c6bd2b40 r7:c785f014 r6:bf170540 r5:bf1787d0 r4:00000000
[ 2693.329686] [<c0286ce0>] (genl_rcv_msg) from [<c0286260>] (netlink_rcv_skb+0x60/0xbc)
[ 2693.337478] r10:c6bd2b40 r9:00000000 r8:c6475d84 r7:c68bb000 r6:c0286ce0 r5:c6bd2b40
[ 2693.345306] r4:c785f000
[ 2693.347838] [<c0286200>] (netlink_rcv_skb) from [<c0286ccc>] (genl_rcv+0x28/0x3c)
[ 2693.355277] r7:c68bb000 r6:c6bd2b40 r5:c6bd2b40 r4:c04a42a0
[ 2693.360945] [<c0286ca4>] (genl_rcv) from [<c0285c48>] (netlink_unicast+0x138/0x1f4)
[ 2693.368565] r5:00000048 r4:c7931c00
[ 2693.372143] [<c0285b10>] (netlink_unicast) from [<c02860c8>] (netlink_sendmsg+0x300/0x320)
[ 2693.380367] r9:00000008 r8:00000000 r7:00000048 r6:c6475f4c r5:c68bb000 r4:00000000
[ 2693.388120] [<c0285dc8>] (netlink_sendmsg) from [<c0248de4>] (sock_sendmsg+0x1c/0x2c)
[ 2693.395910] r10:00000000 r9:00000000 r8:00000000 r7:c7503500 r6:c6475e64 r5:00000000
[ 2693.403738] r4:c6475f4c
[ 2693.406267] [<c0248dc8>] (sock_sendmsg) from [<c0249398>] (___sys_sendmsg+0x198/0x228)
[ 2693.414148] [<c0249200>] (___sys_sendmsg) from [<c024a1ec>] (__sys_sendmsg+0x44/0x68)
[ 2693.421935] r10:00000000 r9:c6474000 r8:c00098c4 r7:00000128 r6:00000000 r5:beaf37a0
[ 2693.429762] r4:c7503500
[ 2693.432292] [<c024a1a8>] (__sys_sendmsg) from [<c024a220>] (SyS_sendmsg+0x10/0x14)
[ 2693.439820] r6:b6f201c8 r5:00000000 r4:00000000
[ 2693.444442] [<c024a210>] (SyS_sendmsg) from [<c0009700>] (ret_fast_syscall+0x0/0x3c)
[ 2693.452191] ---[ end trace b29225cb54365624 ]---
[ 2693.456815] brcmfmac: [brcmf_netdev_wait_pend8021x] ifp:c649bc80 brcmf_ifname(ifp):wlan1-1 brcmf_get_pend_8021x_cnt(ifp):1
[ 2693.467821] brcmfmac: [brcmf_netdev_wait_pend8021x] List of pending 802.1x skbs:
[ 2693.475197] brcmfmac: [brcmf_netdev_wait_pend8021x] skb:c6bd2e40 skb->dev:c649b800 skb->dev->name:wlan1-1
[ 2693.486107] brcmfmac: [brcmf_cfg80211_del_key -> __send_key_to_dongle] ifp:c649bc80 brcmf_ifname(ifp):wlan1-1
[ 2694.443471] ------------[ cut here ]------------
[ 2694.448127] WARNING: CPU: 1 PID: 1202 at compat-wireless-2016-06-20/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c:1219 brcmf_netdev_wait_pend8021x+0xbc/0x184 [brcmfmac]()
[ 2694.464159] Modules linked in: pppoe ppp_async iptable_nat brcmfmac pppox ppp_generic nf_nat_ipv4 nf_conntrack_ipv6 nf_conntrack_ipv4 ipt_REJECT ipt_MASQUERADE cfg80211 xt_time xt_tcpudp xt_state xt_nat xt_multiport xt_mark xt_mac xt_limit xt_id xt_conntrack xt_commed
[ 2694.536044] CPU: 1 PID: 1202 Comm: hostapd Tainted: G W 4.4.19 #0
[ 2694.543235] Hardware name: BCM5301X
[ 2694.546708] Backtrace:
[ 2694.549175] [<c001708c>] (dump_backtrace) from [<c0017288>] (show_stack+0x18/0x1c)
[ 2694.556704] r7:000004c3 r6:bf1d0e9c r5:60000013 r4:00000000
[ 2694.562388] [<c0017270>] (show_stack) from [<c017c210>] (dump_stack+0x84/0xa4)
[ 2694.569577] [<c017c18c>] (dump_stack) from [<c0021490>] (warn_slowpath_common+0x8c/0xb8)
[ 2694.577621] r5:00000009 r4:00000000
[ 2694.581195] [<c0021404>] (warn_slowpath_common) from [<c0021560>] (warn_slowpath_null+0x24/0x2c)
[ 2694.589932] r8:c6bd2b40 r7:00000001 r6:c6475b74 r5:00000000 r4:c649bc80
[ 2694.596677] [<c002153c>] (warn_slowpath_null) from [<bf1be578>] (brcmf_netdev_wait_pend8021x+0xbc/0x184 [brcmfmac])
[ 2694.607089] [<bf1be4bc>] (brcmf_netdev_wait_pend8021x [brcmfmac]) from [<bf1ab200>] (brcmf_cfg80211_sched_scan_start+0x460/0x6c0 [brcmfmac])
[ 2694.619629] r8:c6bd2b40 r7:bf1c85fc r6:c649bc80 r5:c04903c8 r4:c72f42f0
[ 2694.626359] [<bf1ab13c>] (brcmf_cfg80211_sched_scan_start [brcmfmac]) from [<bf1ad420>] (brcmf_cfg80211_del_key+0xb0/0xf0 [brcmfmac])
[ 2694.638291] r7:c649bc80 r6:00000002 r5:c72f4254 r4:c72f4000
[ 2694.644015] [<bf1ad370>] (brcmf_cfg80211_del_key [brcmfmac]) from [<bf1608b8>] (nl80211_del_key+0xf4/0x148 [cfg80211])
[ 2694.654655] r7:c715e000 r6:c649b800 r5:c68eb520 r4:bf1ad370
[ 2694.660360] [<bf1607c4>] (nl80211_del_key [cfg80211]) from [<c0286f40>] (genl_rcv_msg+0x260/0x2e4)
[ 2694.669273] r7:c68eb514 r6:bf170554 r5:bf1787d0 r4:00000000
[ 2694.674942] [<c0286ce0>] (genl_rcv_msg) from [<c0286260>] (netlink_rcv_skb+0x60/0xbc)
[ 2694.682735] r10:c6bd2b40 r9:00000000 r8:c6475d84 r7:c68bb000 r6:c0286ce0 r5:c6bd2b40
[ 2694.690563] r4:c68eb500
[ 2694.693094] [<c0286200>] (netlink_rcv_skb) from [<c0286ccc>] (genl_rcv+0x28/0x3c)
[ 2694.700533] r7:c68bb000 r6:c6bd2b40 r5:c6bd2b40 r4:c04a42a0
[ 2694.706202] [<c0286ca4>] (genl_rcv) from [<c0285c48>] (netlink_unicast+0x138/0x1f4)
[ 2694.713821] r5:00000030 r4:c7931c00
[ 2694.717399] [<c0285b10>] (netlink_unicast) from [<c02860c8>] (netlink_sendmsg+0x300/0x320)
[ 2694.725615] r9:00000008 r8:00000000 r7:00000030 r6:c6475f4c r5:c68bb000 r4:00000000
[ 2694.733369] [<c0285dc8>] (netlink_sendmsg) from [<c0248de4>] (sock_sendmsg+0x1c/0x2c)
[ 2694.741158] r10:00000000 r9:00000000 r8:00000000 r7:c7503500 r6:c6475e64 r5:00000000
[ 2694.748986] r4:c6475f4c
[ 2694.751516] [<c0248dc8>] (sock_sendmsg) from [<c0249398>] (___sys_sendmsg+0x198/0x228)
[ 2694.759397] [<c0249200>] (___sys_sendmsg) from [<c024a1ec>] (__sys_sendmsg+0x44/0x68)
[ 2694.767182] r10:00000000 r9:c6474000 r8:c00098c4 r7:00000128 r6:00000000 r5:beaf3770
[ 2694.775010] r4:c7503500
[ 2694.777541] [<c024a1a8>] (__sys_sendmsg) from [<c024a220>] (SyS_sendmsg+0x10/0x14)
[ 2694.785068] r6:b6f201c8 r5:00000000 r4:00000000
[ 2694.789691] [<c024a210>] (SyS_sendmsg) from [<c0009700>] (ret_fast_syscall+0x0/0x3c)
[ 2694.797445] ---[ end trace b29225cb54365625 ]---
[ 2694.802054] brcmfmac: [brcmf_netdev_wait_pend8021x] ifp:c649bc80 brcmf_ifname(ifp):wlan1-1 brcmf_get_pend_8021x_cnt(ifp):1
[ 2694.813060] brcmfmac: [brcmf_netdev_wait_pend8021x] List of pending 802.1x skbs:
[ 2694.820436] brcmfmac: [brcmf_netdev_wait_pend8021x] skb:c6bd2e40 skb->dev:c649b800 skb->dev->name:wlan1-1
[ 2696.497370] brcmfmac: [brcmf_msgbuf_process_txstatus -> __brcmf_txfinalize] Finally finalizing skb:c6bd2e40 skb->dev:c649b800 skb->dev->name:wlan1-1
[ 2715.160649] brcmfmac: [brcmf_cfg80211_add_key -> __send_key_to_dongle] ifp:c649bc80 brcmf_ifname(ifp):wlan1-1
[ 2718.274307] brcmfmac: [brcmf_cfg80211_add_key -> __send_key_to_dongle] ifp:c719d480 brcmf_ifname(ifp):wlan1
[ 2718.607701] brcmfmac: [brcmf_cfg80211_add_key -> __send_key_to_dongle] ifp:c719a480 brcmf_ifname(ifp):wlan0
[ 2718.881713] brcmfmac: [brcmf_cfg80211_add_key -> __send_key_to_dongle] ifp:c649bc80 brcmf_ifname(ifp):wlan1-1
[ 2719.431788] brcmfmac: [brcmf_cfg80211_add_key -> __send_key_to_dongle] ifp:c7ab4480 brcmf_ifname(ifp):wlan0-1
[ 2719.981819] brcmfmac: [brcmf_cfg80211_add_key -> __send_key_to_dongle] ifp:c7b1ec80 brcmf_ifname(ifp):wlan0-2
[ 2719.994262] brcmfmac: [brcmf_cfg80211_add_key -> __send_key_to_dongle] ifp:c6532c80 brcmf_ifname(ifp):wlan1-2
[ 2928.414290] brcmfmac: [brcmf_cfg80211_add_key -> __send_key_to_dongle] ifp:c719d480 brcmf_ifname(ifp):wlan1
[ 2928.679474] brcmfmac: [brcmf_cfg80211_add_key -> __send_key_to_dongle] ifp:c719a480 brcmf_ifname(ifp):wlan0
[ 2929.564278] brcmfmac: [brcmf_cfg80211_add_key -> __send_key_to_dongle] ifp:c7ab4480 brcmf_ifname(ifp):wlan0-1
[ 2930.151747] brcmfmac: [brcmf_cfg80211_add_key -> __send_key_to_dongle] ifp:c6532c80 brcmf_ifname(ifp):wlan1-2
[ 2930.162258] brcmfmac: [brcmf_cfg80211_add_key -> __send_key_to_dongle] ifp:c7b1ec80 brcmf_ifname(ifp):wlan0-2
[ 2932.211271] brcmfmac: [brcmf_cfg80211_add_key -> __send_key_to_dongle] ifp:c649bc80 brcmf_ifname(ifp):wlan1-1
[ 2933.171045] ------------[ cut here ]------------
[ 2933.175701] WARNING: CPU: 0 PID: 1202 at compat-wireless-2016-06-20/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c:1219 brcmf_netdev_wait_pend8021x+0xbc/0x184 [brcmfmac]()
[ 2933.191731] Modules linked in: pppoe ppp_async iptable_nat brcmfmac pppox ppp_generic nf_nat_ipv4 nf_conntrack_ipv6 nf_conntrack_ipv4 ipt_REJECT ipt_MASQUERADE cfg80211 xt_time xt_tcpudp xt_state xt_nat xt_multiport xt_mark xt_mac xt_limit xt_id xt_conntrack xt_commed
[ 2933.263627] CPU: 0 PID: 1202 Comm: hostapd Tainted: G W 4.4.19 #0
[ 2933.270814] Hardware name: BCM5301X
[ 2933.274288] Backtrace:
[ 2933.276756] [<c001708c>] (dump_backtrace) from [<c0017288>] (show_stack+0x18/0x1c)
[ 2933.284285] r7:000004c3 r6:bf1d0e9c r5:60000013 r4:00000000
[ 2933.289969] [<c0017270>] (show_stack) from [<c017c210>] (dump_stack+0x84/0xa4)
[ 2933.297158] [<c017c18c>] (dump_stack) from [<c0021490>] (warn_slowpath_common+0x8c/0xb8)
[ 2933.305210] r5:00000009 r4:00000000
[ 2933.308784] [<c0021404>] (warn_slowpath_common) from [<c0021560>] (warn_slowpath_null+0x24/0x2c)
[ 2933.317521] r8:c72f4148 r7:00000001 r6:c6475b3c r5:00000000 r4:c649bc80
[ 2933.324263] [<c002153c>] (warn_slowpath_null) from [<bf1be578>] (brcmf_netdev_wait_pend8021x+0xbc/0x184 [brcmfmac])
[ 2933.334677] [<bf1be4bc>] (brcmf_netdev_wait_pend8021x [brcmfmac]) from [<bf1ab200>] (brcmf_cfg80211_sched_scan_start+0x460/0x6c0 [brcmfmac])
[ 2933.347218] r8:c72f4148 r7:bf1c8613 r6:c649bc80 r5:c04903c8 r4:c72f4438
[ 2933.353949] [<bf1ab13c>] (brcmf_cfg80211_sched_scan_start [brcmfmac]) from [<bf1ad740>] (brcmf_cfg80211_add_key+0x2e0/0x3dc [brcmfmac])
[ 2933.366061] r7:00000000 r6:c649bc80 r5:c72f4148 r4:00000004
[ 2933.371785] [<bf1ad460>] (brcmf_cfg80211_add_key [brcmfmac]) from [<bf160b48>] (nl80211_new_key+0xfc/0x128 [cfg80211])
[ 2933.382426] r10:00000014 r9:c7966800 r8:c6475ca0 r7:c715e000 r6:c649b800 r5:00000000
[ 2933.390253] r4:bf1ad460
[ 2933.392821] [<bf160a4c>] (nl80211_new_key [cfg80211]) from [<c0286f40>] (genl_rcv_msg+0x260/0x2e4)
[ 2933.401737] r8:c6abd540 r7:c653f214 r6:bf170540 r5:bf1787d0 r4:00000000
[ 2933.408451] [<c0286ce0>] (genl_rcv_msg) from [<c0286260>] (netlink_rcv_skb+0x60/0xbc)
[ 2933.416243] r10:c6abd540 r9:00000000 r8:c6475d84 r7:c68bb000 r6:c0286ce0 r5:c6abd540
[ 2933.424070] r4:c653f200
[ 2933.426602] [<c0286200>] (netlink_rcv_skb) from [<c0286ccc>] (genl_rcv+0x28/0x3c)
[ 2933.434041] r7:c68bb000 r6:c6abd540 r5:c6abd540 r4:c04a42a0
[ 2933.439708] [<c0286ca4>] (genl_rcv) from [<c0285c48>] (netlink_unicast+0x138/0x1f4)
[ 2933.447321] r5:00000048 r4:c7931c00
[ 2933.450898] [<c0285b10>] (netlink_unicast) from [<c02860c8>] (netlink_sendmsg+0x300/0x320)
[ 2933.459123] r9:00000008 r8:00000000 r7:00000048 r6:c6475f4c r5:c68bb000 r4:00000000
[ 2933.466877] [<c0285dc8>] (netlink_sendmsg) from [<c0248de4>] (sock_sendmsg+0x1c/0x2c)
[ 2933.474666] r10:00000000 r9:00000000 r8:00000000 r7:c7503500 r6:c6475e64 r5:00000000
[ 2933.482494] r4:c6475f4c
[ 2933.485022] [<c0248dc8>] (sock_sendmsg) from [<c0249398>] (___sys_sendmsg+0x198/0x228)
[ 2933.492905] [<c0249200>] (___sys_sendmsg) from [<c024a1ec>] (__sys_sendmsg+0x44/0x68)
[ 2933.500690] r10:00000000 r9:c6474000 r8:c00098c4 r7:00000128 r6:00000000 r5:beaf37a0
[ 2933.508518] r4:c7503500
[ 2933.511048] [<c024a1a8>] (__sys_sendmsg) from [<c024a220>] (SyS_sendmsg+0x10/0x14)
[ 2933.518574] r6:b6f201c8 r5:00000000 r4:00000000
[ 2933.523199] [<c024a210>] (SyS_sendmsg) from [<c0009700>] (ret_fast_syscall+0x0/0x3c)
[ 2933.530975] ---[ end trace b29225cb54365626 ]---
[ 2933.535595] brcmfmac: [brcmf_netdev_wait_pend8021x] ifp:c649bc80 brcmf_ifname(ifp):wlan1-1 brcmf_get_pend_8021x_cnt(ifp):2
[ 2933.546602] brcmfmac: [brcmf_netdev_wait_pend8021x] List of pending 802.1x skbs:
[ 2933.553984] brcmfmac: [brcmf_netdev_wait_pend8021x] skb:c7bcb300 skb->dev:c649b800 skb->dev->name:wlan1-1
[ 2933.563523] brcmfmac: [brcmf_netdev_wait_pend8021x] skb:c7bcb240 skb->dev:c649b800 skb->dev->name:wlan1-1
[ 2933.574411] brcmfmac: [brcmf_cfg80211_del_key -> __send_key_to_dongle] ifp:c649bc80 brcmf_ifname(ifp):wlan1-1
[ 2934.531066] ------------[ cut here ]------------
[ 2934.535734] WARNING: CPU: 0 PID: 1202 at compat-wireless-2016-06-20/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c:1219 brcmf_netdev_wait_pend8021x+0xbc/0x184 [brcmfmac]()
[ 2934.551769] Modules linked in: pppoe ppp_async iptable_nat brcmfmac pppox ppp_generic nf_nat_ipv4 nf_conntrack_ipv6 nf_conntrack_ipv4 ipt_REJECT ipt_MASQUERADE cfg80211 xt_time xt_tcpudp xt_state xt_nat xt_multiport xt_mark xt_mac xt_limit xt_id xt_conntrack xt_commed
[ 2934.623666] CPU: 0 PID: 1202 Comm: hostapd Tainted: G W 4.4.19 #0
[ 2934.630855] Hardware name: BCM5301X
[ 2934.634328] Backtrace:
[ 2934.636794] [<c001708c>] (dump_backtrace) from [<c0017288>] (show_stack+0x18/0x1c)
[ 2934.644324] r7:000004c3 r6:bf1d0e9c r5:60000013 r4:00000000
[ 2934.650008] [<c0017270>] (show_stack) from [<c017c210>] (dump_stack+0x84/0xa4)
[ 2934.657197] [<c017c18c>] (dump_stack) from [<c0021490>] (warn_slowpath_common+0x8c/0xb8)
[ 2934.665241] r5:00000009 r4:00000000
[ 2934.668814] [<c0021404>] (warn_slowpath_common) from [<c0021560>] (warn_slowpath_null+0x24/0x2c)
[ 2934.677552] r8:c709be40 r7:00000001 r6:c6475b74 r5:00000000 r4:c649bc80
[ 2934.684294] [<c002153c>] (warn_slowpath_null) from [<bf1be578>] (brcmf_netdev_wait_pend8021x+0xbc/0x184 [brcmfmac])
[ 2934.694708] [<bf1be4bc>] (brcmf_netdev_wait_pend8021x [brcmfmac]) from [<bf1ab200>] (brcmf_cfg80211_sched_scan_start+0x460/0x6c0 [brcmfmac])
[ 2934.707248] r8:c709be40 r7:bf1c85fc r6:c649bc80 r5:c04903c8 r4:c72f42f0
[ 2934.713981] [<bf1ab13c>] (brcmf_cfg80211_sched_scan_start [brcmfmac]) from [<bf1ad420>] (brcmf_cfg80211_del_key+0xb0/0xf0 [brcmfmac])
[ 2934.725919] r7:c649bc80 r6:00000002 r5:c72f4254 r4:c72f4000
[ 2934.731644] [<bf1ad370>] (brcmf_cfg80211_del_key [brcmfmac]) from [<bf1608b8>] (nl80211_del_key+0xf4/0x148 [cfg80211])
[ 2934.742284] r7:c715e000 r6:c649b800 r5:c6906720 r4:bf1ad370
[ 2934.747987] [<bf1607c4>] (nl80211_del_key [cfg80211]) from [<c0286f40>] (genl_rcv_msg+0x260/0x2e4)
[ 2934.756903] r7:c6906714 r6:bf170554 r5:bf1787d0 r4:00000000
[ 2934.762572] [<c0286ce0>] (genl_rcv_msg) from [<c0286260>] (netlink_rcv_skb+0x60/0xbc)
[ 2934.770364] r10:c709be40 r9:00000000 r8:c6475d84 r7:c68bb000 r6:c0286ce0 r5:c709be40
[ 2934.778192] r4:c6906700
[ 2934.780723] [<c0286200>] (netlink_rcv_skb) from [<c0286ccc>] (genl_rcv+0x28/0x3c)
[ 2934.788171] r7:c68bb000 r6:c709be40 r5:c709be40 r4:c04a42a0
[ 2934.793838] [<c0286ca4>] (genl_rcv) from [<c0285c48>] (netlink_unicast+0x138/0x1f4)
[ 2934.801450] r5:00000030 r4:c7931c00
[ 2934.805028] [<c0285b10>] (netlink_unicast) from [<c02860c8>] (netlink_sendmsg+0x300/0x320)
[ 2934.813253] r9:00000008 r8:00000000 r7:00000030 r6:c6475f4c r5:c68bb000 r4:00000000
[ 2934.821006] [<c0285dc8>] (netlink_sendmsg) from [<c0248de4>] (sock_sendmsg+0x1c/0x2c)
[ 2934.828795] r10:00000000 r9:00000000 r8:00000000 r7:c7503500 r6:c6475e64 r5:00000000
[ 2934.836624] r4:c6475f4c
[ 2934.839153] [<c0248dc8>] (sock_sendmsg) from [<c0249398>] (___sys_sendmsg+0x198/0x228)
[ 2934.847034] [<c0249200>] (___sys_sendmsg) from [<c024a1ec>] (__sys_sendmsg+0x44/0x68)
[ 2934.854820] r10:00000000 r9:c6474000 r8:c00098c4 r7:00000128 r6:00000000 r5:beaf3770
[ 2934.862648] r4:c7503500
[ 2934.865179] [<c024a1a8>] (__sys_sendmsg) from [<c024a220>] (SyS_sendmsg+0x10/0x14)
[ 2934.872704] r6:b6f201c8 r5:00000000 r4:00000000
[ 2934.877328] [<c024a210>] (SyS_sendmsg) from [<c0009700>] (ret_fast_syscall+0x0/0x3c)
[ 2934.885107] ---[ end trace b29225cb54365627 ]---
[ 2934.889718] brcmfmac: [brcmf_netdev_wait_pend8021x] ifp:c649bc80 brcmf_ifname(ifp):wlan1-1 brcmf_get_pend_8021x_cnt(ifp):2
[ 2934.900737] brcmfmac: [brcmf_netdev_wait_pend8021x] List of pending 802.1x skbs:
[ 2934.908123] brcmfmac: [brcmf_netdev_wait_pend8021x] skb:c7bcb300 skb->dev:c649b800 skb->dev->name:wlan1-1
[ 2934.917659] brcmfmac: [brcmf_netdev_wait_pend8021x] skb:c7bcb240 skb->dev:c649b800 skb->dev->name:wlan1-1
[ 2934.927268] brcmfmac: [brcmf_msgbuf_process_txstatus -> __brcmf_txfinalize] Finally finalizing skb:c7bcb300 skb->dev:c649b800 skb->dev->name:wlan1-1
[ 2934.940547] brcmfmac: [brcmf_msgbuf_process_txstatus -> __brcmf_txfinalize] Finally finalizing skb:c7bcb240 skb->dev:c649b800 skb->dev->name:wlan1-1
[ 2958.431826] brcmfmac: [brcmf_cfg80211_add_key -> __send_key_to_dongle] ifp:c719d480 brcmf_ifname(ifp):wlan1
[ 2958.689224] brcmfmac: [brcmf_cfg80211_add_key -> __send_key_to_dongle] ifp:c719a480 brcmf_ifname(ifp):wlan0
[ 2958.983312] brcmfmac: [brcmf_cfg80211_add_key -> __send_key_to_dongle] ifp:c649bc80 brcmf_ifname(ifp):wlan1-1
[ 2959.584290] brcmfmac: [brcmf_cfg80211_add_key -> __send_key_to_dongle] ifp:c7ab4480 brcmf_ifname(ifp):wlan0-1
[ 2960.174354] brcmfmac: [brcmf_cfg80211_add_key -> __send_key_to_dongle] ifp:c7b1ec80 brcmf_ifname(ifp):wlan0-2
[ 2960.185643] brcmfmac: [brcmf_cfg80211_add_key -> __send_key_to_dongle] ifp:c6532c80 brcmf_ifname(ifp):wlan1-2
[ 3198.584369] brcmfmac: [brcmf_cfg80211_add_key -> __send_key_to_dongle] ifp:c719d480 brcmf_ifname(ifp):wlan1
[ 3198.759755] brcmfmac: [brcmf_cfg80211_add_key -> __send_key_to_dongle] ifp:c719a480 brcmf_ifname(ifp):wlan0
[ 3199.734358] brcmfmac: [brcmf_cfg80211_add_key -> __send_key_to_dongle] ifp:c7ab4480 brcmf_ifname(ifp):wlan0-1
[ 3200.374309] brcmfmac: [brcmf_cfg80211_add_key -> __send_key_to_dongle] ifp:c7b1ec80 brcmf_ifname(ifp):wlan0-2
[ 3200.384905] brcmfmac: [brcmf_cfg80211_add_key -> __send_key_to_dongle] ifp:c6532c80 brcmf_ifname(ifp):wlan1-2
[ 3202.291309] brcmfmac: [brcmf_cfg80211_add_key -> __send_key_to_dongle] ifp:c649bc80 brcmf_ifname(ifp):wlan1-1
[ 3203.251121] ------------[ cut here ]------------
[ 3203.255787] WARNING: CPU: 0 PID: 1202 at compat-wireless-2016-06-20/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c:1219 brcmf_netdev_wait_pend8021x+0xbc/0x184 [brcmfmac]()
[ 3203.271827] Modules linked in: pppoe ppp_async iptable_nat brcmfmac pppox ppp_generic nf_nat_ipv4 nf_conntrack_ipv6 nf_conntrack_ipv4 ipt_REJECT ipt_MASQUERADE cfg80211 xt_time xt_tcpudp xt_state xt_nat xt_multiport xt_mark xt_mac xt_limit xt_id xt_conntrack xt_commed
[ 3203.343719] CPU: 0 PID: 1202 Comm: hostapd Tainted: G W 4.4.19 #0
[ 3203.350908] Hardware name: BCM5301X
[ 3203.354381] Backtrace:
[ 3203.356849] [<c001708c>] (dump_backtrace) from [<c0017288>] (show_stack+0x18/0x1c)
[ 3203.364378] r7:000004c3 r6:bf1d0e9c r5:60000013 r4:00000000
[ 3203.370062] [<c0017270>] (show_stack) from [<c017c210>] (dump_stack+0x84/0xa4)
[ 3203.377259] [<c017c18c>] (dump_stack) from [<c0021490>] (warn_slowpath_common+0x8c/0xb8)
[ 3203.385304] r5:00000009 r4:00000000
[ 3203.388877] [<c0021404>] (warn_slowpath_common) from [<c0021560>] (warn_slowpath_null+0x24/0x2c)
[ 3203.397614] r8:c72f40a4 r7:00000001 r6:c6475b3c r5:00000000 r4:c649bc80
[ 3203.404355] [<c002153c>] (warn_slowpath_null) from [<bf1be578>] (brcmf_netdev_wait_pend8021x+0xbc/0x184 [brcmfmac])
[ 3203.414771] [<bf1be4bc>] (brcmf_netdev_wait_pend8021x [brcmfmac]) from [<bf1ab200>] (brcmf_cfg80211_sched_scan_start+0x460/0x6c0 [brcmfmac])
[ 3203.427311] r8:c72f40a4 r7:bf1c8613 r6:c649bc80 r5:c04903c8 r4:c72f4394
[ 3203.434043] [<bf1ab13c>] (brcmf_cfg80211_sched_scan_start [brcmfmac]) from [<bf1ad740>] (brcmf_cfg80211_add_key+0x2e0/0x3dc [brcmfmac])
[ 3203.446154] r7:00000000 r6:c649bc80 r5:c72f40a4 r4:00000004
[ 3203.451877] [<bf1ad460>] (brcmf_cfg80211_add_key [brcmfmac]) from [<bf160b48>] (nl80211_new_key+0xfc/0x128 [cfg80211])
[ 3203.462519] r10:00000014 r9:c7966800 r8:c6475ca0 r7:c715e000 r6:c649b800 r5:00000000
[ 3203.470346] r4:bf1ad460
[ 3203.472915] [<bf160a4c>] (nl80211_new_key [cfg80211]) from [<c0286f40>] (genl_rcv_msg+0x260/0x2e4)
[ 3203.481829] r8:c6901300 r7:c653f614 r6:bf170540 r5:bf1787d0 r4:00000000
[ 3203.488544] [<c0286ce0>] (genl_rcv_msg) from [<c0286260>] (netlink_rcv_skb+0x60/0xbc)
[ 3203.496336] r10:c6901300 r9:00000000 r8:c6475d84 r7:c68bb000 r6:c0286ce0 r5:c6901300
[ 3203.504163] r4:c653f600
[ 3203.506695] [<c0286200>] (netlink_rcv_skb) from [<c0286ccc>] (genl_rcv+0x28/0x3c)
[ 3203.514142] r7:c68bb000 r6:c6901300 r5:c6901300 r4:c04a42a0
[ 3203.519810] [<c0286ca4>] (genl_rcv) from [<c0285c48>] (netlink_unicast+0x138/0x1f4)
[ 3203.527423] r5:00000048 r4:c7931c00
[ 3203.531000] [<c0285b10>] (netlink_unicast) from [<c02860c8>] (netlink_sendmsg+0x300/0x320)
[ 3203.539224] r9:00000008 r8:00000000 r7:00000048 r6:c6475f4c r5:c68bb000 r4:00000000
[ 3203.546978] [<c0285dc8>] (netlink_sendmsg) from [<c0248de4>] (sock_sendmsg+0x1c/0x2c)
[ 3203.554768] r10:00000000 r9:00000000 r8:00000000 r7:c7503500 r6:c6475e64 r5:00000000
[ 3203.562596] r4:c6475f4c
[ 3203.565125] [<c0248dc8>] (sock_sendmsg) from [<c0249398>] (___sys_sendmsg+0x198/0x228)
[ 3203.573006] [<c0249200>] (___sys_sendmsg) from [<c024a1ec>] (__sys_sendmsg+0x44/0x68)
[ 3203.580791] r10:00000000 r9:c6474000 r8:c00098c4 r7:00000128 r6:00000000 r5:beaf37a0
[ 3203.588619] r4:c7503500
[ 3203.591150] [<c024a1a8>] (__sys_sendmsg) from [<c024a220>] (SyS_sendmsg+0x10/0x14)
[ 3203.598676] r6:b6f201c8 r5:00000000 r4:00000000
[ 3203.603300] [<c024a210>] (SyS_sendmsg) from [<c0009700>] (ret_fast_syscall+0x0/0x3c)
[ 3203.611046] ---[ end trace b29225cb54365628 ]---
[ 3203.615668] brcmfmac: [brcmf_netdev_wait_pend8021x] ifp:c649bc80 brcmf_ifname(ifp):wlan1-1 brcmf_get_pend_8021x_cnt(ifp):3
[ 3203.626670] brcmfmac: [brcmf_netdev_wait_pend8021x] List of pending 802.1x skbs:
[ 3203.634050] brcmfmac: [brcmf_netdev_wait_pend8021x] skb:c6901180 skb->dev:c649b800 skb->dev->name:wlan1-1
[ 3203.643591] brcmfmac: [brcmf_netdev_wait_pend8021x] skb:c6901f00 skb->dev:c649b800 skb->dev->name:wlan1-1
[ 3203.653126] brcmfmac: [brcmf_netdev_wait_pend8021x] skb:c6901b40 skb->dev:c649b800 skb->dev->name:wlan1-1
[ 3203.666634] brcmfmac: [brcmf_cfg80211_del_key -> __send_key_to_dongle] ifp:c649bc80 brcmf_ifname(ifp):wlan1-1
[ 3204.621117] ------------[ cut here ]------------
[ 3204.625777] WARNING: CPU: 0 PID: 1202 at compat-wireless-2016-06-20/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c:1219 brcmf_netdev_wait_pend8021x+0xbc/0x184 [brcmfmac]()
[ 3204.641806] Modules linked in: pppoe ppp_async iptable_nat brcmfmac pppox ppp_generic nf_nat_ipv4 nf_conntrack_ipv6 nf_conntrack_ipv4 ipt_REJECT ipt_MASQUERADE cfg80211 xt_time xt_tcpudp xt_state xt_nat xt_multiport xt_mark xt_mac xt_limit xt_id xt_conntrack xt_commed
[ 3204.713721] CPU: 0 PID: 1202 Comm: hostapd Tainted: G W 4.4.19 #0
[ 3204.720908] Hardware name: BCM5301X
[ 3204.724374] Backtrace:
[ 3204.726840] [<c001708c>] (dump_backtrace) from [<c0017288>] (show_stack+0x18/0x1c)
[ 3204.734370] r7:000004c3 r6:bf1d0e9c r5:60000013 r4:00000000
[ 3204.740054] [<c0017270>] (show_stack) from [<c017c210>] (dump_stack+0x84/0xa4)
[ 3204.747243] [<c017c18c>] (dump_stack) from [<c0021490>] (warn_slowpath_common+0x8c/0xb8)
[ 3204.755287] r5:00000009 r4:00000000
[ 3204.758861] [<c0021404>] (warn_slowpath_common) from [<c0021560>] (warn_slowpath_null+0x24/0x2c)
[ 3204.767600] r8:c6709b40 r7:00000001 r6:c6475b74 r5:00000000 r4:c649bc80
[ 3204.774337] [<c002153c>] (warn_slowpath_null) from [<bf1be578>] (brcmf_netdev_wait_pend8021x+0xbc/0x184 [brcmfmac])
[ 3204.784755] [<bf1be4bc>] (brcmf_netdev_wait_pend8021x [brcmfmac]) from [<bf1ab200>] (brcmf_cfg80211_sched_scan_start+0x460/0x6c0 [brcmfmac])
[ 3204.797295] r8:c6709b40 r7:bf1c85fc r6:c649bc80 r5:c04903c8 r4:c72f42f0
[ 3204.804026] [<bf1ab13c>] (brcmf_cfg80211_sched_scan_start [brcmfmac]) from [<bf1ad420>] (brcmf_cfg80211_del_key+0xb0/0xf0 [brcmfmac])
[ 3204.815966] r7:c649bc80 r6:00000002 r5:c72f4254 r4:c72f4000
[ 3204.821689] [<bf1ad370>] (brcmf_cfg80211_del_key [brcmfmac]) from [<bf1608b8>] (nl80211_del_key+0xf4/0x148 [cfg80211])
[ 3204.832330] r7:c715e000 r6:c649b800 r5:c6906e20 r4:bf1ad370
[ 3204.838033] [<bf1607c4>] (nl80211_del_key [cfg80211]) from [<c0286f40>] (genl_rcv_msg+0x260/0x2e4)
[ 3204.846949] r7:c6906e14 r6:bf170554 r5:bf1787d0 r4:00000000
[ 3204.852618] [<c0286ce0>] (genl_rcv_msg) from [<c0286260>] (netlink_rcv_skb+0x60/0xbc)
[ 3204.860410] r10:c6709b40 r9:00000000 r8:c6475d84 r7:c68bb000 r6:c0286ce0 r5:c6709b40
[ 3204.868238] r4:c6906e00
[ 3204.870770] [<c0286200>] (netlink_rcv_skb) from [<c0286ccc>] (genl_rcv+0x28/0x3c)
[ 3204.878217] r7:c68bb000 r6:c6709b40 r5:c6709b40 r4:c04a42a0
[ 3204.883886] [<c0286ca4>] (genl_rcv) from [<c0285c48>] (netlink_unicast+0x138/0x1f4)
[ 3204.891505] r5:00000030 r4:c7931c00
[ 3204.895083] [<c0285b10>] (netlink_unicast) from [<c02860c8>] (netlink_sendmsg+0x300/0x320)
[ 3204.903307] r9:00000008 r8:00000000 r7:00000030 r6:c6475f4c r5:c68bb000 r4:00000000
[ 3204.911061] [<c0285dc8>] (netlink_sendmsg) from [<c0248de4>] (sock_sendmsg+0x1c/0x2c)
[ 3204.918851] r10:00000000 r9:00000000 r8:00000000 r7:c7503500 r6:c6475e64 r5:00000000
[ 3204.926678] r4:c6475f4c
[ 3204.929208] [<c0248dc8>] (sock_sendmsg) from [<c0249398>] (___sys_sendmsg+0x198/0x228)
[ 3204.937088] [<c0249200>] (___sys_sendmsg) from [<c024a1ec>] (__sys_sendmsg+0x44/0x68)
[ 3204.944874] r10:00000000 r9:c6474000 r8:c00098c4 r7:00000128 r6:00000000 r5:beaf3770
[ 3204.952702] r4:c7503500
[ 3204.955233] [<c024a1a8>] (__sys_sendmsg) from [<c024a220>] (SyS_sendmsg+0x10/0x14)
[ 3204.962760] r6:b6f201c8 r5:00000000 r4:00000000
[ 3204.967382] [<c024a210>] (SyS_sendmsg) from [<c0009700>] (ret_fast_syscall+0x0/0x3c)
[ 3204.975127] ---[ end trace b29225cb54365629 ]---
[ 3204.979728] brcmfmac: [brcmf_netdev_wait_pend8021x] ifp:c649bc80 brcmf_ifname(ifp):wlan1-1 brcmf_get_pend_8021x_cnt(ifp):3
[ 3204.990733] brcmfmac: [brcmf_netdev_wait_pend8021x] List of pending 802.1x skbs:
[ 3204.998108] brcmfmac: [brcmf_netdev_wait_pend8021x] skb:c6901180 skb->dev:c649b800 skb->dev->name:wlan1-1
[ 3205.007650] brcmfmac: [brcmf_netdev_wait_pend8021x] skb:c6901f00 skb->dev:c649b800 skb->dev->name:wlan1-1
[ 3205.017190] brcmfmac: [brcmf_netdev_wait_pend8021x] skb:c6901b40 skb->dev:c649b800 skb->dev->name:wlan1-1
[ 3205.026823] brcmfmac: [brcmf_msgbuf_process_txstatus -> __brcmf_txfinalize] Finally finalizing skb:c6901180 skb->dev:c649b800 skb->dev->name:wlan1-1
[ 3205.040104] brcmfmac: [brcmf_msgbuf_process_txstatus -> __brcmf_txfinalize] Finally finalizing skb:c6901f00 skb->dev:c649b800 skb->dev->name:wlan1-1
[ 3205.053367] brcmfmac: [brcmf_msgbuf_process_txstatus -> __brcmf_txfinalize] Finally finalizing skb:c6901b40 skb->dev:c649b800 skb->dev->name:wlan1-1
[ 3228.604387] brcmfmac: [brcmf_cfg80211_add_key -> __send_key_to_dongle] ifp:c719d480 brcmf_ifname(ifp):wlan1
[ 3228.769758] brcmfmac: [brcmf_cfg80211_add_key -> __send_key_to_dongle] ifp:c719a480 brcmf_ifname(ifp):wlan0
[ 3229.737659] brcmfmac: [brcmf_cfg80211_add_key -> __send_key_to_dongle] ifp:c649bc80 brcmf_ifname(ifp):wlan1-1
[ 3229.751855] brcmfmac: [brcmf_cfg80211_add_key -> __send_key_to_dongle] ifp:c7ab4480 brcmf_ifname(ifp):wlan0-1
[ 3230.401808] brcmfmac: [brcmf_cfg80211_add_key -> __send_key_to_dongle] ifp:c7b1ec80 brcmf_ifname(ifp):wlan0-2
[ 3230.412403] brcmfmac: [brcmf_cfg80211_add_key -> __send_key_to_dongle] ifp:c6532c80 brcmf_ifname(ifp):wlan1-2
I'm pretty sure I have CONSOLE working as restarting wifi gives me some
messages:
[ 3604.964790] brcmfmac: CONSOLE: 003590.895 wl0: wlc_enable_probe_req: state down, deferring setting of host flags
[ 3607.429608] brcmfmac: CONSOLE: 003595.110 wl0: wlc_enable_probe_req: state down, deferring setting of host flags
[ 3609.430295] brcmfmac: CONSOLE: 003595.359 wl0: bc/mc deauth_reason on STA BSS?
[ 3609.623067] brcmfmac: CONSOLE: 003595.551 wl0: wlc_enable_probe_req: state down, deferring setting of host flags
[ 3609.739680] brcmfmac: CONSOLE: 003595.587 wl0: wlc_enable_probe_req: state down, deferring setting of host flags
^ permalink raw reply
* [PATCH] mac80211: fix possible out-of-bounds access
From: Johannes Berg @ 2016-09-14 7:30 UTC (permalink / raw)
To: linux-wireless; +Cc: Johannes Berg
From: Johannes Berg <johannes.berg@intel.com>
In the unlikely situation that the supplicant has negotiated
admission for the background AC (which it has no reason to as
it's not supposed to be requiring admission control to start
with, and we'd ignore such a requirement anyway), the loop
here may terminate with non_acm_ac == 4, which leads to an
array overrun.
Check this explicitly just for completeness.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
---
net/mac80211/mlme.c | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c
index 8d426f637f58..7486f2dab4ba 100644
--- a/net/mac80211/mlme.c
+++ b/net/mac80211/mlme.c
@@ -1672,11 +1672,15 @@ __ieee80211_sta_handle_tspec_ac_params(struct ieee80211_sub_if_data *sdata)
non_acm_ac++)
if (!(sdata->wmm_acm & BIT(7 - 2 * non_acm_ac)))
break;
- /* The loop will result in using BK even if it requires
- * admission control, such configuration makes no sense
- * and we have to transmit somehow - the AC selection
- * does the same thing.
+ /* Usually the loop will result in using BK even if it
+ * requires admission control, but such a configuration
+ * makes no sense and we have to transmit somehow - the
+ * AC selection does the same thing.
+ * If we started out trying to downgrade from BK, then
+ * the extra condition here might be needed.
*/
+ if (non_acm_ac >= IEEE80211_NUM_ACS)
+ non_acm_ac = IEEE80211_AC_BK;
if (drv_conf_tx(local, sdata, ac,
&sdata->tx_conf[non_acm_ac]))
sdata_err(sdata,
--
2.8.1
^ permalink raw reply related
* [PATCH] mac80211: fix scan completed tracing
From: Johannes Berg @ 2016-09-14 7:39 UTC (permalink / raw)
To: linux-wireless; +Cc: Johannes Berg
From: Johannes Berg <johannes.berg@intel.com>
Passing the 'info' pointer where a 'info->aborted' is expected will
always lead to tracing to erroneously record that the scan was aborted,
fix that by passing the correct info->aborted. The remaining data will
be collected in cfg80211, so I haven't duplicated it here.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
---
net/mac80211/scan.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/net/mac80211/scan.c b/net/mac80211/scan.c
index 070b40f15850..23d8ac829279 100644
--- a/net/mac80211/scan.c
+++ b/net/mac80211/scan.c
@@ -420,7 +420,7 @@ void ieee80211_scan_completed(struct ieee80211_hw *hw,
{
struct ieee80211_local *local = hw_to_local(hw);
- trace_api_scan_completed(local, info);
+ trace_api_scan_completed(local, info->aborted);
set_bit(SCAN_COMPLETED, &local->scanning);
if (info->aborted)
--
2.8.1
^ permalink raw reply related
* [PATCH] mac80211: check skb_linearize() return value
From: Johannes Berg @ 2016-09-14 7:45 UTC (permalink / raw)
To: linux-wireless; +Cc: Felix Fietkau, Johannes Berg
From: Johannes Berg <johannes.berg@intel.com>
The A-MSDU TX code (within TXQs) didn't always check the return value
of skb_linearize() properly, resulting in potentially passing a frag-
list SKB down to the driver even when it said it can't handle it. Fix
that.
Fixes: 6e0456b545456 ("mac80211: add A-MSDU tx support")
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
---
net/mac80211/tx.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c
index cc8e95554b48..6a46b36149a4 100644
--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
@@ -1515,8 +1515,12 @@ out:
spin_unlock_bh(&fq->lock);
if (skb && skb_has_frag_list(skb) &&
- !ieee80211_hw_check(&local->hw, TX_FRAG_LIST))
- skb_linearize(skb);
+ !ieee80211_hw_check(&local->hw, TX_FRAG_LIST)) {
+ if (skb_linearize(skb)) {
+ kfree(skb);
+ return NULL;
+ }
+ }
return skb;
}
--
2.8.1
^ permalink raw reply related
* [PATCH 2/5] nl80211: always check nla_put* return values
From: Johannes Berg @ 2016-09-14 8:11 UTC (permalink / raw)
To: linux-wireless; +Cc: Johannes Berg
In-Reply-To: <1473840718-5605-1-git-send-email-johannes@sipsolutions.net>
From: Johannes Berg <johannes.berg@intel.com>
A few instances were found where we didn't check them, add the
missing checks even though they'll probably never trigger as
the message should be large enough here.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
---
net/wireless/nl80211.c | 13 ++++++++-----
1 file changed, 8 insertions(+), 5 deletions(-)
diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c
index 4c8cc743ae7d..ec024cb90faa 100644
--- a/net/wireless/nl80211.c
+++ b/net/wireless/nl80211.c
@@ -9444,8 +9444,10 @@ static int nl80211_send_wowlan_nd(struct sk_buff *msg,
if (!freqs)
return -ENOBUFS;
- for (i = 0; i < req->n_channels; i++)
- nla_put_u32(msg, i, req->channels[i]->center_freq);
+ for (i = 0; i < req->n_channels; i++) {
+ if (nla_put_u32(msg, i, req->channels[i]->center_freq))
+ return -ENOBUFS;
+ }
nla_nest_end(msg, freqs);
@@ -9459,9 +9461,10 @@ static int nl80211_send_wowlan_nd(struct sk_buff *msg,
if (!match)
return -ENOBUFS;
- nla_put(msg, NL80211_SCHED_SCAN_MATCH_ATTR_SSID,
- req->match_sets[i].ssid.ssid_len,
- req->match_sets[i].ssid.ssid);
+ if (nla_put(msg, NL80211_SCHED_SCAN_MATCH_ATTR_SSID,
+ req->match_sets[i].ssid.ssid_len,
+ req->match_sets[i].ssid.ssid))
+ return -ENOBUFS;
nla_nest_end(msg, match);
}
nla_nest_end(msg, matches);
--
2.8.1
^ permalink raw reply related
* [PATCH 3/5] mac80211: remove unused assignment
From: Johannes Berg @ 2016-09-14 8:11 UTC (permalink / raw)
To: linux-wireless; +Cc: Johannes Berg
In-Reply-To: <1473840718-5605-1-git-send-email-johannes@sipsolutions.net>
From: Johannes Berg <johannes.berg@intel.com>
The next line overwrites this assignment, so remove it; there's
no real value in using it for the next assignment either.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
---
net/mac80211/util.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/net/mac80211/util.c b/net/mac80211/util.c
index e777c2a6568f..b6865d884487 100644
--- a/net/mac80211/util.c
+++ b/net/mac80211/util.c
@@ -2555,7 +2555,6 @@ int ieee80211_add_srates_ie(struct ieee80211_sub_if_data *sdata,
if (need_basic && basic_rates & BIT(i))
basic = 0x80;
- rate = sband->bitrates[i].bitrate;
rate = DIV_ROUND_UP(sband->bitrates[i].bitrate,
5 * (1 << shift));
*pos++ = basic | (u8) rate;
--
2.8.1
^ permalink raw reply related
* [PATCH 1/5] nl80211: always check nla_nest_start() return value
From: Johannes Berg @ 2016-09-14 8:11 UTC (permalink / raw)
To: linux-wireless; +Cc: Johannes Berg
From: Johannes Berg <johannes.berg@intel.com>
If the message got full during nla_nest_start(), it can return
NULL. None of the cases here seem like that can really happen,
but check the return value nonetheless.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
---
net/wireless/nl80211.c | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c
index dc81c5b91f61..4c8cc743ae7d 100644
--- a/net/wireless/nl80211.c
+++ b/net/wireless/nl80211.c
@@ -8013,6 +8013,8 @@ __cfg80211_alloc_vendor_skb(struct cfg80211_registered_device *rdev,
}
data = nla_nest_start(skb, attr);
+ if (!data)
+ goto nla_put_failure;
((void **)skb->cb)[0] = rdev;
((void **)skb->cb)[1] = hdr;
@@ -9449,8 +9451,14 @@ static int nl80211_send_wowlan_nd(struct sk_buff *msg,
if (req->n_match_sets) {
matches = nla_nest_start(msg, NL80211_ATTR_SCHED_SCAN_MATCH);
+ if (!matches)
+ return -ENOBUFS;
+
for (i = 0; i < req->n_match_sets; i++) {
match = nla_nest_start(msg, i);
+ if (!match)
+ return -ENOBUFS;
+
nla_put(msg, NL80211_SCHED_SCAN_MATCH_ATTR_SSID,
req->match_sets[i].ssid.ssid_len,
req->match_sets[i].ssid.ssid);
@@ -9465,6 +9473,9 @@ static int nl80211_send_wowlan_nd(struct sk_buff *msg,
for (i = 0; i < req->n_scan_plans; i++) {
scan_plan = nla_nest_start(msg, i + 1);
+ if (!scan_plan)
+ return -ENOBUFS;
+
if (!scan_plan ||
nla_put_u32(msg, NL80211_SCHED_SCAN_PLAN_INTERVAL,
req->scan_plans[i].interval) ||
--
2.8.1
^ permalink raw reply related
* [PATCH 4/5] mac80211: remove pointless chanctx NULL check
From: Johannes Berg @ 2016-09-14 8:11 UTC (permalink / raw)
To: linux-wireless; +Cc: Johannes Berg
In-Reply-To: <1473840718-5605-1-git-send-email-johannes@sipsolutions.net>
From: Johannes Berg <johannes.berg@intel.com>
If chanctx is derived as container_of() from a non-NULL pointer,
it can't ever be NULL. Since we checked conf before, that's true
here, so remove the useless NULL check.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
---
net/mac80211/cfg.c | 4 ----
1 file changed, 4 deletions(-)
diff --git a/net/mac80211/cfg.c b/net/mac80211/cfg.c
index 5d4afead804e..e29ff5749944 100644
--- a/net/mac80211/cfg.c
+++ b/net/mac80211/cfg.c
@@ -2961,10 +2961,6 @@ __ieee80211_channel_switch(struct wiphy *wiphy, struct net_device *dev,
}
chanctx = container_of(conf, struct ieee80211_chanctx, conf);
- if (!chanctx) {
- err = -EBUSY;
- goto out;
- }
ch_switch.timestamp = 0;
ch_switch.device_timestamp = 0;
--
2.8.1
^ permalink raw reply related
* [PATCH 5/5] mac80211: remove sta_remove_debugfs driver callback
From: Johannes Berg @ 2016-09-14 8:11 UTC (permalink / raw)
To: linux-wireless; +Cc: Johannes Berg
In-Reply-To: <1473840718-5605-1-git-send-email-johannes@sipsolutions.net>
From: Johannes Berg <johannes.berg@intel.com>
No drivers implement this, relying either on the recursive
directory removal to remove their debugfs, or not having any
to start with. Remove the dead driver callback.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
---
include/net/mac80211.h | 11 ++---------
net/mac80211/debugfs_sta.c | 4 ----
net/mac80211/driver-ops.h | 15 ---------------
3 files changed, 2 insertions(+), 28 deletions(-)
diff --git a/include/net/mac80211.h b/include/net/mac80211.h
index 08bac23c8de1..d9c8ccd6b4e6 100644
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -3101,11 +3101,8 @@ enum ieee80211_reconfig_type {
*
* @sta_add_debugfs: Drivers can use this callback to add debugfs files
* when a station is added to mac80211's station list. This callback
- * and @sta_remove_debugfs should be within a CONFIG_MAC80211_DEBUGFS
- * conditional. This callback can sleep.
- *
- * @sta_remove_debugfs: Remove the debugfs files which were added using
- * @sta_add_debugfs. This callback can sleep.
+ * should be within a CONFIG_MAC80211_DEBUGFS conditional. This
+ * callback can sleep.
*
* @sta_notify: Notifies low level driver about power state transition of an
* associated station, AP, IBSS/WDS/mesh peer etc. For a VIF operating
@@ -3501,10 +3498,6 @@ struct ieee80211_ops {
struct ieee80211_vif *vif,
struct ieee80211_sta *sta,
struct dentry *dir);
- void (*sta_remove_debugfs)(struct ieee80211_hw *hw,
- struct ieee80211_vif *vif,
- struct ieee80211_sta *sta,
- struct dentry *dir);
#endif
void (*sta_notify)(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
enum sta_notify_cmd, struct ieee80211_sta *sta);
diff --git a/net/mac80211/debugfs_sta.c b/net/mac80211/debugfs_sta.c
index fb2693582e40..a2fcdb47a0e6 100644
--- a/net/mac80211/debugfs_sta.c
+++ b/net/mac80211/debugfs_sta.c
@@ -544,10 +544,6 @@ void ieee80211_sta_debugfs_add(struct sta_info *sta)
void ieee80211_sta_debugfs_remove(struct sta_info *sta)
{
- struct ieee80211_local *local = sta->local;
- struct ieee80211_sub_if_data *sdata = sta->sdata;
-
- drv_sta_remove_debugfs(local, sdata, &sta->sta, sta->debugfs_dir);
debugfs_remove_recursive(sta->debugfs_dir);
sta->debugfs_dir = NULL;
}
diff --git a/net/mac80211/driver-ops.h b/net/mac80211/driver-ops.h
index c39f93b48791..fe35a1c0dc86 100644
--- a/net/mac80211/driver-ops.h
+++ b/net/mac80211/driver-ops.h
@@ -499,21 +499,6 @@ static inline void drv_sta_add_debugfs(struct ieee80211_local *local,
local->ops->sta_add_debugfs(&local->hw, &sdata->vif,
sta, dir);
}
-
-static inline void drv_sta_remove_debugfs(struct ieee80211_local *local,
- struct ieee80211_sub_if_data *sdata,
- struct ieee80211_sta *sta,
- struct dentry *dir)
-{
- might_sleep();
-
- sdata = get_bss_sdata(sdata);
- check_sdata_in_driver(sdata);
-
- if (local->ops->sta_remove_debugfs)
- local->ops->sta_remove_debugfs(&local->hw, &sdata->vif,
- sta, dir);
-}
#endif
static inline void drv_sta_pre_rcu_remove(struct ieee80211_local *local,
--
2.8.1
^ permalink raw reply related
* Re: AMPDU stalls with brcmfmac4366b-pcie.bin triggering WARNINGs
From: Rafał Miłecki @ 2016-09-14 8:43 UTC (permalink / raw)
To: Hante Meuleman, Arend van Spriel, brcm80211-dev-list; +Cc: linux-wireless
In-Reply-To: <20160914054528.28717-1-zajec5@gmail.com>
On 09/14/2016 07:45 AM, Rafał Miłecki wrote:
> First of all, I can't reproduce these problems reliably. One evening I
> got WARNINGs one by one and I could work on my debugging patch easily.
> Yesterday when I got my patch complete, it took me 10+ hours to get a
> single WARNING.
I think I found a way to reproduce this more reliably! It seems doing a static
transfer from few devices (I use iperf) doesn't matter much. So this is what I
do to get WARNINGs on my DIR-885L:
1) Notebook sending data with iperf to DIR-885L
2) iPad playing YouTube using SR400ac on the same channel
3) I take my 2 smartphones to the next room and keep switching between 2 out of
3 SSIDs of DIR-885L. Once connected I run iperf for a bit randomly.
It seems I can get a WARNINGs every few minutes this way.
> Enough talking, please take a look at my debugging log. Does it give you
> enough hint? Could you review/debug firmware's code responsible for
> AMPDU? FWIW Merlin users (so no brcmfmac invovled) also saw this [1].
I grabbed more logs I can share now. I believe they show the same: stall and
warning soon after ampdu_dbg/wlc_ampdu_watchdog. I'm attaching them anyway.
Please note that calls to __send_key_to_dongle happen all the time, I'm
including them in logs for a context. You can treat them as an indicator that
things are going well.
It's ampdu_dbg + wlc_ampdu_watchdog that lead up to the WARNINGs.
[ 1213.809245] brcmfmac: [brcmf_cfg80211_add_key -> __send_key_to_dongle] ifp:c695bc80 brcmf_ifname(ifp):wlan1
[ 1213.819946] brcmfmac: [brcmf_cfg80211_add_key -> __send_key_to_dongle] ifp:c780ec80 brcmf_ifname(ifp):wlan0
[ 1214.029819] brcmfmac: [brcmf_cfg80211_add_key -> __send_key_to_dongle] ifp:c64c1c80 brcmf_ifname(ifp):wlan0-1
[ 1214.359083] brcmfmac: [brcmf_cfg80211_add_key -> __send_key_to_dongle] ifp:c65a0480 brcmf_ifname(ifp):wlan1-2
[ 1214.389756] brcmfmac: [brcmf_cfg80211_add_key -> __send_key_to_dongle] ifp:c64c5c80 brcmf_ifname(ifp):wlan0-2
[ 1215.581850] brcmfmac: CONSOLE: 027945.032 ampdu_dbg: wl0.2 scb:00343a08 tid:0
[ 1215.589269] brcmfmac: CONSOLE: 027945.032 ampdu_dbg: wl0.2 dead_cnt 2 tx_in_transit 1 psm_mux 0xfff0 aqmqmap 0x0x101 aqmfifo_status 0x0x1a fifordy 0x2 cpbusy 0x0
[ 1215.603896] brcmfmac: CONSOLE: 027945.032 ampdu_dbg: ifsstat 0x18a0 nav_stat 0x0 txop 24973
[ 1215.612317] brcmfmac: CONSOLE: 027945.032 ampdu_dbg: pktpend: 0 32 0 0 0 ap 1
[ 1215.619540] brcmfmac: CONSOLE: 027945.032 ampdu_dbg: txall 4821 txbcn 0 txrts 0 rxcts 0 rsptmout 0 rxstrt 0
[ 1215.629381] brcmfmac: CONSOLE: 027945.032 ampdu_dbg: cwcur0-3 f f 7 3 bslots cur/0-3 4 0 4 0 0 ifs_boff 5
[ 1215.639015] brcmfmac: CONSOLE: 027945.032 ampdu_dbg: again1 ifsstat 0xa0 nav_stat 0x0
[ 1215.646906] brcmfmac: CONSOLE: 027945.032 ampdu_dbg: again2 ifsstat 0x18a0 nav_stat 0x0
[ 1215.655024] brcmfmac: CONSOLE: 027945.032 wl0: wlc_ampdu_watchdog: cleaning up ini tid 0 due to no progress for 2 secs tx_in_transit 1
[ 1215.667206] brcmfmac: CONSOLE: 027945.032 wl0: wlc_ampdu_tx_send_delba: tid 0 initiator 1 reason 39
[ 1217.368721] brcmfmac: [brcmf_cfg80211_add_key -> __send_key_to_dongle] ifp:c64d3480 brcmf_ifname(ifp):wlan1-1
[ 1218.328557] ------------[ cut here ]------------
[ 1218.333232] WARNING: CPU: 1 PID: 1130 at compat-wireless-2016-06-20/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c:1219 brcmf_netdev_wait_pend8021x+0xbc/0x184 [brcmfmac]()
[ 1218.349366] Modules linked in: pppoe ppp_async iptable_nat brcmfmac pppox ppp_generic nf_nat_ipv4 nf_conntrack_ipv6 nf_conntrack_ipv4 ipt_REJECT ipt_MASQUERADE cfg80211 xt_time xt_tcpudp xt_state xt_nat xt_multiport xt_mark xt_mac xt_limit xt_id xt_conntrack xt_commed
[ 1218.421716] CPU: 1 PID: 1130 Comm: hostapd Not tainted 4.4.19 #0
[ 1218.427735] Hardware name: BCM5301X
[ 1218.431225] Backtrace:
[ 1218.433699] [<c001708c>] (dump_backtrace) from [<c0017288>] (show_stack+0x18/0x1c)
[ 1218.441287] r7:000004c3 r6:bf1d0e9c r5:60000013 r4:00000000
[ 1218.447003] [<c0017270>] (show_stack) from [<c017c210>] (dump_stack+0x84/0xa4)
[ 1218.454243] [<c017c18c>] (dump_stack) from [<c0021490>] (warn_slowpath_common+0x8c/0xb8)
[ 1218.462349] r5:00000009 r4:00000000
[ 1218.465948] [<c0021404>] (warn_slowpath_common) from [<c0021560>] (warn_slowpath_null+0x24/0x2c)
[ 1218.474754] r8:c72ce0a4 r7:00000001 r6:c6b8fb3c r5:00000000 r4:c64d3480
[ 1218.481533] [<c002153c>] (warn_slowpath_null) from [<bf1be578>] (brcmf_netdev_wait_pend8021x+0xbc/0x184 [brcmfmac])
[ 1218.492006] [<bf1be4bc>] (brcmf_netdev_wait_pend8021x [brcmfmac]) from [<bf1ab200>] (brcmf_cfg80211_sched_scan_start+0x460/0x6c0 [brcmfmac])
[ 1218.504633] r8:c72ce0a4 r7:bf1c8613 r6:c64d3480 r5:c04903c8 r4:c72ce394
[ 1218.511404] [<bf1ab13c>] (brcmf_cfg80211_sched_scan_start [brcmfmac]) from [<bf1ad740>] (brcmf_cfg80211_add_key+0x2e0/0x3dc [brcmfmac])
[ 1218.523599] r7:00000000 r6:c64d3480 r5:c72ce0a4 r4:00000004
[ 1218.529341] [<bf1ad460>] (brcmf_cfg80211_add_key [brcmfmac]) from [<bf160b48>] (nl80211_new_key+0xfc/0x128 [cfg80211])
[ 1218.540059] r10:00000014 r9:c735ec00 r8:c6b8fca0 r7:c696c000 r6:c64d3000 r5:00000000
[ 1218.547944] r4:bf1ad460
[ 1218.550514] [<bf160a4c>] (nl80211_new_key [cfg80211]) from [<c0286f40>] (genl_rcv_msg+0x260/0x2e4)
[ 1218.559487] r8:c66663c0 r7:c6b42e14 r6:bf170540 r5:bf1787d0 r4:00000000
[ 1218.566246] [<c0286ce0>] (genl_rcv_msg) from [<c0286260>] (netlink_rcv_skb+0x60/0xbc)
[ 1218.574091] r10:c66663c0 r9:00000000 r8:c6b8fd84 r7:c6516400 r6:c0286ce0 r5:c66663c0
[ 1218.581977] r4:c6b42e00
[ 1218.584524] [<c0286200>] (netlink_rcv_skb) from [<c0286ccc>] (genl_rcv+0x28/0x3c)
[ 1218.592022] r7:c6516400 r6:c66663c0 r5:c66663c0 r4:c04a42a0
[ 1218.597728] [<c0286ca4>] (genl_rcv) from [<c0285c48>] (netlink_unicast+0x138/0x1f4)
[ 1218.605400] r5:00000048 r4:c799a000
[ 1218.609000] [<c0285b10>] (netlink_unicast) from [<c02860c8>] (netlink_sendmsg+0x300/0x320)
[ 1218.617281] r9:00000008 r8:00000000 r7:00000048 r6:c6b8ff4c r5:c6516400 r4:00000000
[ 1218.625087] [<c0285dc8>] (netlink_sendmsg) from [<c0248de4>] (sock_sendmsg+0x1c/0x2c)
[ 1218.632930] r10:00000000 r9:00000000 r8:00000000 r7:c7536a80 r6:c6b8fe64 r5:00000000
[ 1218.640816] r4:c6b8ff4c
[ 1218.643361] [<c0248dc8>] (sock_sendmsg) from [<c0249398>] (___sys_sendmsg+0x198/0x228)
[ 1218.651292] [<c0249200>] (___sys_sendmsg) from [<c024a1ec>] (__sys_sendmsg+0x44/0x68)
[ 1218.659139] r10:00000000 r9:c6b8e000 r8:c00098c4 r7:00000128 r6:00000000 r5:bee037c0
[ 1218.667024] r4:c7536a80
[ 1218.669571] [<c024a1a8>] (__sys_sendmsg) from [<c024a220>] (SyS_sendmsg+0x10/0x14)
[ 1218.677156] r6:b6f0a1c8 r5:00000000 r4:00000000
[ 1218.681810] [<c024a210>] (SyS_sendmsg) from [<c0009700>] (ret_fast_syscall+0x0/0x3c)
[ 1218.689603] ---[ end trace e3199c520974d43f ]---
[ 1218.694230] brcmfmac: [brcmf_netdev_wait_pend8021x] ifp:c64d3480 brcmf_ifname(ifp):wlan1-1 brcmf_get_pend_8021x_cnt(ifp):3
[ 1218.705307] brcmfmac: [brcmf_netdev_wait_pend8021x] List of pending 802.1x skbs:
[ 1218.712730] brcmfmac: [brcmf_netdev_wait_pend8021x] skb:c647ee40 skb->dev:c64d3000 skb->dev->name:wlan1-1
[ 1218.722321] brcmfmac: [brcmf_netdev_wait_pend8021x] skb:c72369c0 skb->dev:c64d3000 skb->dev->name:wlan1-1
[ 1218.731912] brcmfmac: [brcmf_netdev_wait_pend8021x] skb:c6b99180 skb->dev:c64d3000 skb->dev->name:wlan1-1
[ 1218.744839] brcmfmac: [brcmf_cfg80211_del_key -> __send_key_to_dongle] ifp:c64d3480 brcmf_ifname(ifp):wlan1-1
[ 1219.708556] ------------[ cut here ]------------
[ 1219.713235] WARNING: CPU: 1 PID: 1130 at compat-wireless-2016-06-20/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c:1219 brcmf_netdev_wait_pend8021x+0xbc/0x184 [brcmfmac]()
[ 1219.729367] Modules linked in: pppoe ppp_async iptable_nat brcmfmac pppox ppp_generic nf_nat_ipv4 nf_conntrack_ipv6 nf_conntrack_ipv4 ipt_REJECT ipt_MASQUERADE cfg80211 xt_time xt_tcpudp xt_state xt_nat xt_multiport xt_mark xt_mac xt_limit xt_id xt_conntrack xt_commed
[ 1219.801736] CPU: 1 PID: 1130 Comm: hostapd Tainted: G W 4.4.19 #0
[ 1219.808973] Hardware name: BCM5301X
[ 1219.812462] Backtrace:
[ 1219.814937] [<c001708c>] (dump_backtrace) from [<c0017288>] (show_stack+0x18/0x1c)
[ 1219.822524] r7:000004c3 r6:bf1d0e9c r5:60000013 r4:00000000
[ 1219.828241] [<c0017270>] (show_stack) from [<c017c210>] (dump_stack+0x84/0xa4)
[ 1219.835480] [<c017c18c>] (dump_stack) from [<c0021490>] (warn_slowpath_common+0x8c/0xb8)
[ 1219.843587] r5:00000009 r4:00000000
[ 1219.847185] [<c0021404>] (warn_slowpath_common) from [<c0021560>] (warn_slowpath_null+0x24/0x2c)
[ 1219.855982] r8:c739dd80 r7:00000001 r6:c6b8fb74 r5:00000000 r4:c64d3480
[ 1219.862760] [<c002153c>] (warn_slowpath_null) from [<bf1be578>] (brcmf_netdev_wait_pend8021x+0xbc/0x184 [brcmfmac])
[ 1219.873234] [<bf1be4bc>] (brcmf_netdev_wait_pend8021x [brcmfmac]) from [<bf1ab200>] (brcmf_cfg80211_sched_scan_start+0x460/0x6c0 [brcmfmac])
[ 1219.885862] r8:c739dd80 r7:bf1c85fc r6:c64d3480 r5:c04903c8 r4:c72ce2f0
[ 1219.892633] [<bf1ab13c>] (brcmf_cfg80211_sched_scan_start [brcmfmac]) from [<bf1ad420>] (brcmf_cfg80211_del_key+0xb0/0xf0 [brcmfmac])
[ 1219.904654] r7:c64d3480 r6:00000002 r5:c72ce254 r4:c72ce000
[ 1219.910396] [<bf1ad370>] (brcmf_cfg80211_del_key [brcmfmac]) from [<bf1608b8>] (nl80211_del_key+0xf4/0x148 [cfg80211])
[ 1219.921114] r7:c696c000 r6:c64d3000 r5:c650f220 r4:bf1ad370
[ 1219.926844] [<bf1607c4>] (nl80211_del_key [cfg80211]) from [<c0286f40>] (genl_rcv_msg+0x260/0x2e4)
[ 1219.935824] r7:c650f214 r6:bf170554 r5:bf1787d0 r4:00000000
[ 1219.941530] [<c0286ce0>] (genl_rcv_msg) from [<c0286260>] (netlink_rcv_skb+0x60/0xbc)
[ 1219.949376] r10:c739dd80 r9:00000000 r8:c6b8fd84 r7:c6516400 r6:c0286ce0 r5:c739dd80
[ 1219.957261] r4:c650f200
[ 1219.959809] [<c0286200>] (netlink_rcv_skb) from [<c0286ccc>] (genl_rcv+0x28/0x3c)
[ 1219.967306] r7:c6516400 r6:c739dd80 r5:c739dd80 r4:c04a42a0
[ 1219.973012] [<c0286ca4>] (genl_rcv) from [<c0285c48>] (netlink_unicast+0x138/0x1f4)
[ 1219.980685] r5:00000030 r4:c799a000
[ 1219.984284] [<c0285b10>] (netlink_unicast) from [<c02860c8>] (netlink_sendmsg+0x300/0x320)
[ 1219.992565] r9:00000008 r8:00000000 r7:00000030 r6:c6b8ff4c r5:c6516400 r4:00000000
[ 1220.000371] [<c0285dc8>] (netlink_sendmsg) from [<c0248de4>] (sock_sendmsg+0x1c/0x2c)
[ 1220.008214] r10:00000000 r9:00000000 r8:00000000 r7:c7536a80 r6:c6b8fe64 r5:00000000
[ 1220.016100] r4:c6b8ff4c
[ 1220.018646] [<c0248dc8>] (sock_sendmsg) from [<c0249398>] (___sys_sendmsg+0x198/0x228)
[ 1220.026576] [<c0249200>] (___sys_sendmsg) from [<c024a1ec>] (__sys_sendmsg+0x44/0x68)
[ 1220.034422] r10:00000000 r9:c6b8e000 r8:c00098c4 r7:00000128 r6:00000000 r5:bee03790
[ 1220.042309] r4:c7536a80
[ 1220.044854] [<c024a1a8>] (__sys_sendmsg) from [<c024a220>] (SyS_sendmsg+0x10/0x14)
[ 1220.052440] r6:b6f0a1c8 r5:00000000 r4:00000000
[ 1220.057094] [<c024a210>] (SyS_sendmsg) from [<c0009700>] (ret_fast_syscall+0x0/0x3c)
[ 1220.064881] ---[ end trace e3199c520974d440 ]---
[ 1220.069529] brcmfmac: [brcmf_netdev_wait_pend8021x] ifp:c64d3480 brcmf_ifname(ifp):wlan1-1 brcmf_get_pend_8021x_cnt(ifp):3
[ 1220.080605] brcmfmac: [brcmf_netdev_wait_pend8021x] List of pending 802.1x skbs:
[ 1220.088016] brcmfmac: [brcmf_netdev_wait_pend8021x] skb:c647ee40 skb->dev:c64d3000 skb->dev->name:wlan1-1
[ 1220.097606] brcmfmac: [brcmf_netdev_wait_pend8021x] skb:c72369c0 skb->dev:c64d3000 skb->dev->name:wlan1-1
[ 1220.107197] brcmfmac: [brcmf_netdev_wait_pend8021x] skb:c6b99180 skb->dev:c64d3000 skb->dev->name:wlan1-1
[ 1222.597085] brcmfmac: CONSOLE: 027952.044 wl0: Proxy STA 78:d6:f0:9b:ba:bc link is already gone !!??
[ 1222.606543] brcmfmac: [brcmf_msgbuf_process_txstatus -> __brcmf_txfinalize] Finally finalizing skb:c647ee40 skb->dev:c64d3000 skb->dev->name:wlan1-1
[ 1222.619911] brcmfmac: [brcmf_msgbuf_process_txstatus -> __brcmf_txfinalize] Finally finalizing skb:c72369c0 skb->dev:c64d3000 skb->dev->name:wlan1-1
[ 1222.633274] brcmfmac: [brcmf_msgbuf_process_txstatus -> __brcmf_txfinalize] Finally finalizing skb:c6b99180 skb->dev:c64d3000 skb->dev->name:wlan1-1
[ 1243.839113] brcmfmac: [brcmf_cfg80211_add_key -> __send_key_to_dongle] ifp:c695bc80 brcmf_ifname(ifp):wlan1
[ 1243.850070] brcmfmac: [brcmf_cfg80211_add_key -> __send_key_to_dongle] ifp:c780ec80 brcmf_ifname(ifp):wlan0
[ 1244.049797] brcmfmac: [brcmf_cfg80211_add_key -> __send_key_to_dongle] ifp:c64c1c80 brcmf_ifname(ifp):wlan0-1
[ 1244.379059] brcmfmac: [brcmf_cfg80211_add_key -> __send_key_to_dongle] ifp:c65a0480 brcmf_ifname(ifp):wlan1-2
[ 1244.409084] brcmfmac: [brcmf_cfg80211_add_key -> __send_key_to_dongle] ifp:c64c5c80 brcmf_ifname(ifp):wlan0-2
[ 1244.532211] brcmfmac: [brcmf_cfg80211_add_key -> __send_key_to_dongle] ifp:c64d3480 brcmf_ifname(ifp):wlan1-1
[ 1244.672407] brcmfmac: CONSOLE: 027974.121 wl0.2: wlc_send_bar: seq 0xd96 tid 0
[ 1419.521703] brcmfmac: CONSOLE: 028148.962 wl0: wlc_ampdu_rx_recv_delba: AMPDU OFF: tid 0 initiator 1 reason 39
[ 1420.346975] brcmfmac: CONSOLE: 028149.786 wl0.3: wlc_send_bar: seq 0x1 tid 6
[ 1423.166160] brcmfmac: CONSOLE: 028152.603 ampdu_dbg: wl0.3 scb:00344c30 tid:0
[ 1423.173521] brcmfmac: CONSOLE: 028152.603 ampdu_dbg: wl0.3 dead_cnt 2 tx_in_transit 1 psm_mux 0x200 aqmqmap 0x0x101 aqmfifo_status 0x0x1 fifordy 0x2 cpbusy 0x0
[ 1423.187872] brcmfmac: CONSOLE: 028152.603 ampdu_dbg: ifsstat 0x1da0 nav_stat 0x0 txop 27528
[ 1423.196289] brcmfmac: CONSOLE: 028152.603 ampdu_dbg: pktpend: 0 1 0 0 0 ap 1
[ 1423.203434] brcmfmac: CONSOLE: 028152.603 ampdu_dbg: txall 5454 txbcn 0 txrts 0 rxcts 0 rsptmout 0 rxstrt 0
[ 1423.213266] brcmfmac: CONSOLE: 028152.603 ampdu_dbg: cwcur0-3 f f 7 3 bslots cur/0-3 8 0 8 0 0 ifs_boff 0
[ 1423.222905] brcmfmac: CONSOLE: 028152.603 ampdu_dbg: again1 ifsstat 0x1d80 nav_stat 0x0
[ 1423.230972] brcmfmac: CONSOLE: 028152.603 ampdu_dbg: again2 ifsstat 0x1d80 nav_stat 0x0
[ 1423.239081] brcmfmac: CONSOLE: 028152.603 wl0: wlc_ampdu_watchdog: cleaning up ini tid 0 due to no progress for 2 secs tx_in_transit 1
[ 1423.251255] brcmfmac: CONSOLE: 028152.603 wl0: wlc_ampdu_tx_send_delba: tid 0 initiator 1 reason 39
[ 1423.989156] brcmfmac: [brcmf_cfg80211_add_key -> __send_key_to_dongle] ifp:c695bc80 brcmf_ifname(ifp):wlan1
[ 1424.000369] brcmfmac: [brcmf_cfg80211_add_key -> __send_key_to_dongle] ifp:c780ec80 brcmf_ifname(ifp):wlan0
[ 1424.018123] brcmfmac: [brcmf_cfg80211_add_key -> __send_key_to_dongle] ifp:c64d3480 brcmf_ifname(ifp):wlan1-1
[ 1424.170006] brcmfmac: [brcmf_cfg80211_add_key -> __send_key_to_dongle] ifp:c64c1c80 brcmf_ifname(ifp):wlan0-1
[ 1424.529823] brcmfmac: [brcmf_cfg80211_add_key -> __send_key_to_dongle] ifp:c64c5c80 brcmf_ifname(ifp):wlan0-2
[ 1427.958783] brcmfmac: [brcmf_cfg80211_add_key -> __send_key_to_dongle] ifp:c65a0480 brcmf_ifname(ifp):wlan1-2
[ 1428.918558] ------------[ cut here ]------------
[ 1428.923235] WARNING: CPU: 1 PID: 1130 at compat-wireless-2016-06-20/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c:1219 brcmf_netdev_wait_pend8021x+0xbc/0x184 [brcmfmac]()
[ 1428.939369] Modules linked in: pppoe ppp_async iptable_nat brcmfmac pppox ppp_generic nf_nat_ipv4 nf_conntrack_ipv6 nf_conntrack_ipv4 ipt_REJECT ipt_MASQUERADE cfg80211 xt_time xt_tcpudp xt_state xt_nat xt_multiport xt_mark xt_mac xt_limit xt_id xt_conntrack xt_commed
[ 1429.011756] CPU: 1 PID: 1130 Comm: hostapd Tainted: G W 4.4.19 #0
[ 1429.018992] Hardware name: BCM5301X
[ 1429.022481] Backtrace:
[ 1429.024957] [<c001708c>] (dump_backtrace) from [<c0017288>] (show_stack+0x18/0x1c)
[ 1429.032544] r7:000004c3 r6:bf1d0e9c r5:60000013 r4:00000000
[ 1429.038261] [<c0017270>] (show_stack) from [<c017c210>] (dump_stack+0x84/0xa4)
[ 1429.045499] [<c017c18c>] (dump_stack) from [<c0021490>] (warn_slowpath_common+0x8c/0xb8)
[ 1429.053606] r5:00000009 r4:00000000
[ 1429.057205] [<c0021404>] (warn_slowpath_common) from [<c0021560>] (warn_slowpath_null+0x24/0x2c)
[ 1429.066010] r8:c71c8148 r7:00000001 r6:c6b8fb3c r5:00000000 r4:c65a0480
[ 1429.072791] [<c002153c>] (warn_slowpath_null) from [<bf1be578>] (brcmf_netdev_wait_pend8021x+0xbc/0x184 [brcmfmac])
[ 1429.083263] [<bf1be4bc>] (brcmf_netdev_wait_pend8021x [brcmfmac]) from [<bf1ab200>] (brcmf_cfg80211_sched_scan_start+0x460/0x6c0 [brcmfmac])
[ 1429.095891] r8:c71c8148 r7:bf1c8613 r6:c65a0480 r5:c04903c8 r4:c71c8438
[ 1429.102661] [<bf1ab13c>] (brcmf_cfg80211_sched_scan_start [brcmfmac]) from [<bf1ad740>] (brcmf_cfg80211_add_key+0x2e0/0x3dc [brcmfmac])
[ 1429.114857] r7:00000000 r6:c65a0480 r5:c71c8148 r4:00000004
[ 1429.120598] [<bf1ad460>] (brcmf_cfg80211_add_key [brcmfmac]) from [<bf160b48>] (nl80211_new_key+0xfc/0x128 [cfg80211])
[ 1429.131317] r10:00000014 r9:c735ec00 r8:c6b8fca0 r7:c696c000 r6:c65a0000 r5:00000000
[ 1429.139201] r4:bf1ad460
[ 1429.141771] [<bf160a4c>] (nl80211_new_key [cfg80211]) from [<c0286f40>] (genl_rcv_msg+0x260/0x2e4)
[ 1429.150743] r8:c731ee40 r7:c6a5e614 r6:bf170540 r5:bf1787d0 r4:00000000
[ 1429.157503] [<c0286ce0>] (genl_rcv_msg) from [<c0286260>] (netlink_rcv_skb+0x60/0xbc)
[ 1429.165348] r10:c731ee40 r9:00000000 r8:c6b8fd84 r7:c6516400 r6:c0286ce0 r5:c731ee40
[ 1429.173235] r4:c6a5e600
[ 1429.175781] [<c0286200>] (netlink_rcv_skb) from [<c0286ccc>] (genl_rcv+0x28/0x3c)
[ 1429.183279] r7:c6516400 r6:c731ee40 r5:c731ee40 r4:c04a42a0
[ 1429.188985] [<c0286ca4>] (genl_rcv) from [<c0285c48>] (netlink_unicast+0x138/0x1f4)
[ 1429.196657] r5:00000048 r4:c799a000
[ 1429.200256] [<c0285b10>] (netlink_unicast) from [<c02860c8>] (netlink_sendmsg+0x300/0x320)
[ 1429.208537] r9:00000008 r8:00000000 r7:00000048 r6:c6b8ff4c r5:c6516400 r4:00000000
[ 1429.216344] [<c0285dc8>] (netlink_sendmsg) from [<c0248de4>] (sock_sendmsg+0x1c/0x2c)
[ 1429.224187] r10:00000000 r9:00000000 r8:00000000 r7:c7536a80 r6:c6b8fe64 r5:00000000
[ 1429.232073] r4:c6b8ff4c
[ 1429.234618] [<c0248dc8>] (sock_sendmsg) from [<c0249398>] (___sys_sendmsg+0x198/0x228)
[ 1429.242558] [<c0249200>] (___sys_sendmsg) from [<c024a1ec>] (__sys_sendmsg+0x44/0x68)
[ 1429.250404] r10:00000000 r9:c6b8e000 r8:c00098c4 r7:00000128 r6:00000000 r5:bee037c0
[ 1429.258290] r4:c7536a80
[ 1429.260836] [<c024a1a8>] (__sys_sendmsg) from [<c024a220>] (SyS_sendmsg+0x10/0x14)
[ 1429.268422] r6:00000006 r5:00000000 r4:00000000
[ 1429.273075] [<c024a210>] (SyS_sendmsg) from [<c0009700>] (ret_fast_syscall+0x0/0x3c)
[ 1429.280917] ---[ end trace e3199c520974d441 ]---
[ 1429.285548] brcmfmac: [brcmf_netdev_wait_pend8021x] ifp:c65a0480 brcmf_ifname(ifp):wlan1-2 brcmf_get_pend_8021x_cnt(ifp):1
[ 1429.296627] brcmfmac: [brcmf_netdev_wait_pend8021x] List of pending 802.1x skbs:
[ 1429.304048] brcmfmac: [brcmf_netdev_wait_pend8021x] skb:c64e5d80 skb->dev:c65a0000 skb->dev->name:wlan1-2
[ 1429.316441] brcmfmac: [brcmf_cfg80211_del_key -> __send_key_to_dongle] ifp:c65a0480 brcmf_ifname(ifp):wlan1-2
[ 1430.278565] ------------[ cut here ]------------
[ 1430.283245] WARNING: CPU: 1 PID: 1130 at compat-wireless-2016-06-20/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c:1219 brcmf_netdev_wait_pend8021x+0xbc/0x184 [brcmfmac]()
[ 1430.299380] Modules linked in: pppoe ppp_async iptable_nat brcmfmac pppox ppp_generic nf_nat_ipv4 nf_conntrack_ipv6 nf_conntrack_ipv4 ipt_REJECT ipt_MASQUERADE cfg80211 xt_time xt_tcpudp xt_state xt_nat xt_multiport xt_mark xt_mac xt_limit xt_id xt_conntrack xt_commed
[ 1430.371763] CPU: 1 PID: 1130 Comm: hostapd Tainted: G W 4.4.19 #0
[ 1430.379000] Hardware name: BCM5301X
[ 1430.382491] Backtrace:
[ 1430.384965] [<c001708c>] (dump_backtrace) from [<c0017288>] (show_stack+0x18/0x1c)
[ 1430.392552] r7:000004c3 r6:bf1d0e9c r5:60000013 r4:00000000
[ 1430.398269] [<c0017270>] (show_stack) from [<c017c210>] (dump_stack+0x84/0xa4)
[ 1430.405508] [<c017c18c>] (dump_stack) from [<c0021490>] (warn_slowpath_common+0x8c/0xb8)
[ 1430.413615] r5:00000009 r4:00000000
[ 1430.417213] [<c0021404>] (warn_slowpath_common) from [<c0021560>] (warn_slowpath_null+0x24/0x2c)
[ 1430.426010] r8:c64b90c0 r7:00000001 r6:c6b8fb74 r5:00000000 r4:c65a0480
[ 1430.432789] [<c002153c>] (warn_slowpath_null) from [<bf1be578>] (brcmf_netdev_wait_pend8021x+0xbc/0x184 [brcmfmac])
[ 1430.443262] [<bf1be4bc>] (brcmf_netdev_wait_pend8021x [brcmfmac]) from [<bf1ab200>] (brcmf_cfg80211_sched_scan_start+0x460/0x6c0 [brcmfmac])
[ 1430.455891] r8:c64b90c0 r7:bf1c85fc r6:c65a0480 r5:c04903c8 r4:c71c82f0
[ 1430.462661] [<bf1ab13c>] (brcmf_cfg80211_sched_scan_start [brcmfmac]) from [<bf1ad420>] (brcmf_cfg80211_del_key+0xb0/0xf0 [brcmfmac])
[ 1430.474682] r7:c65a0480 r6:00000002 r5:c71c8254 r4:c71c8000
[ 1430.480423] [<bf1ad370>] (brcmf_cfg80211_del_key [brcmfmac]) from [<bf1608b8>] (nl80211_del_key+0xf4/0x148 [cfg80211])
[ 1430.491142] r7:c696c000 r6:c65a0000 r5:c7389d20 r4:bf1ad370
[ 1430.496870] [<bf1607c4>] (nl80211_del_key [cfg80211]) from [<c0286f40>] (genl_rcv_msg+0x260/0x2e4)
[ 1430.505842] r7:c7389d14 r6:bf170554 r5:bf1787d0 r4:00000000
[ 1430.511550] [<c0286ce0>] (genl_rcv_msg) from [<c0286260>] (netlink_rcv_skb+0x60/0xbc)
[ 1430.519394] r10:c64b90c0 r9:00000000 r8:c6b8fd84 r7:c6516400 r6:c0286ce0 r5:c64b90c0
[ 1430.527281] r4:c7389d00
[ 1430.529827] [<c0286200>] (netlink_rcv_skb) from [<c0286ccc>] (genl_rcv+0x28/0x3c)
[ 1430.537324] r7:c6516400 r6:c64b90c0 r5:c64b90c0 r4:c04a42a0
[ 1430.543031] [<c0286ca4>] (genl_rcv) from [<c0285c48>] (netlink_unicast+0x138/0x1f4)
[ 1430.550702] r5:00000030 r4:c799a000
[ 1430.554304] [<c0285b10>] (netlink_unicast) from [<c02860c8>] (netlink_sendmsg+0x300/0x320)
[ 1430.562583] r9:00000008 r8:00000000 r7:00000030 r6:c6b8ff4c r5:c6516400 r4:00000000
[ 1430.570391] [<c0285dc8>] (netlink_sendmsg) from [<c0248de4>] (sock_sendmsg+0x1c/0x2c)
[ 1430.578234] r10:00000000 r9:00000000 r8:00000000 r7:c7536a80 r6:c6b8fe64 r5:00000000
[ 1430.586120] r4:c6b8ff4c
[ 1430.588665] [<c0248dc8>] (sock_sendmsg) from [<c0249398>] (___sys_sendmsg+0x198/0x228)
[ 1430.596604] [<c0249200>] (___sys_sendmsg) from [<c024a1ec>] (__sys_sendmsg+0x44/0x68)
[ 1430.604450] r10:00000000 r9:c6b8e000 r8:c00098c4 r7:00000128 r6:00000000 r5:bee03790
[ 1430.612336] r4:c7536a80
[ 1430.614882] [<c024a1a8>] (__sys_sendmsg) from [<c024a220>] (SyS_sendmsg+0x10/0x14)
[ 1430.622467] r6:00000006 r5:00000000 r4:00000000
[ 1430.627121] [<c024a210>] (SyS_sendmsg) from [<c0009700>] (ret_fast_syscall+0x0/0x3c)
[ 1430.634935] ---[ end trace e3199c520974d442 ]---
[ 1430.639574] brcmfmac: [brcmf_netdev_wait_pend8021x] ifp:c65a0480 brcmf_ifname(ifp):wlan1-2 brcmf_get_pend_8021x_cnt(ifp):1
[ 1430.650650] brcmfmac: [brcmf_netdev_wait_pend8021x] List of pending 802.1x skbs:
[ 1430.658061] brcmfmac: [brcmf_netdev_wait_pend8021x] skb:c64e5d80 skb->dev:c65a0000 skb->dev->name:wlan1-2
[ 1433.091596] brcmfmac: CONSOLE: 028162.527 wl0: Proxy STA 78:d6:f0:9b:ba:bc link is already gone !!??
[ 1433.151731] brcmfmac: [brcmf_msgbuf_process_txstatus -> __brcmf_txfinalize] Finally finalizing skb:c64e5d80 skb->dev:c65a0000 skb->dev->name:wlan1-2
[ 1445.329593] brcmfmac: CONSOLE: 028174.764 wl0.3: wlc_send_bar: seq 0xc6e tid 0
[ 1446.332452] brcmfmac: CONSOLE: 028175.767 wl0.3: wlc_send_bar: seq 0xc6f tid 0
[ 1454.009194] brcmfmac: [brcmf_cfg80211_add_key -> __send_key_to_dongle] ifp:c695bc80 brcmf_ifname(ifp):wlan1
[ 1454.020432] brcmfmac: [brcmf_cfg80211_add_key -> __send_key_to_dongle] ifp:c780ec80 brcmf_ifname(ifp):wlan0
[ 1454.121584] brcmfmac: [brcmf_cfg80211_add_key -> __send_key_to_dongle] ifp:c64d3480 brcmf_ifname(ifp):wlan1-1
[ 1454.189851] brcmfmac: [brcmf_cfg80211_add_key -> __send_key_to_dongle] ifp:c64c1c80 brcmf_ifname(ifp):wlan0-1
[ 1454.549783] brcmfmac: [brcmf_cfg80211_add_key -> __send_key_to_dongle] ifp:c64c5c80 brcmf_ifname(ifp):wlan0-2
[ 1454.561299] brcmfmac: [brcmf_cfg80211_add_key -> __send_key_to_dongle] ifp:c65a0480 brcmf_ifname(ifp):wlan1-2
[ 1604.139419] brcmfmac: [brcmf_cfg80211_add_key -> __send_key_to_dongle] ifp:c780ec80 brcmf_ifname(ifp):wlan0
[ 1604.150635] brcmfmac: [brcmf_cfg80211_add_key -> __send_key_to_dongle] ifp:c695bc80 brcmf_ifname(ifp):wlan1
[ 1604.238314] brcmfmac: [brcmf_cfg80211_add_key -> __send_key_to_dongle] ifp:c64d3480 brcmf_ifname(ifp):wlan1-1
[ 1604.289129] brcmfmac: [brcmf_cfg80211_add_key -> __send_key_to_dongle] ifp:c64c1c80 brcmf_ifname(ifp):wlan0-1
[ 1604.659083] brcmfmac: [brcmf_cfg80211_add_key -> __send_key_to_dongle] ifp:c64c5c80 brcmf_ifname(ifp):wlan0-2
[ 1605.551886] brcmfmac: CONSOLE: 028334.964 ampdu_dbg: wl0.3 scb:00344060 tid:0
[ 1605.559253] brcmfmac: CONSOLE: 028334.964 ampdu_dbg: wl0.3 dead_cnt 2 tx_in_transit 1 psm_mux 0xfff0 aqmqmap 0x0x101 aqmfifo_status 0x0x1 fifordy 0x2 cpbusy 0x0
[ 1605.573688] brcmfmac: CONSOLE: 028334.964 ampdu_dbg: ifsstat 0x1d80 nav_stat 0x0 txop 31752
[ 1605.582096] brcmfmac: CONSOLE: 028334.964 ampdu_dbg: pktpend: 0 1 0 0 0 ap 1
[ 1605.589224] brcmfmac: CONSOLE: 028334.964 ampdu_dbg: txall 5893 txbcn 0 txrts 0 rxcts 0 rsptmout 0 rxstrt 0
[ 1605.599049] brcmfmac: CONSOLE: 028334.964 ampdu_dbg: cwcur0-3 f f 7 3 bslots cur/0-3 13 0 13 0 0 ifs_boff 0
[ 1605.608861] brcmfmac: CONSOLE: 028334.964 ampdu_dbg: again1 ifsstat 0x1ea0 nav_stat 0x0
[ 1605.616923] brcmfmac: CONSOLE: 028334.964 ampdu_dbg: again2 ifsstat 0xa0 nav_stat 0x0
[ 1605.624853] brcmfmac: CONSOLE: 028334.964 wl0: wlc_ampdu_watchdog: cleaning up ini tid 0 due to no progress for 2 secs tx_in_transit 1
[ 1605.637027] brcmfmac: CONSOLE: 028334.964 wl0: wlc_ampdu_tx_send_delba: tid 0 initiator 1 reason 39
[ 1607.988759] brcmfmac: [brcmf_cfg80211_add_key -> __send_key_to_dongle] ifp:c65a0480 brcmf_ifname(ifp):wlan1-2
[ 1608.948558] ------------[ cut here ]------------
[ 1608.953229] WARNING: CPU: 1 PID: 1130 at compat-wireless-2016-06-20/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c:1219 brcmf_netdev_wait_pend8021x+0xbc/0x184 [brcmfmac]()
[ 1608.969361] Modules linked in: pppoe ppp_async iptable_nat brcmfmac pppox ppp_generic nf_nat_ipv4 nf_conntrack_ipv6 nf_conntrack_ipv4 ipt_REJECT ipt_MASQUERADE cfg80211 xt_time xt_tcpudp xt_state xt_nat xt_multiport xt_mark xt_mac xt_limit xt_id xt_conntrack xt_commed
[ 1609.041801] CPU: 1 PID: 1130 Comm: hostapd Tainted: G W 4.4.19 #0
[ 1609.049036] Hardware name: BCM5301X
[ 1609.052528] Backtrace:
[ 1609.055001] [<c001708c>] (dump_backtrace) from [<c0017288>] (show_stack+0x18/0x1c)
[ 1609.062581] r7:000004c3 r6:bf1d0e9c r5:60000013 r4:00000000
[ 1609.068297] [<c0017270>] (show_stack) from [<c017c210>] (dump_stack+0x84/0xa4)
[ 1609.075537] [<c017c18c>] (dump_stack) from [<c0021490>] (warn_slowpath_common+0x8c/0xb8)
[ 1609.083643] r5:00000009 r4:00000000
[ 1609.087241] [<c0021404>] (warn_slowpath_common) from [<c0021560>] (warn_slowpath_null+0x24/0x2c)
[ 1609.096038] r8:c71c8148 r7:00000001 r6:c6b8fb3c r5:00000000 r4:c65a0480
[ 1609.102820] [<c002153c>] (warn_slowpath_null) from [<bf1be578>] (brcmf_netdev_wait_pend8021x+0xbc/0x184 [brcmfmac])
[ 1609.113292] [<bf1be4bc>] (brcmf_netdev_wait_pend8021x [brcmfmac]) from [<bf1ab200>] (brcmf_cfg80211_sched_scan_start+0x460/0x6c0 [brcmfmac])
[ 1609.125920] r8:c71c8148 r7:bf1c8613 r6:c65a0480 r5:c04903c8 r4:c71c8438
[ 1609.132689] [<bf1ab13c>] (brcmf_cfg80211_sched_scan_start [brcmfmac]) from [<bf1ad740>] (brcmf_cfg80211_add_key+0x2e0/0x3dc [brcmfmac])
[ 1609.144885] r7:00000000 r6:c65a0480 r5:c71c8148 r4:00000004
[ 1609.150626] [<bf1ad460>] (brcmf_cfg80211_add_key [brcmfmac]) from [<bf160b48>] (nl80211_new_key+0xfc/0x128 [cfg80211])
[ 1609.161345] r10:00000014 r9:c735ec00 r8:c6b8fca0 r7:c696c000 r6:c65a0000 r5:00000000
[ 1609.169230] r4:bf1ad460
[ 1609.171800] [<bf160a4c>] (nl80211_new_key [cfg80211]) from [<c0286f40>] (genl_rcv_msg+0x260/0x2e4)
[ 1609.180771] r8:c731e9c0 r7:c69b7414 r6:bf170540 r5:bf1787d0 r4:00000000
[ 1609.187533] [<c0286ce0>] (genl_rcv_msg) from [<c0286260>] (netlink_rcv_skb+0x60/0xbc)
[ 1609.195378] r10:c731e9c0 r9:00000000 r8:c6b8fd84 r7:c6516400 r6:c0286ce0 r5:c731e9c0
[ 1609.203263] r4:c69b7400
[ 1609.205810] [<c0286200>] (netlink_rcv_skb) from [<c0286ccc>] (genl_rcv+0x28/0x3c)
[ 1609.213307] r7:c6516400 r6:c731e9c0 r5:c731e9c0 r4:c04a42a0
[ 1609.219014] [<c0286ca4>] (genl_rcv) from [<c0285c48>] (netlink_unicast+0x138/0x1f4)
[ 1609.226685] r5:00000048 r4:c799a000
[ 1609.230286] [<c0285b10>] (netlink_unicast) from [<c02860c8>] (netlink_sendmsg+0x300/0x320)
[ 1609.238567] r9:00000008 r8:00000000 r7:00000048 r6:c6b8ff4c r5:c6516400 r4:00000000
[ 1609.246372] [<c0285dc8>] (netlink_sendmsg) from [<c0248de4>] (sock_sendmsg+0x1c/0x2c)
[ 1609.254216] r10:00000000 r9:00000000 r8:00000000 r7:c7536a80 r6:c6b8fe64 r5:00000000
[ 1609.262102] r4:c6b8ff4c
[ 1609.264647] [<c0248dc8>] (sock_sendmsg) from [<c0249398>] (___sys_sendmsg+0x198/0x228)
[ 1609.272577] [<c0249200>] (___sys_sendmsg) from [<c024a1ec>] (__sys_sendmsg+0x44/0x68)
[ 1609.280423] r10:00000000 r9:c6b8e000 r8:c00098c4 r7:00000128 r6:00000000 r5:bee037c0
[ 1609.288310] r4:c7536a80
[ 1609.290855] [<c024a1a8>] (__sys_sendmsg) from [<c024a220>] (SyS_sendmsg+0x10/0x14)
[ 1609.298441] r6:00000006 r5:00000000 r4:00000000
[ 1609.303095] [<c024a210>] (SyS_sendmsg) from [<c0009700>] (ret_fast_syscall+0x0/0x3c)
[ 1609.310876] ---[ end trace e3199c520974d443 ]---
[ 1609.315507] brcmfmac: [brcmf_netdev_wait_pend8021x] ifp:c65a0480 brcmf_ifname(ifp):wlan1-2 brcmf_get_pend_8021x_cnt(ifp):3
[ 1609.326581] brcmfmac: [brcmf_netdev_wait_pend8021x] List of pending 802.1x skbs:
[ 1609.333997] brcmfmac: [brcmf_netdev_wait_pend8021x] skb:c681f3c0 skb->dev:c65a0000 skb->dev->name:wlan1-2
[ 1609.343589] brcmfmac: [brcmf_netdev_wait_pend8021x] skb:c7116900 skb->dev:c65a0000 skb->dev->name:wlan1-2
[ 1609.353185] brcmfmac: [brcmf_netdev_wait_pend8021x] skb:c7361a80 skb->dev:c65a0000 skb->dev->name:wlan1-2
[ 1609.365870] brcmfmac: [brcmf_cfg80211_del_key -> __send_key_to_dongle] ifp:c65a0480 brcmf_ifname(ifp):wlan1-2
[ 1610.328562] ------------[ cut here ]------------
[ 1610.333240] WARNING: CPU: 1 PID: 1130 at compat-wireless-2016-06-20/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c:1219 brcmf_netdev_wait_pend8021x+0xbc/0x184 [brcmfmac]()
[ 1610.349374] Modules linked in: pppoe ppp_async iptable_nat brcmfmac pppox ppp_generic nf_nat_ipv4 nf_conntrack_ipv6 nf_conntrack_ipv4 ipt_REJECT ipt_MASQUERADE cfg80211 xt_time xt_tcpudp xt_state xt_nat xt_multiport xt_mark xt_mac xt_limit xt_id xt_conntrack xt_commed
[ 1610.421742] CPU: 1 PID: 1130 Comm: hostapd Tainted: G W 4.4.19 #0
[ 1610.428977] Hardware name: BCM5301X
[ 1610.432469] Backtrace:
[ 1610.434943] [<c001708c>] (dump_backtrace) from [<c0017288>] (show_stack+0x18/0x1c)
[ 1610.442529] r7:000004c3 r6:bf1d0e9c r5:60000013 r4:00000000
[ 1610.448246] [<c0017270>] (show_stack) from [<c017c210>] (dump_stack+0x84/0xa4)
[ 1610.455486] [<c017c18c>] (dump_stack) from [<c0021490>] (warn_slowpath_common+0x8c/0xb8)
[ 1610.463593] r5:00000009 r4:00000000
[ 1610.467191] [<c0021404>] (warn_slowpath_common) from [<c0021560>] (warn_slowpath_null+0x24/0x2c)
[ 1610.475987] r8:c65b0840 r7:00000001 r6:c6b8fb74 r5:00000000 r4:c65a0480
[ 1610.482769] [<c002153c>] (warn_slowpath_null) from [<bf1be578>] (brcmf_netdev_wait_pend8021x+0xbc/0x184 [brcmfmac])
[ 1610.493241] [<bf1be4bc>] (brcmf_netdev_wait_pend8021x [brcmfmac]) from [<bf1ab200>] (brcmf_cfg80211_sched_scan_start+0x460/0x6c0 [brcmfmac])
[ 1610.505869] r8:c65b0840 r7:bf1c85fc r6:c65a0480 r5:c04903c8 r4:c71c82f0
[ 1610.512639] [<bf1ab13c>] (brcmf_cfg80211_sched_scan_start [brcmfmac]) from [<bf1ad420>] (brcmf_cfg80211_del_key+0xb0/0xf0 [brcmfmac])
[ 1610.524660] r7:c65a0480 r6:00000002 r5:c71c8254 r4:c71c8000
[ 1610.530402] [<bf1ad370>] (brcmf_cfg80211_del_key [brcmfmac]) from [<bf1608b8>] (nl80211_del_key+0xf4/0x148 [cfg80211])
[ 1610.541120] r7:c696c000 r6:c65a0000 r5:c650fd20 r4:bf1ad370
[ 1610.546848] [<bf1607c4>] (nl80211_del_key [cfg80211]) from [<c0286f40>] (genl_rcv_msg+0x260/0x2e4)
[ 1610.555821] r7:c650fd14 r6:bf170554 r5:bf1787d0 r4:00000000
[ 1610.561527] [<c0286ce0>] (genl_rcv_msg) from [<c0286260>] (netlink_rcv_skb+0x60/0xbc)
[ 1610.569373] r10:c65b0840 r9:00000000 r8:c6b8fd84 r7:c6516400 r6:c0286ce0 r5:c65b0840
[ 1610.577258] r4:c650fd00
[ 1610.579806] [<c0286200>] (netlink_rcv_skb) from [<c0286ccc>] (genl_rcv+0x28/0x3c)
[ 1610.587303] r7:c6516400 r6:c65b0840 r5:c65b0840 r4:c04a42a0
[ 1610.593010] [<c0286ca4>] (genl_rcv) from [<c0285c48>] (netlink_unicast+0x138/0x1f4)
[ 1610.600682] r5:00000030 r4:c799a000
[ 1610.604282] [<c0285b10>] (netlink_unicast) from [<c02860c8>] (netlink_sendmsg+0x300/0x320)
[ 1610.612561] r9:00000008 r8:00000000 r7:00000030 r6:c6b8ff4c r5:c6516400 r4:00000000
[ 1610.620368] [<c0285dc8>] (netlink_sendmsg) from [<c0248de4>] (sock_sendmsg+0x1c/0x2c)
[ 1610.628212] r10:00000000 r9:00000000 r8:00000000 r7:c7536a80 r6:c6b8fe64 r5:00000000
[ 1610.636098] r4:c6b8ff4c
[ 1610.638643] [<c0248dc8>] (sock_sendmsg) from [<c0249398>] (___sys_sendmsg+0x198/0x228)
[ 1610.646582] [<c0249200>] (___sys_sendmsg) from [<c024a1ec>] (__sys_sendmsg+0x44/0x68)
[ 1610.654428] r10:00000000 r9:c6b8e000 r8:c00098c4 r7:00000128 r6:00000000 r5:bee03790
[ 1610.662315] r4:c7536a80
[ 1610.664861] [<c024a1a8>] (__sys_sendmsg) from [<c024a220>] (SyS_sendmsg+0x10/0x14)
[ 1610.672446] r6:00000006 r5:00000000 r4:00000000
[ 1610.677100] [<c024a210>] (SyS_sendmsg) from [<c0009700>] (ret_fast_syscall+0x0/0x3c)
[ 1610.684897] ---[ end trace e3199c520974d444 ]---
[ 1610.689536] brcmfmac: [brcmf_netdev_wait_pend8021x] ifp:c65a0480 brcmf_ifname(ifp):wlan1-2 brcmf_get_pend_8021x_cnt(ifp):3
[ 1610.700612] brcmfmac: [brcmf_netdev_wait_pend8021x] List of pending 802.1x skbs:
[ 1610.708021] brcmfmac: [brcmf_netdev_wait_pend8021x] skb:c681f3c0 skb->dev:c65a0000 skb->dev->name:wlan1-2
[ 1610.717611] brcmfmac: [brcmf_netdev_wait_pend8021x] skb:c7116900 skb->dev:c65a0000 skb->dev->name:wlan1-2
[ 1610.727202] brcmfmac: [brcmf_netdev_wait_pend8021x] skb:c7361a80 skb->dev:c65a0000 skb->dev->name:wlan1-2
[ 1612.571349] brcmfmac: CONSOLE: 028341.979 wl0: Proxy STA 78:d6:f0:9b:ba:bc link is already gone !!??
[ 1612.580961] brcmfmac: [brcmf_msgbuf_process_txstatus -> __brcmf_txfinalize] Finally finalizing skb:c681f3c0 skb->dev:c65a0000 skb->dev->name:wlan1-2
[ 1612.594343] brcmfmac: [brcmf_msgbuf_process_txstatus -> __brcmf_txfinalize] Finally finalizing skb:c7116900 skb->dev:c65a0000 skb->dev->name:wlan1-2
[ 1612.607715] brcmfmac: [brcmf_msgbuf_process_txstatus -> __brcmf_txfinalize] Finally finalizing skb:c7361a80 skb->dev:c65a0000 skb->dev->name:wlan1-2
[ 1634.169780] brcmfmac: [brcmf_cfg80211_add_key -> __send_key_to_dongle] ifp:c780ec80 brcmf_ifname(ifp):wlan0
[ 1634.180374] brcmfmac: [brcmf_cfg80211_add_key -> __send_key_to_dongle] ifp:c695bc80 brcmf_ifname(ifp):wlan1
[ 1634.309650] brcmfmac: [brcmf_cfg80211_add_key -> __send_key_to_dongle] ifp:c64c1c80 brcmf_ifname(ifp):wlan0-1
[ 1634.346305] brcmfmac: [brcmf_cfg80211_add_key -> __send_key_to_dongle] ifp:c64d3480 brcmf_ifname(ifp):wlan1-1
[ 1634.679761] brcmfmac: [brcmf_cfg80211_add_key -> __send_key_to_dongle] ifp:c64c5c80 brcmf_ifname(ifp):wlan0-2
[ 1635.294903] brcmfmac: [brcmf_cfg80211_add_key -> __send_key_to_dongle] ifp:c65a0480 brcmf_ifname(ifp):wlan1-2
^ permalink raw reply
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox