* [PATCH v3 0/3] staging: brcm80211: logging code clean up
@ 2011-04-21 11:02 Roland Vossen
2011-04-21 11:02 ` [PATCH v3 1/3] staging: brcm80211: replaced WL_NONE with no_printk Roland Vossen
` (2 more replies)
0 siblings, 3 replies; 9+ messages in thread
From: Roland Vossen @ 2011-04-21 11:02 UTC (permalink / raw)
To: gregkh; +Cc: devel, linux-wireless
Difference with v2,v1 patches: added reference counting of device object by
adding get_device() and put_device() calls. Patch is based on the latest
staging-next so should apply.
v1 patch comment (still valid):
Improved code readability by getting rid of proprietary log functions like
WL_NONE and WL_ERROR. More logging code cleanup changes in the pipeline, but
I would first like to get some feedback of the community on this patch.
Roland Vossen (3):
staging: brcm80211: replaced WL_NONE with no_printk
staging: brcm80211: making device object accessible from wlc and phy
staging: brcm80211: replaced WL_ERROR with dev_err in two files.
drivers/staging/brcm80211/brcmfmac/bcmsdh_linux.c | 2 +-
.../staging/brcm80211/brcmsmac/phy/wlc_phy_cmn.c | 4 +-
.../staging/brcm80211/brcmsmac/phy/wlc_phy_hal.h | 2 +-
.../staging/brcm80211/brcmsmac/phy/wlc_phy_int.h | 1 +
drivers/staging/brcm80211/brcmsmac/wl_dbg.h | 2 -
drivers/staging/brcm80211/brcmsmac/wl_mac80211.c | 273 +++++++++++---------
drivers/staging/brcm80211/brcmsmac/wl_mac80211.h | 1 +
drivers/staging/brcm80211/brcmsmac/wlc_ampdu.c | 8 +-
drivers/staging/brcm80211/brcmsmac/wlc_antsel.c | 7 +-
drivers/staging/brcm80211/brcmsmac/wlc_bmac.c | 3 +-
drivers/staging/brcm80211/brcmsmac/wlc_channel.c | 8 +-
drivers/staging/brcm80211/brcmsmac/wlc_main.c | 10 +-
drivers/staging/brcm80211/brcmsmac/wlc_main.h | 1 +
drivers/staging/brcm80211/brcmsmac/wlc_pub.h | 2 +-
14 files changed, 178 insertions(+), 146 deletions(-)
^ permalink raw reply [flat|nested] 9+ messages in thread* [PATCH v3 1/3] staging: brcm80211: replaced WL_NONE with no_printk 2011-04-21 11:02 [PATCH v3 0/3] staging: brcm80211: logging code clean up Roland Vossen @ 2011-04-21 11:02 ` Roland Vossen 2011-04-21 16:34 ` Joe Perches 2011-04-21 11:02 ` [PATCH v3 2/3] staging: brcm80211: making device object accessible from wlc and phy Roland Vossen 2011-04-21 11:02 ` [PATCH v3 3/3] staging: brcm80211: replaced WL_ERROR with dev_err in two files Roland Vossen 2 siblings, 1 reply; 9+ messages in thread From: Roland Vossen @ 2011-04-21 11:02 UTC (permalink / raw) To: gregkh; +Cc: devel, linux-wireless Code cleanup. Using Linux functions instead of Broadcom functions. Signed-off-by: Roland Vossen <rvossen@broadcom.com> Reviewed-by: Arend van Spriel <arend@broadcom.com> --- drivers/staging/brcm80211/brcmfmac/bcmsdh_linux.c | 2 +- drivers/staging/brcm80211/brcmsmac/wl_dbg.h | 2 - drivers/staging/brcm80211/brcmsmac/wl_mac80211.c | 48 ++++++++++---------- drivers/staging/brcm80211/brcmsmac/wlc_ampdu.c | 8 ++-- drivers/staging/brcm80211/brcmsmac/wlc_channel.c | 8 ++-- drivers/staging/brcm80211/brcmsmac/wlc_main.c | 6 +- 6 files changed, 36 insertions(+), 38 deletions(-) diff --git a/drivers/staging/brcm80211/brcmfmac/bcmsdh_linux.c b/drivers/staging/brcm80211/brcmfmac/bcmsdh_linux.c index 0188417..c80d83d 100644 --- a/drivers/staging/brcm80211/brcmfmac/bcmsdh_linux.c +++ b/drivers/staging/brcm80211/brcmfmac/bcmsdh_linux.c @@ -112,7 +112,7 @@ bool bcmsdh_chipmatch(u16 vendor, u16 device) #ifdef BCMSDIOH_SPI /* This is the PciSpiHost. */ if (device == SPIH_FPGA_ID && vendor == PCI_VENDOR_ID_BROADCOM) { - WL_NONE("Found PCI SPI Host Controller\n"); + no_printk("Found PCI SPI Host Controller\n"); return true; } #endif /* BCMSDIOH_SPI */ diff --git a/drivers/staging/brcm80211/brcmsmac/wl_dbg.h b/drivers/staging/brcm80211/brcmsmac/wl_dbg.h index 54af257..8705b40 100644 --- a/drivers/staging/brcm80211/brcmsmac/wl_dbg.h +++ b/drivers/staging/brcm80211/brcmsmac/wl_dbg.h @@ -20,8 +20,6 @@ /* wl_msg_level is a bit vector with defs in wlioctl.h */ extern u32 wl_msg_level; -#define WL_NONE(fmt, args...) no_printk(fmt, ##args) - #define WL_PRINT(level, fmt, args...) \ do { \ if (wl_msg_level & level) \ diff --git a/drivers/staging/brcm80211/brcmsmac/wl_mac80211.c b/drivers/staging/brcm80211/brcmsmac/wl_mac80211.c index 61da97f..62d4a86 100644 --- a/drivers/staging/brcm80211/brcmsmac/wl_mac80211.c +++ b/drivers/staging/brcm80211/brcmsmac/wl_mac80211.c @@ -171,7 +171,7 @@ static int wl_ops_start(struct ieee80211_hw *hw) bool blocked; /* struct ieee80211_channel *curchan = hw->conf.channel; - WL_NONE("%s : Initial channel: %d\n", __func__, curchan->hw_value); + no_printk("%s : Initial channel: %d\n", __func__, curchan->hw_value); */ ieee80211_wake_queues(hw); @@ -365,7 +365,7 @@ wl_ops_bss_info_changed(struct ieee80211_hw *hw, if (changed & BSS_CHANGED_HT) { /* 802.11n parameters changed */ u16 mode = info->ht_operation_mode; - WL_NONE("%s: HT mode: 0x%04X\n", __func__, mode); + no_printk("%s: HT mode: 0x%04X\n", __func__, mode); wlc_protection_upd(wl->wlc, WLC_PROT_N_CFG, mode & IEEE80211_HT_OP_MODE_PROTECTION); wlc_protection_upd(wl->wlc, WLC_PROT_N_NONGF, @@ -380,13 +380,13 @@ wl_ops_bss_info_changed(struct ieee80211_hw *hw, } if (changed & BSS_CHANGED_BEACON_INT) { /* Beacon interval changed */ - WL_NONE("%s: Beacon Interval: %d\n", + no_printk("%s: Beacon Interval: %d\n", __func__, info->beacon_int); wlc_set(wl->wlc, WLC_SET_BCNPRD, info->beacon_int); } if (changed & BSS_CHANGED_BSSID) { /* BSSID changed, for whatever reason (IBSS and managed mode) */ - WL_NONE("%s: new BSSID: aid %d bss:%pM\n", __func__, + no_printk("%s: new BSSID: aid %d bss:%pM\n", __func__, info->aid, info->bssid); WL_LOCK(wl); wlc_set_addrmatch(wl->wlc, RCM_BSSID_OFFSET, @@ -456,7 +456,7 @@ wl_ops_configure_filter(struct ieee80211_hw *hw, if (changed_flags & FIF_OTHER_BSS) WL_ERROR("FIF_OTHER_BSS\n"); if (changed_flags & FIF_BCN_PRBRESP_PROMISC) { - WL_NONE("FIF_BCN_PRBRESP_PROMISC\n"); + no_printk("FIF_BCN_PRBRESP_PROMISC\n"); WL_LOCK(wl); if (*total_flags & FIF_BCN_PRBRESP_PROMISC) { wl->pub->mac80211_state |= MAC80211_PROMISC_BCNS; @@ -473,14 +473,14 @@ wl_ops_configure_filter(struct ieee80211_hw *hw, static int wl_ops_set_tim(struct ieee80211_hw *hw, struct ieee80211_sta *sta, bool set) { - WL_NONE("%s: Enter\n", __func__); + no_printk("%s: Enter\n", __func__); return 0; } static void wl_ops_sw_scan_start(struct ieee80211_hw *hw) { struct wl_info *wl = hw->priv; - WL_NONE("Scan Start\n"); + no_printk("Scan Start\n"); WL_LOCK(wl); wlc_scan_start(wl->wlc); WL_UNLOCK(wl); @@ -490,7 +490,7 @@ static void wl_ops_sw_scan_start(struct ieee80211_hw *hw) static void wl_ops_sw_scan_complete(struct ieee80211_hw *hw) { struct wl_info *wl = hw->priv; - WL_NONE("Scan Complete\n"); + no_printk("Scan Complete\n"); WL_LOCK(wl); wlc_scan_stop(wl->wlc); WL_UNLOCK(wl); @@ -534,7 +534,7 @@ static void wl_ops_sta_notify(struct ieee80211_hw *hw, struct ieee80211_vif *vif, enum sta_notify_cmd cmd, struct ieee80211_sta *sta) { - WL_NONE("%s: Enter\n", __func__); + no_printk("%s: Enter\n", __func__); switch (cmd) { default: WL_ERROR("%s: Unknown cmd = %d\n", __func__, cmd); @@ -549,8 +549,8 @@ wl_ops_conf_tx(struct ieee80211_hw *hw, u16 queue, { struct wl_info *wl = hw->priv; - WL_NONE("%s: Enter (WME config)\n", __func__); - WL_NONE("queue %d, txop %d, cwmin %d, cwmax %d, aifs %d\n", queue, + no_printk("%s: Enter (WME config)\n", __func__); + no_printk("queue %d, txop %d, cwmin %d, cwmax %d, aifs %d\n", queue, params->txop, params->cw_min, params->cw_max, params->aifs); WL_LOCK(wl); @@ -605,7 +605,7 @@ static int wl_ops_sta_remove(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_sta *sta) { - WL_NONE("%s: Enter\n", __func__); + no_printk("%s: Enter\n", __func__); return 0; } @@ -625,10 +625,10 @@ wl_ops_ampdu_action(struct ieee80211_hw *hw, ASSERT(scb->magic == SCB_MAGIC); switch (action) { case IEEE80211_AMPDU_RX_START: - WL_NONE("%s: action = IEEE80211_AMPDU_RX_START\n", __func__); + no_printk("%s: action = IEEE80211_AMPDU_RX_START\n", __func__); break; case IEEE80211_AMPDU_RX_STOP: - WL_NONE("%s: action = IEEE80211_AMPDU_RX_STOP\n", __func__); + no_printk("%s: action = IEEE80211_AMPDU_RX_STOP\n", __func__); break; case IEEE80211_AMPDU_TX_START: WL_LOCK(wl); @@ -652,7 +652,7 @@ wl_ops_ampdu_action(struct ieee80211_hw *hw, case IEEE80211_AMPDU_TX_OPERATIONAL: /* Not sure what to do here */ /* Power save wakeup */ - WL_NONE("%s: action = IEEE80211_AMPDU_TX_OPERATIONAL\n", + no_printk("%s: action = IEEE80211_AMPDU_TX_OPERATIONAL\n", __func__); break; default: @@ -671,7 +671,7 @@ static void wl_ops_rfkill_poll(struct ieee80211_hw *hw) blocked = wlc_check_radio_disabled(wl->wlc); WL_UNLOCK(wl); - WL_NONE("wl: rfkill_poll: %d\n", blocked); + no_printk("wl: rfkill_poll: %d\n", blocked); wiphy_rfkill_set_hw_state(wl->pub->ieee_hw->wiphy, blocked); } @@ -704,7 +704,7 @@ static const struct ieee80211_ops wl_ops = { */ static int wl_set_hint(struct wl_info *wl, char *abbrev) { - WL_NONE("%s: Sending country code %c%c to MAC80211\n", + no_printk("%s: Sending country code %c%c to MAC80211\n", __func__, abbrev[0], abbrev[1]); return regulatory_hint(wl->pub->ieee_hw->wiphy, abbrev); } @@ -1031,7 +1031,7 @@ static int ieee_hw_rate_init(struct ieee80211_hw *hw) if (wlc_get(wl->wlc, WLC_GET_PHYLIST, (int *)&phy_list) < 0) { WL_ERROR("Phy list failed\n"); } - WL_NONE("%s: phylist = %c\n", __func__, phy_list[0]); + no_printk("%s: phylist = %c\n", __func__, phy_list[0]); if (phy_list[0] == 'n' || phy_list[0] == 'c') { if (phy_list[0] == 'c') { @@ -1056,7 +1056,7 @@ static int ieee_hw_rate_init(struct ieee80211_hw *hw) } } - WL_NONE("%s: 2ghz = %d, 5ghz = %d\n", __func__, 1, has_5g); + no_printk("%s: 2ghz = %d, 5ghz = %d\n", __func__, 1, has_5g); return 0; } @@ -1250,7 +1250,7 @@ static void wl_remove(struct pci_dev *pdev) WL_LOCK(wl); wl_down(wl); WL_UNLOCK(wl); - WL_NONE("%s: Down\n", __func__); + no_printk("%s: Down\n", __func__); } pci_disable_device(pdev); @@ -1838,14 +1838,14 @@ static int wl_request_fw(struct wl_info *wl, struct pci_dev *pdev) break; sprintf(fw_name, "%s-%d.fw", wl_firmwares[i], UCODE_LOADER_API_VER); - WL_NONE("request fw %s\n", fw_name); + no_printk("request fw %s\n", fw_name); status = request_firmware(&wl->fw.fw_bin[i], fw_name, device); if (status) { WL_ERROR("%s: fail to load firmware %s\n", KBUILD_MODNAME, fw_name); return status; } - WL_NONE("request fw %s\n", fw_name); + no_printk("request fw %s\n", fw_name); sprintf(fw_name, "%s_hdr-%d.fw", wl_firmwares[i], UCODE_LOADER_API_VER); status = request_firmware(&wl->fw.fw_hdr[i], fw_name, device); @@ -1856,7 +1856,7 @@ static int wl_request_fw(struct wl_info *wl, struct pci_dev *pdev) } wl->fw.hdr_num_entries[i] = wl->fw.fw_hdr[i]->size / (sizeof(struct wl_fw_hdr)); - WL_NONE("request fw %s find: %d entries\n", + no_printk("request fw %s find: %d entries\n", fw_name, wl->fw.hdr_num_entries[i]); } wl->fw.fw_cnt = i; @@ -1944,7 +1944,7 @@ bool wl_rfkill_set_hw_state(struct wl_info *wl) { bool blocked = wlc_check_radio_disabled(wl->wlc); - WL_NONE("%s: update hw state: blocked=%s\n", __func__, + no_printk("%s: update hw state: blocked=%s\n", __func__, blocked ? "true" : "false"); WL_UNLOCK(wl); wiphy_rfkill_set_hw_state(wl->pub->ieee_hw->wiphy, blocked); diff --git a/drivers/staging/brcm80211/brcmsmac/wlc_ampdu.c b/drivers/staging/brcm80211/brcmsmac/wlc_ampdu.c index 9803449..ea168f5 100644 --- a/drivers/staging/brcm80211/brcmsmac/wlc_ampdu.c +++ b/drivers/staging/brcm80211/brcmsmac/wlc_ampdu.c @@ -251,7 +251,7 @@ void scb_ampdu_cleanup(struct ampdu_info *ampdu, struct scb *scb) */ void wlc_ampdu_reset(struct ampdu_info *ampdu) { - WL_NONE("%s: Entering\n", __func__); + no_printk("%s: Entering\n", __func__); } static void scb_ampdu_update_config(struct ampdu_info *ampdu, struct scb *scb) @@ -680,7 +680,7 @@ wlc_sendampdu(struct ampdu_info *ampdu, struct wlc_txq_info *qi, min(scb_ampdu->max_rxlen, ampdu->max_txlen[mcs][is40][sgi]); - WL_NONE("sendampdu: sgi %d, is40 %d, mcs %d\n", + no_printk("sendampdu: sgi %d, is40 %d, mcs %d\n", sgi, is40, mcs); /* XXX Fix me to honor real max_rxlen */ @@ -733,7 +733,7 @@ wlc_sendampdu(struct ampdu_info *ampdu, struct wlc_txq_info *qi, } if (count == scb_ampdu->max_pdu) { - WL_NONE("Stop taking from q, reached %d deep\n", + no_printk("Stop taking from q, reached %d deep\n", scb_ampdu->max_pdu); break; } @@ -1052,7 +1052,7 @@ wlc_ampdu_dotxstatus_complete(struct ampdu_info *ampdu, struct scb *scb, CHSPEC_CHANNEL(wlc->default_bss->chanspec)); } else { if (supr_status == TX_STATUS_SUPR_FRAG) - WL_NONE("%s: AMPDU frag err\n", + no_printk("%s: AMPDU frag err\n", __func__); else WL_ERROR("%s: wlc_ampdu_dotxstatus: supr_status 0x%x\n", diff --git a/drivers/staging/brcm80211/brcmsmac/wlc_channel.c b/drivers/staging/brcm80211/brcmsmac/wlc_channel.c index 96161c0..7f4c80a 100644 --- a/drivers/staging/brcm80211/brcmsmac/wlc_channel.c +++ b/drivers/staging/brcm80211/brcmsmac/wlc_channel.c @@ -656,7 +656,7 @@ wlc_cm_info_t *wlc_channel_mgr_attach(struct wlc_info *wlc) ccode = getvar(wlc->pub->vars, "ccode"); if (ccode) { strncpy(wlc->pub->srom_ccode, ccode, WLC_CNTRY_BUF_SZ - 1); - WL_NONE("%s: SROM country code is %c%c\n", + no_printk("%s: SROM country code is %c%c\n", __func__, wlc->pub->srom_ccode[0], wlc->pub->srom_ccode[1]); } @@ -708,9 +708,9 @@ wlc_set_countrycode_rev(wlc_cm_info_t *wlc_cm, char mapped_ccode[WLC_CNTRY_BUF_SZ]; uint mapped_regrev; - WL_NONE("%s: (country_abbrev \"%s\", ccode \"%s\", regrev %d) SPROM \"%s\"/%u\n", - __func__, country_abbrev, ccode, regrev, - wlc_cm->srom_ccode, wlc_cm->srom_regrev); + no_printk("%s: (country_abbrev \"%s\", ccode \"%s\", regrev %d) SPROM" + " \"%s\"/%u\n", __func__, country_abbrev, ccode, regrev, + wlc_cm->srom_ccode, wlc_cm->srom_regrev); /* if regrev is -1, lookup the mapped country code, * otherwise use the ccode and regrev directly diff --git a/drivers/staging/brcm80211/brcmsmac/wlc_main.c b/drivers/staging/brcm80211/brcmsmac/wlc_main.c index 113de97..2cf154b 100644 --- a/drivers/staging/brcm80211/brcmsmac/wlc_main.c +++ b/drivers/staging/brcm80211/brcmsmac/wlc_main.c @@ -1684,7 +1684,7 @@ void *wlc_attach(void *wl, u16 vendor, u16 device, uint unit, bool piomode, struct wlc_txq_info *qi; uint n_disabled; - WL_NONE("wl%d: %s: vendor 0x%x device 0x%x\n", + no_printk("wl%d: %s: vendor 0x%x device 0x%x\n", unit, __func__, vendor, device); /* allocate struct wlc_info state and its substructures */ @@ -3019,7 +3019,7 @@ _wlc_ioctl(struct wlc_info *wlc, int cmd, void *arg, int len, bool_val = val != 0; if (cmd != WLC_SET_CHANNEL) - WL_NONE("WLC_IOCTL: cmd %d val 0x%x (%d) len %d\n", + no_printk("WLC_IOCTL: cmd %d val 0x%x (%d) len %d\n", cmd, (uint)val, val, len); bcmerror = 0; @@ -6552,7 +6552,7 @@ wlc_dotxstatus(struct wlc_info *wlc, tx_status_t *txs, u32 frm_tx2) supr_status = txs->status & TX_STATUS_SUPR_MASK; if (supr_status == TX_STATUS_SUPR_BADCH) - WL_NONE("%s: Pkt tx suppressed, possibly channel %d\n", + no_printk("%s: Pkt tx suppressed, possibly channel %d\n", __func__, CHSPEC_CHANNEL(wlc->default_bss->chanspec)); tx_rts = cpu_to_le16(txh->MacTxControlLow) & TXC_SENDRTS; -- 1.7.1 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH v3 1/3] staging: brcm80211: replaced WL_NONE with no_printk 2011-04-21 11:02 ` [PATCH v3 1/3] staging: brcm80211: replaced WL_NONE with no_printk Roland Vossen @ 2011-04-21 16:34 ` Joe Perches 2011-04-21 17:10 ` Arend van Spriel 0 siblings, 1 reply; 9+ messages in thread From: Joe Perches @ 2011-04-21 16:34 UTC (permalink / raw) To: Roland Vossen; +Cc: gregkh, devel, linux-wireless On Thu, 2011-04-21 at 13:02 +0200, Roland Vossen wrote: [] > diff --git a/drivers/staging/brcm80211/brcmsmac/wl_dbg.h b/drivers/staging/brcm80211/brcmsmac/wl_dbg.h > index 54af257..8705b40 100644 > --- a/drivers/staging/brcm80211/brcmsmac/wl_dbg.h > +++ b/drivers/staging/brcm80211/brcmsmac/wl_dbg.h > @@ -20,8 +20,6 @@ > /* wl_msg_level is a bit vector with defs in wlioctl.h */ > extern u32 wl_msg_level; > > -#define WL_NONE(fmt, args...) no_printk(fmt, ##args) > - I think you misunderstand the purpose of no_printk. no_printk is used simply to validate format arguments and not emit anything. It's typically used for debugging like #ifndef DEBUG #define FOO_DBG(fmt, ...) printk(fmt, ##__VA_ARGS__) #else #define FOO_DBG(fmt, ...) no_printk(fmt, ##__VA_ARGS__) #endif What you've got here is effectively a comment. More likely there was a mistake in the initial conversion to of WL_NONE to no_printk. ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v3 1/3] staging: brcm80211: replaced WL_NONE with no_printk 2011-04-21 16:34 ` Joe Perches @ 2011-04-21 17:10 ` Arend van Spriel 2011-04-21 17:14 ` Joe Perches 0 siblings, 1 reply; 9+ messages in thread From: Arend van Spriel @ 2011-04-21 17:10 UTC (permalink / raw) To: Roland Vossen, Joe Perches Cc: gregkh@suse.de, devel@linuxdriverproject.org, linux-wireless@vger.kernel.org On Thu, 21 Apr 2011 18:34:40 +0200, Joe Perches <joe@perches.com> wrote: > On Thu, 2011-04-21 at 13:02 +0200, Roland Vossen wrote: > [] >> diff --git a/drivers/staging/brcm80211/brcmsmac/wl_dbg.h >> b/drivers/staging/brcm80211/brcmsmac/wl_dbg.h >> index 54af257..8705b40 100644 >> --- a/drivers/staging/brcm80211/brcmsmac/wl_dbg.h >> +++ b/drivers/staging/brcm80211/brcmsmac/wl_dbg.h >> @@ -20,8 +20,6 @@ >> /* wl_msg_level is a bit vector with defs in wlioctl.h */ >> extern u32 wl_msg_level; >> >> -#define WL_NONE(fmt, args...) no_printk(fmt, ##args) >> - > > I think you misunderstand the purpose of no_printk. > no_printk is used simply to validate format arguments > and not emit anything. > > It's typically used for debugging like > > #ifndef DEBUG > #define FOO_DBG(fmt, ...) printk(fmt, ##__VA_ARGS__) > #else > #define FOO_DBG(fmt, ...) no_printk(fmt, ##__VA_ARGS__) > #endif > > What you've got here is effectively a comment. > If you want to debug a specific source file you could do following in that particular source file: #undef no_printk #define no_printk printk Not sure whether that is the intended use here. Gr. AvS -- "The world is indeed comic, but the joke is on mankind." — H.P. Lovecraft ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v3 1/3] staging: brcm80211: replaced WL_NONE with no_printk 2011-04-21 17:10 ` Arend van Spriel @ 2011-04-21 17:14 ` Joe Perches 2011-04-21 17:32 ` Arend van Spriel 0 siblings, 1 reply; 9+ messages in thread From: Joe Perches @ 2011-04-21 17:14 UTC (permalink / raw) To: Arend van Spriel Cc: Roland Vossen, gregkh@suse.de, devel@linuxdriverproject.org, linux-wireless@vger.kernel.org On Thu, 2011-04-21 at 19:10 +0200, Arend van Spriel wrote: > If you want to debug a specific source file you could do following in that > particular source file: > #undef no_printk > #define no_printk printk > Not sure whether that is the intended use here. True, but that's entirely backwards and not very sensible either. For that you use pr_debug/dev_dbg/etc and then add #define DEBUG. ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v3 1/3] staging: brcm80211: replaced WL_NONE with no_printk 2011-04-21 17:14 ` Joe Perches @ 2011-04-21 17:32 ` Arend van Spriel 0 siblings, 0 replies; 9+ messages in thread From: Arend van Spriel @ 2011-04-21 17:32 UTC (permalink / raw) To: Joe Perches Cc: Roland Vossen, gregkh@suse.de, devel@linuxdriverproject.org, linux-wireless@vger.kernel.org On Thu, 21 Apr 2011 19:14:00 +0200, Joe Perches <joe@perches.com> wrote: > On Thu, 2011-04-21 at 19:10 +0200, Arend van Spriel wrote: >> If you want to debug a specific source file you could do following in >> that >> particular source file: >> #undef no_printk >> #define no_printk printk >> Not sure whether that is the intended use here. > > True, but that's entirely backwards > and not very sensible either. > > For that you use pr_debug/dev_dbg/etc > and then add #define DEBUG. I see. I think WL_NONE was used like this and we mistakenly decided no_printk was the equivalent. Thanks for the clarifications. Gr. AvS -- "The world is indeed comic, but the joke is on mankind." — H.P. Lovecraft ^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH v3 2/3] staging: brcm80211: making device object accessible from wlc and phy 2011-04-21 11:02 [PATCH v3 0/3] staging: brcm80211: logging code clean up Roland Vossen 2011-04-21 11:02 ` [PATCH v3 1/3] staging: brcm80211: replaced WL_NONE with no_printk Roland Vossen @ 2011-04-21 11:02 ` Roland Vossen 2011-04-21 11:02 ` [PATCH v3 3/3] staging: brcm80211: replaced WL_ERROR with dev_err in two files Roland Vossen 2 siblings, 0 replies; 9+ messages in thread From: Roland Vossen @ 2011-04-21 11:02 UTC (permalink / raw) To: gregkh; +Cc: devel, linux-wireless Next commits will replace WL_ERROR with dev_err and friends. Because these functions require a linux device object, device object pointers have been added to three data structures. Signed-off-by: Roland Vossen <rvossen@broadcom.com> Reviewed-by: Arend van Spriel <arend@broadcom.com> --- .../staging/brcm80211/brcmsmac/phy/wlc_phy_cmn.c | 4 +++- .../staging/brcm80211/brcmsmac/phy/wlc_phy_hal.h | 2 +- .../staging/brcm80211/brcmsmac/phy/wlc_phy_int.h | 1 + drivers/staging/brcm80211/brcmsmac/wl_mac80211.c | 9 +++++---- drivers/staging/brcm80211/brcmsmac/wl_mac80211.h | 1 + drivers/staging/brcm80211/brcmsmac/wlc_bmac.c | 3 ++- drivers/staging/brcm80211/brcmsmac/wlc_main.c | 4 +++- drivers/staging/brcm80211/brcmsmac/wlc_main.h | 1 + drivers/staging/brcm80211/brcmsmac/wlc_pub.h | 2 +- 9 files changed, 18 insertions(+), 9 deletions(-) diff --git a/drivers/staging/brcm80211/brcmsmac/phy/wlc_phy_cmn.c b/drivers/staging/brcm80211/brcmsmac/phy/wlc_phy_cmn.c index 873d64c..9790de2 100644 --- a/drivers/staging/brcm80211/brcmsmac/phy/wlc_phy_cmn.c +++ b/drivers/staging/brcm80211/brcmsmac/phy/wlc_phy_cmn.c @@ -581,7 +581,8 @@ void wlc_phy_shared_detach(shared_phy_t *phy_sh) } } -wlc_phy_t *wlc_phy_attach(shared_phy_t *sh, void *regs, int bandtype, char *vars) +wlc_phy_t *wlc_phy_attach(shared_phy_t *sh, void *regs, int bandtype, + char *vars, struct device *dev) { phy_info_t *pi; u32 sflags = 0; @@ -611,6 +612,7 @@ wlc_phy_t *wlc_phy_attach(shared_phy_t *sh, void *regs, int bandtype, char *vars if (pi == NULL) { return NULL; } + pi->dev = dev; pi->regs = (d11regs_t *) regs; pi->sh = sh; pi->phy_init_por = true; diff --git a/drivers/staging/brcm80211/brcmsmac/phy/wlc_phy_hal.h b/drivers/staging/brcm80211/brcmsmac/phy/wlc_phy_hal.h index bf962d5..6faf7a5 100644 --- a/drivers/staging/brcm80211/brcmsmac/phy/wlc_phy_hal.h +++ b/drivers/staging/brcm80211/brcmsmac/phy/wlc_phy_hal.h @@ -149,7 +149,7 @@ typedef struct shared_phy_params { extern shared_phy_t *wlc_phy_shared_attach(shared_phy_params_t *shp); extern void wlc_phy_shared_detach(shared_phy_t *phy_sh); extern wlc_phy_t *wlc_phy_attach(shared_phy_t *sh, void *regs, int bandtype, - char *vars); + char *vars, struct device *dev); extern void wlc_phy_detach(wlc_phy_t *ppi); extern bool wlc_phy_get_phyversion(wlc_phy_t *pih, u16 *phytype, diff --git a/drivers/staging/brcm80211/brcmsmac/phy/wlc_phy_int.h b/drivers/staging/brcm80211/brcmsmac/phy/wlc_phy_int.h index 6e12a95..479a9b0 100644 --- a/drivers/staging/brcm80211/brcmsmac/phy/wlc_phy_int.h +++ b/drivers/staging/brcm80211/brcmsmac/phy/wlc_phy_int.h @@ -936,6 +936,7 @@ struct phy_info { u8 phycal_tempdelta; u32 mcs20_po; u32 mcs40_po; + struct device *dev; }; typedef s32 fixed; diff --git a/drivers/staging/brcm80211/brcmsmac/wl_mac80211.c b/drivers/staging/brcm80211/brcmsmac/wl_mac80211.c index 62d4a86..1477419 100644 --- a/drivers/staging/brcm80211/brcmsmac/wl_mac80211.c +++ b/drivers/staging/brcm80211/brcmsmac/wl_mac80211.c @@ -746,6 +746,8 @@ static struct wl_info *wl_attach(u16 vendor, u16 device, unsigned long regs, wl = hw->priv; ASSERT(wl); + wl->dev = get_device(&hw->wiphy->dev); + atomic_set(&wl->callbacks, 0); /* setup the bottom half handler */ @@ -784,7 +786,8 @@ static struct wl_info *wl_attach(u16 vendor, u16 device, unsigned long regs, /* common load-time initialization */ wl->wlc = wlc_attach((void *)wl, vendor, device, unit, wl->piomode, - wl->regsva, wl->bcm_bustype, btparam, &err); + wl->regsva, wl->bcm_bustype, btparam, &err, + &hw->wiphy->dev); wl_release_fw(wl); if (!wl->wlc) { WL_ERROR("%s: wlc_attach() failed with code %d\n", @@ -847,7 +850,6 @@ fail1: } - #define CHAN2GHZ(channel, freqency, chflags) { \ .band = IEEE80211_BAND_2GHZ, \ .center_freq = (freqency), \ @@ -1253,9 +1255,7 @@ static void wl_remove(struct pci_dev *pdev) no_printk("%s: Down\n", __func__); } pci_disable_device(pdev); - wl_free(wl); - pci_set_drvdata(pdev, NULL); ieee80211_free_hw(hw); } @@ -1388,6 +1388,7 @@ static void wl_free(struct wl_info *wl) iounmap((void *)wl->regsva); } wl->regsva = NULL; + put_device(wl->dev); } /* diff --git a/drivers/staging/brcm80211/brcmsmac/wl_mac80211.h b/drivers/staging/brcm80211/brcmsmac/wl_mac80211.h index f3198cc..6b0d4e0 100644 --- a/drivers/staging/brcm80211/brcmsmac/wl_mac80211.h +++ b/drivers/staging/brcm80211/brcmsmac/wl_mac80211.h @@ -72,6 +72,7 @@ struct wl_info { /* ping-pong stats counters updated by Linux watchdog */ struct net_device_stats stats_watchdog[2]; struct wl_firmware fw; + struct device *dev; /* linux device object */ }; #define WL_LOCK(wl) spin_lock_bh(&(wl)->lock) diff --git a/drivers/staging/brcm80211/brcmsmac/wlc_bmac.c b/drivers/staging/brcm80211/brcmsmac/wlc_bmac.c index f52b339..d596476 100644 --- a/drivers/staging/brcm80211/brcmsmac/wlc_bmac.c +++ b/drivers/staging/brcm80211/brcmsmac/wlc_bmac.c @@ -849,7 +849,8 @@ int wlc_bmac_attach(struct wlc_info *wlc, u16 vendor, u16 device, uint unit, /* Get a phy for this band */ wlc_hw->band->pi = wlc_phy_attach(wlc_hw->phy_sh, - (void *)regs, wlc_bmac_bandtype(wlc_hw), vars); + (void *)regs, wlc_bmac_bandtype(wlc_hw), vars, + wlc->dev); if (wlc_hw->band->pi == NULL) { WL_ERROR("wl%d: wlc_bmac_attach: wlc_phy_attach failed\n", unit); diff --git a/drivers/staging/brcm80211/brcmsmac/wlc_main.c b/drivers/staging/brcm80211/brcmsmac/wlc_main.c index 2cf154b..a8b8991 100644 --- a/drivers/staging/brcm80211/brcmsmac/wlc_main.c +++ b/drivers/staging/brcm80211/brcmsmac/wlc_main.c @@ -1675,7 +1675,8 @@ struct wlc_pub *wlc_pub(void *wlc) * The common driver entry routine. Error codes should be unique */ void *wlc_attach(void *wl, u16 vendor, u16 device, uint unit, bool piomode, - void *regsva, uint bustype, void *btparam, uint *perr) + void *regsva, uint bustype, void *btparam, uint *perr, + struct device *dev) { struct wlc_info *wlc; uint err = 0; @@ -1691,6 +1692,7 @@ void *wlc_attach(void *wl, u16 vendor, u16 device, uint unit, bool piomode, wlc = (struct wlc_info *) wlc_attach_malloc(unit, &err, device); if (wlc == NULL) goto fail; + wlc->dev = dev; pub = wlc->pub; #if defined(BCMDBG) diff --git a/drivers/staging/brcm80211/brcmsmac/wlc_main.h b/drivers/staging/brcm80211/brcmsmac/wlc_main.h index f11161d..c9cc63a 100644 --- a/drivers/staging/brcm80211/brcmsmac/wlc_main.h +++ b/drivers/staging/brcm80211/brcmsmac/wlc_main.h @@ -757,6 +757,7 @@ struct wlc_info { */ bool pr80838_war; uint hwrxoff; + struct device *dev; /* Linux device object */ }; /* antsel module specific state */ diff --git a/drivers/staging/brcm80211/brcmsmac/wlc_pub.h b/drivers/staging/brcm80211/brcmsmac/wlc_pub.h index 273c508..b9d4813 100644 --- a/drivers/staging/brcm80211/brcmsmac/wlc_pub.h +++ b/drivers/staging/brcm80211/brcmsmac/wlc_pub.h @@ -482,7 +482,7 @@ extern const u8 wme_fifo2ac[]; /* common functions for every port */ extern void *wlc_attach(void *wl, u16 vendor, u16 device, uint unit, bool piomode, void *regsva, uint bustype, void *btparam, - uint *perr); + uint *perr, struct device *dev); extern uint wlc_detach(struct wlc_info *wlc); extern int wlc_up(struct wlc_info *wlc); extern uint wlc_down(struct wlc_info *wlc); -- 1.7.1 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH v3 3/3] staging: brcm80211: replaced WL_ERROR with dev_err in two files. 2011-04-21 11:02 [PATCH v3 0/3] staging: brcm80211: logging code clean up Roland Vossen 2011-04-21 11:02 ` [PATCH v3 1/3] staging: brcm80211: replaced WL_NONE with no_printk Roland Vossen 2011-04-21 11:02 ` [PATCH v3 2/3] staging: brcm80211: making device object accessible from wlc and phy Roland Vossen @ 2011-04-21 11:02 ` Roland Vossen 2011-05-12 11:35 ` NULL pointer dereference in nl80211 Roland Vossen 2 siblings, 1 reply; 9+ messages in thread From: Roland Vossen @ 2011-04-21 11:02 UTC (permalink / raw) To: gregkh; +Cc: devel, linux-wireless Code cleanup. Use Linux function instead of Broadcom specific one. On spots where the device object is not yet available, pr_err() is used instead. Signed-off-by: Roland Vossen <rvossen@broadcom.com> Reviewed-by: Arend van Spriel <arend@broadcom.com> --- drivers/staging/brcm80211/brcmsmac/wl_mac80211.c | 216 ++++++++++++---------- drivers/staging/brcm80211/brcmsmac/wlc_antsel.c | 7 +- 2 files changed, 124 insertions(+), 99 deletions(-) diff --git a/drivers/staging/brcm80211/brcmsmac/wl_mac80211.c b/drivers/staging/brcm80211/brcmsmac/wl_mac80211.c index 1477419..1417033 100644 --- a/drivers/staging/brcm80211/brcmsmac/wl_mac80211.c +++ b/drivers/staging/brcm80211/brcmsmac/wl_mac80211.c @@ -16,6 +16,8 @@ #define __UNDEF_NO_VERSION__ +#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt + #include <linux/kernel.h> #include <linux/etherdevice.h> #include <linux/types.h> @@ -156,7 +158,7 @@ static void wl_ops_tx(struct ieee80211_hw *hw, struct sk_buff *skb) WL_LOCK(wl); if (!wl->pub->up) { - WL_ERROR("ops->tx called while down\n"); + dev_err(wl->dev, "ops->tx called while down\n"); kfree_skb(skb); goto done; } @@ -205,8 +207,8 @@ wl_ops_add_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif) vif->type != NL80211_IFTYPE_STATION && vif->type != NL80211_IFTYPE_WDS && vif->type != NL80211_IFTYPE_ADHOC) { - WL_ERROR("%s: Attempt to add type %d, only STA for now\n", - __func__, vif->type); + dev_err(&hw->wiphy->dev, "%s: Attempt to add type %d, only" + " STA for now\n", __func__, vif->type); return -EOPNOTSUPP; } @@ -216,7 +218,8 @@ wl_ops_add_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif) WL_UNLOCK(wl); if (err != 0) { - WL_ERROR("%s: wl_up() returned %d\n", __func__, err); + dev_err(wl->dev, "%s: wl_up() returned %d\n", __func__, + err); } return err; } @@ -251,7 +254,8 @@ ieee_set_channel(struct ieee80211_hw *hw, struct ieee80211_channel *chan, break; case NL80211_CHAN_HT40MINUS: case NL80211_CHAN_HT40PLUS: - WL_ERROR("%s: Need to implement 40 Mhz Channels!\n", __func__); + dev_err(wl->dev, + "%s: Need to implement 40 Mhz Channels!\n", __func__); err = 1; break; } @@ -267,13 +271,15 @@ static int wl_ops_config(struct ieee80211_hw *hw, u32 changed) struct wl_info *wl = HW_TO_WL(hw); int err = 0; int new_int; + struct device *dev; WL_LOCK(wl); + dev = wl->dev; if (changed & IEEE80211_CONF_CHANGE_LISTEN_INTERVAL) { if (wlc_iovar_setint (wl->wlc, "bcn_li_bcn", conf->listen_interval)) { - WL_ERROR("%s: Error setting listen_interval\n", - __func__); + dev_err(dev, "%s: Error setting listen_interval\n", + __func__); err = -EIO; goto config_out; } @@ -281,25 +287,26 @@ static int wl_ops_config(struct ieee80211_hw *hw, u32 changed) ASSERT(new_int == conf->listen_interval); } if (changed & IEEE80211_CONF_CHANGE_MONITOR) - WL_ERROR("%s: change monitor mode: %s (implement)\n", __func__, - conf->flags & IEEE80211_CONF_MONITOR ? - "true" : "false"); + dev_err(dev, "%s: change monitor mode: %s (implement)\n", + __func__, conf->flags & IEEE80211_CONF_MONITOR ? + "true" : "false"); if (changed & IEEE80211_CONF_CHANGE_PS) - WL_ERROR("%s: change power-save mode: %s (implement)\n", - __func__, conf->flags & IEEE80211_CONF_PS ? - "true" : "false"); + dev_err(dev, "%s: change power-save mode: %s (implement)\n", + __func__, conf->flags & IEEE80211_CONF_PS ? + "true" : "false"); if (changed & IEEE80211_CONF_CHANGE_POWER) { if (wlc_iovar_setint (wl->wlc, "qtxpower", conf->power_level * 4)) { - WL_ERROR("%s: Error setting power_level\n", __func__); + dev_err(dev, "%s: Error setting power_level\n", + __func__); err = -EIO; goto config_out; } wlc_iovar_getint(wl->wlc, "qtxpower", &new_int); if (new_int != (conf->power_level * 4)) - WL_ERROR("%s: Power level req != actual, %d %d\n", - __func__, conf->power_level * 4, new_int); + dev_err(dev, "%s: Power level req != actual, %d %d\n", + __func__, conf->power_level * 4, new_int); } if (changed & IEEE80211_CONF_CHANGE_CHANNEL) { err = ieee_set_channel(hw, conf->channel, conf->channel_type); @@ -308,13 +315,13 @@ static int wl_ops_config(struct ieee80211_hw *hw, u32 changed) if (wlc_set (wl->wlc, WLC_SET_SRL, conf->short_frame_max_tx_count) < 0) { - WL_ERROR("%s: Error setting srl\n", __func__); + dev_err(dev, "%s: Error setting srl\n", __func__); err = -EIO; goto config_out; } if (wlc_set(wl->wlc, WLC_SET_LRL, conf->long_frame_max_tx_count) < 0) { - WL_ERROR("%s: Error setting lrl\n", __func__); + dev_err(dev, "%s: Error setting lrl\n", __func__); err = -EIO; goto config_out; } @@ -331,24 +338,25 @@ wl_ops_bss_info_changed(struct ieee80211_hw *hw, struct ieee80211_bss_conf *info, u32 changed) { struct wl_info *wl = HW_TO_WL(hw); + struct device *dev = wl->dev; int val; if (changed & BSS_CHANGED_ASSOC) { /* association status changed (associated/disassociated) * also implies a change in the AID. */ - WL_ERROR("%s: %s: %sassociated\n", KBUILD_MODNAME, __func__, - info->assoc ? "" : "dis"); + dev_err(dev, "%s: %s: %sassociated\n", KBUILD_MODNAME, + __func__, info->assoc ? "" : "dis"); wlc_associate_upd(wl->wlc, info->assoc); } if (changed & BSS_CHANGED_ERP_CTS_PROT) { /* CTS protection changed */ - WL_ERROR("%s: use_cts_prot: %s (implement)\n", __func__, + dev_err(dev, "%s: use_cts_prot: %s (implement)\n", __func__, info->use_cts_prot ? "true" : "false"); } if (changed & BSS_CHANGED_ERP_PREAMBLE) { /* preamble changed */ - WL_ERROR("%s: short preamble: %s (implement)\n", __func__, + dev_err(dev, "%s: short preamble: %s (implement)\n", __func__, info->use_short_preamble ? "true" : "false"); } if (changed & BSS_CHANGED_ERP_SLOT) { @@ -375,8 +383,8 @@ wl_ops_bss_info_changed(struct ieee80211_hw *hw, } if (changed & BSS_CHANGED_BASIC_RATES) { /* Basic rateset changed */ - WL_ERROR("%s: Need to change Basic Rates: 0x%x (implement)\n", - __func__, (u32) info->basic_rates); + dev_err(dev, "%s: Need to change Basic Rates: 0x%x" + " (implement)\n", __func__, (u32) info->basic_rates); } if (changed & BSS_CHANGED_BEACON_INT) { /* Beacon interval changed */ @@ -395,40 +403,40 @@ wl_ops_bss_info_changed(struct ieee80211_hw *hw, } if (changed & BSS_CHANGED_BEACON) { /* Beacon data changed, retrieve new beacon (beaconing modes) */ - WL_ERROR("%s: beacon changed\n", __func__); + dev_err(dev, "%s: beacon changed\n", __func__); } if (changed & BSS_CHANGED_BEACON_ENABLED) { /* Beaconing should be enabled/disabled (beaconing modes) */ - WL_ERROR("%s: Beacon enabled: %s\n", __func__, + dev_err(dev, "%s: Beacon enabled: %s\n", __func__, info->enable_beacon ? "true" : "false"); } if (changed & BSS_CHANGED_CQM) { /* Connection quality monitor config changed */ - WL_ERROR("%s: cqm change: threshold %d, hys %d (implement)\n", + dev_err(dev, "%s: cqm change: threshold %d, hys %d (implement)\n", __func__, info->cqm_rssi_thold, info->cqm_rssi_hyst); } if (changed & BSS_CHANGED_IBSS) { /* IBSS join status changed */ - WL_ERROR("%s: IBSS joined: %s (implement)\n", __func__, + dev_err(dev, "%s: IBSS joined: %s (implement)\n", __func__, info->ibss_joined ? "true" : "false"); } if (changed & BSS_CHANGED_ARP_FILTER) { /* Hardware ARP filter address list or state changed */ - WL_ERROR("%s: arp filtering: enabled %s, count %d (implement)\n", - __func__, info->arp_filter_enabled ? "true" : "false", - info->arp_addr_cnt); + dev_err(dev, "%s: arp filtering: enabled %s, count %d" + " (implement)\n", __func__, info->arp_filter_enabled ? + "true" : "false", info->arp_addr_cnt); } if (changed & BSS_CHANGED_QOS) { /* * QoS for this association was enabled/disabled. * Note that it is only ever disabled for station mode. */ - WL_ERROR("%s: qos enabled: %s (implement)\n", __func__, + dev_err(dev, "%s: qos enabled: %s (implement)\n", __func__, info->qos ? "true" : "false"); } if (changed & BSS_CHANGED_IDLE) { /* Idle changed for this BSS/interface */ - WL_ERROR("%s: BSS idle: %s (implement)\n", __func__, + dev_err(dev, "%s: BSS idle: %s (implement)\n", __func__, info->idle ? "true" : "false"); } return; @@ -440,21 +448,22 @@ wl_ops_configure_filter(struct ieee80211_hw *hw, unsigned int *total_flags, u64 multicast) { struct wl_info *wl = hw->priv; + struct device *dev = wl->dev; changed_flags &= MAC_FILTERS; *total_flags &= MAC_FILTERS; if (changed_flags & FIF_PROMISC_IN_BSS) - WL_ERROR("FIF_PROMISC_IN_BSS\n"); + dev_err(dev, "FIF_PROMISC_IN_BSS\n"); if (changed_flags & FIF_ALLMULTI) - WL_ERROR("FIF_ALLMULTI\n"); + dev_err(dev, "FIF_ALLMULTI\n"); if (changed_flags & FIF_FCSFAIL) - WL_ERROR("FIF_FCSFAIL\n"); + dev_err(dev, "FIF_FCSFAIL\n"); if (changed_flags & FIF_PLCPFAIL) - WL_ERROR("FIF_PLCPFAIL\n"); + dev_err(dev, "FIF_PLCPFAIL\n"); if (changed_flags & FIF_CONTROL) - WL_ERROR("FIF_CONTROL\n"); + dev_err(dev, "FIF_CONTROL\n"); if (changed_flags & FIF_OTHER_BSS) - WL_ERROR("FIF_OTHER_BSS\n"); + dev_err(dev, "FIF_OTHER_BSS\n"); if (changed_flags & FIF_BCN_PRBRESP_PROMISC) { no_printk("FIF_BCN_PRBRESP_PROMISC\n"); WL_LOCK(wl); @@ -499,7 +508,7 @@ static void wl_ops_sw_scan_complete(struct ieee80211_hw *hw) static void wl_ops_set_tsf(struct ieee80211_hw *hw, u64 tsf) { - WL_ERROR("%s: Enter\n", __func__); + dev_err(&hw->wiphy->dev, "%s: Enter\n", __func__); return; } @@ -537,7 +546,8 @@ wl_ops_sta_notify(struct ieee80211_hw *hw, struct ieee80211_vif *vif, no_printk("%s: Enter\n", __func__); switch (cmd) { default: - WL_ERROR("%s: Unknown cmd = %d\n", __func__, cmd); + dev_err(&hw->wiphy->dev, "%s: Unknown cmd = %d\n", __func__, + cmd); break; } return; @@ -562,7 +572,7 @@ wl_ops_conf_tx(struct ieee80211_hw *hw, u16 queue, static u64 wl_ops_get_tsf(struct ieee80211_hw *hw) { - WL_ERROR("%s: Enter\n", __func__); + dev_err(&hw->wiphy->dev, "%s: Enter\n", __func__); return 0; } @@ -635,7 +645,8 @@ wl_ops_ampdu_action(struct ieee80211_hw *hw, status = wlc_aggregatable(wl->wlc, tid); WL_UNLOCK(wl); if (!status) { - /* WL_ERROR("START: tid %d is not agg' able, return FAILURE to stack\n", tid); */ + dev_err(wl->dev, "START: tid %d is not agg\'able\n", + tid); return -1; } /* XXX: Use the starting sequence number provided ... */ @@ -656,7 +667,8 @@ wl_ops_ampdu_action(struct ieee80211_hw *hw, __func__); break; default: - WL_ERROR("%s: Invalid command, ignoring\n", __func__); + dev_err(wl->dev, "%s: Invalid command, ignoring\n", + __func__); } return 0; @@ -736,10 +748,6 @@ static struct wl_info *wl_attach(u16 vendor, u16 device, unsigned long regs, unit = wl_found; err = 0; - if (unit < 0) { - WL_ERROR("wl%d: unit number overflow, exiting\n", unit); - return NULL; - } /* allocate private info */ hw = pci_get_drvdata(btparam); /* btparam == pdev */ @@ -748,6 +756,12 @@ static struct wl_info *wl_attach(u16 vendor, u16 device, unsigned long regs, wl->dev = get_device(&hw->wiphy->dev); + if (unit < 0) { + dev_err(wl->dev, "wl%d: unit number overflow, exiting\n", unit); + put_device(wl->dev); + return NULL; + } + atomic_set(&wl->callbacks, 0); /* setup the bottom half handler */ @@ -769,7 +783,7 @@ static struct wl_info *wl_attach(u16 vendor, u16 device, unsigned long regs, wl->regsva = ioremap_nocache(base_addr, PCI_BAR0_WINSZ); if (wl->regsva == NULL) { - WL_ERROR("wl%d: ioremap() failed\n", unit); + dev_err(wl->dev, "wl%d: ioremap() failed\n", unit); goto fail; } spin_lock_init(&wl->lock); @@ -777,8 +791,8 @@ static struct wl_info *wl_attach(u16 vendor, u16 device, unsigned long regs, /* prepare ucode */ if (wl_request_fw(wl, (struct pci_dev *)btparam) < 0) { - WL_ERROR("%s: Failed to find firmware usually in %s\n", - KBUILD_MODNAME, "/lib/firmware/brcm"); + dev_err(wl->dev, "%s: Failed to find firmware usually in %s\n", + KBUILD_MODNAME, "/lib/firmware/brcm"); wl_release_fw(wl); wl_remove((struct pci_dev *)btparam); goto fail1; @@ -790,8 +804,8 @@ static struct wl_info *wl_attach(u16 vendor, u16 device, unsigned long regs, &hw->wiphy->dev); wl_release_fw(wl); if (!wl->wlc) { - WL_ERROR("%s: wlc_attach() failed with code %d\n", - KBUILD_MODNAME, err); + dev_err(wl->dev, "%s: wlc_attach() failed with code %d\n", + KBUILD_MODNAME, err); goto fail; } wl->pub = wlc_pub(wl->wlc); @@ -802,12 +816,13 @@ static struct wl_info *wl_attach(u16 vendor, u16 device, unsigned long regs, if (wlc_iovar_setint(wl->wlc, "mpc", 0)) { - WL_ERROR("wl%d: Error setting MPC variable to 0\n", unit); + dev_err(wl->dev, "wl%d: Error setting MPC variable to 0\n", + unit); } /* register our interrupt handler */ if (request_irq(irq, wl_isr, IRQF_SHARED, KBUILD_MODNAME, wl)) { - WL_ERROR("wl%d: request_irq() failed\n", unit); + dev_err(wl->dev, "wl%d: request_irq() failed\n", unit); goto fail; } wl->irq = irq; @@ -817,7 +832,8 @@ static struct wl_info *wl_attach(u16 vendor, u16 device, unsigned long regs, NULL); if (ieee_hw_init(hw)) { - WL_ERROR("wl%d: %s: ieee_hw_init failed!\n", unit, __func__); + dev_err(wl->dev, "wl%d: %s: ieee_hw_init failed!\n", unit, + __func__); goto fail; } @@ -827,8 +843,8 @@ static struct wl_info *wl_attach(u16 vendor, u16 device, unsigned long regs, err = ieee80211_register_hw(hw); if (err) { - WL_ERROR("%s: ieee80211_register_hw failed, status %d\n", - __func__, err); + dev_err(wl->dev, "%s: ieee80211_register_hw failed, status" + "%d\n", __func__, err); } if (wl->pub->srom_ccode[0]) @@ -836,8 +852,8 @@ static struct wl_info *wl_attach(u16 vendor, u16 device, unsigned long regs, else err = wl_set_hint(wl, "US"); if (err) { - WL_ERROR("%s: regulatory_hint failed, status %d\n", - __func__, err); + dev_err(wl->dev, "%s: regulatory_hint failed, status %d\n", + __func__, err); } wl_found++; @@ -1031,7 +1047,7 @@ static int ieee_hw_rate_init(struct ieee80211_hw *hw) hw->wiphy->bands[IEEE80211_BAND_5GHZ] = NULL; if (wlc_get(wl->wlc, WLC_GET_PHYLIST, (int *)&phy_list) < 0) { - WL_ERROR("Phy list failed\n"); + dev_err(&hw->wiphy->dev, "Phy list failed\n"); } no_printk("%s: phylist = %c\n", __func__, phy_list[0]); @@ -1121,9 +1137,9 @@ wl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent) rc = pci_enable_device(pdev); if (rc) { - WL_ERROR("%s: Cannot enable device %d-%d_%d\n", - __func__, pdev->bus->number, PCI_SLOT(pdev->devfn), - PCI_FUNC(pdev->devfn)); + pr_err("%s: Cannot enable device %d-%d_%d\n", + __func__, pdev->bus->number, PCI_SLOT(pdev->devfn), + PCI_FUNC(pdev->devfn)); return -ENODEV; } pci_set_master(pdev); @@ -1134,7 +1150,7 @@ wl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent) hw = ieee80211_alloc_hw(sizeof(struct wl_info), &wl_ops); if (!hw) { - WL_ERROR("%s: ieee80211_alloc_hw failed\n", __func__); + pr_err("%s: ieee80211_alloc_hw failed\n", __func__); rc = -ENOMEM; goto err_1; } @@ -1149,13 +1165,13 @@ wl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent) PCI_BUS, pdev, pdev->irq); if (!wl) { - WL_ERROR("%s: %s: wl_attach failed!\n", - KBUILD_MODNAME, __func__); + pr_err("%s: %s: wl_attach failed!\n", KBUILD_MODNAME, + __func__); return -ENODEV; } return 0; err_1: - WL_ERROR("%s: err_1: Major hoarkage\n", __func__); + pr_err("%s: err_1: Major hoarkage\n", __func__); return 0; } @@ -1169,7 +1185,8 @@ static int wl_suspend(struct pci_dev *pdev, pm_message_t state) hw = pci_get_drvdata(pdev); wl = HW_TO_WL(hw); if (!wl) { - WL_ERROR("wl: wl_suspend: pci_get_drvdata failed\n"); + dev_err(wl->dev, + "wl: wl_suspend: pci_get_drvdata failed\n"); return -ENODEV; } @@ -1194,7 +1211,8 @@ static int wl_resume(struct pci_dev *pdev) hw = pci_get_drvdata(pdev); wl = HW_TO_WL(hw); if (!wl) { - WL_ERROR("wl: wl_resume: pci_get_drvdata failed\n"); + dev_err(wl->dev, + "wl: wl_resume: pci_get_drvdata failed\n"); return -ENODEV; } @@ -1234,7 +1252,7 @@ static void wl_remove(struct pci_dev *pdev) hw = pci_get_drvdata(pdev); wl = HW_TO_WL(hw); if (!wl) { - WL_ERROR("wl: wl_remove: pci_get_drvdata failed\n"); + pr_err("wl: wl_remove: pci_get_drvdata failed\n"); return; } @@ -1242,7 +1260,7 @@ static void wl_remove(struct pci_dev *pdev) status = wlc_chipmatch(pdev->vendor, pdev->device); WL_UNLOCK(wl); if (!status) { - WL_ERROR("wl: wl_remove: wlc_chipmatch failed\n"); + dev_err(wl->dev, "wl: wl_remove: wlc_chipmatch failed\n"); return; } if (wl->wlc) { @@ -1397,7 +1415,7 @@ static void wl_free(struct wl_info *wl) void wl_txflowcontrol(struct wl_info *wl, struct wl_if *wlif, bool state, int prio) { - WL_ERROR("Shouldn't be here %s\n", __func__); + dev_err(wl->dev, "Shouldn't be here %s\n", __func__); } /* @@ -1615,7 +1633,8 @@ struct wl_timer *wl_init_timer(struct wl_info *wl, void (*fn) (void *arg), t = kzalloc(sizeof(struct wl_timer), GFP_ATOMIC); if (!t) { - WL_ERROR("wl%d: wl_init_timer: out of memory\n", wl->pub->unit); + dev_err(wl->dev, + "wl%d: wl_init_timer: out of memory\n", wl->pub->unit); return 0; } @@ -1646,8 +1665,8 @@ void wl_add_timer(struct wl_info *wl, struct wl_timer *t, uint ms, int periodic) { #ifdef BCMDBG if (t->set) { - WL_ERROR("%s: Already set. Name: %s, per %d\n", - __func__, t->name, periodic); + dev_err(wl->dev, "%s: Already set. Name: %s, per %d\n", + __func__, t->name, periodic); } #endif ASSERT(!t->set); @@ -1774,6 +1793,8 @@ int wl_ucode_init_buf(struct wl_info *wl, void **pbuf, u32 idx) int i, entry; const u8 *pdata; struct wl_fw_hdr *hdr; + struct device *dev = wl->dev; + for (i = 0; i < wl->fw.fw_cnt; i++) { hdr = (struct wl_fw_hdr *)wl->fw.fw_hdr[i]->data; for (entry = 0; entry < wl->fw.hdr_num_entries[i]; @@ -1782,8 +1803,8 @@ int wl_ucode_init_buf(struct wl_info *wl, void **pbuf, u32 idx) pdata = wl->fw.fw_bin[i]->data + hdr->offset; *pbuf = kmalloc(hdr->len, GFP_ATOMIC); if (*pbuf == NULL) { - WL_ERROR("fail to alloc %d bytes\n", - hdr->len); + dev_err(dev, "fail to alloc %d bytes" + "\n", hdr->len); goto fail; } memcpy(*pbuf, pdata, hdr->len); @@ -1791,7 +1812,7 @@ int wl_ucode_init_buf(struct wl_info *wl, void **pbuf, u32 idx) } } } - WL_ERROR("ERROR: ucode buf tag:%d can not be found!\n", idx); + dev_err(dev, "ERROR: ucode buf tag:%d can not be found!\n", idx); *pbuf = NULL; fail: return BCME_NOTFOUND; @@ -1818,7 +1839,7 @@ int wl_ucode_init_uint(struct wl_info *wl, u32 *data, u32 idx) } } } - WL_ERROR("ERROR: ucode tag:%d can not be found!\n", idx); + dev_err(wl->dev, "ERROR: ucode tag:%d can not be found!\n", idx); return -1; } @@ -1829,7 +1850,7 @@ int wl_ucode_init_uint(struct wl_info *wl, u32 *data, u32 idx) static int wl_request_fw(struct wl_info *wl, struct pci_dev *pdev) { int status; - struct device *device = &pdev->dev; + struct device *dev = &pdev->dev; char fw_name[100]; int i; @@ -1840,19 +1861,19 @@ static int wl_request_fw(struct wl_info *wl, struct pci_dev *pdev) sprintf(fw_name, "%s-%d.fw", wl_firmwares[i], UCODE_LOADER_API_VER); no_printk("request fw %s\n", fw_name); - status = request_firmware(&wl->fw.fw_bin[i], fw_name, device); + status = request_firmware(&wl->fw.fw_bin[i], fw_name, dev); if (status) { - WL_ERROR("%s: fail to load firmware %s\n", - KBUILD_MODNAME, fw_name); + dev_err(dev, "%s: fail to load firmware %s\n", + KBUILD_MODNAME, fw_name); return status; } no_printk("request fw %s\n", fw_name); sprintf(fw_name, "%s_hdr-%d.fw", wl_firmwares[i], UCODE_LOADER_API_VER); - status = request_firmware(&wl->fw.fw_hdr[i], fw_name, device); + status = request_firmware(&wl->fw.fw_hdr[i], fw_name, dev); if (status) { - WL_ERROR("%s: fail to load firmware %s\n", - KBUILD_MODNAME, fw_name); + dev_err(dev, "%s: fail to load firmware %s\n", + KBUILD_MODNAME, fw_name); return status; } wl->fw.hdr_num_entries[i] = @@ -1900,22 +1921,24 @@ int wl_check_firmwares(struct wl_info *wl) const struct firmware *fw; const struct firmware *fw_hdr; struct wl_fw_hdr *ucode_hdr; + struct device *dev = wl->dev; + for (i = 0; i < WL_MAX_FW && rc == 0; i++) { fw = wl->fw.fw_bin[i]; fw_hdr = wl->fw.fw_hdr[i]; if (fw == NULL && fw_hdr == NULL) { break; } else if (fw == NULL || fw_hdr == NULL) { - WL_ERROR("%s: invalid bin/hdr fw\n", __func__); + dev_err(dev, "%s: invalid bin/hdr fw\n", __func__); rc = -EBADF; } else if (fw_hdr->size % sizeof(struct wl_fw_hdr)) { - WL_ERROR("%s: non integral fw hdr file size %zu/%zu\n", - __func__, fw_hdr->size, - sizeof(struct wl_fw_hdr)); + dev_err(dev, "%s: non integral fw hdr file size %zu/%zu" + "\n", __func__, fw_hdr->size, + sizeof(struct wl_fw_hdr)); rc = -EBADF; } else if (fw->size < MIN_FW_SIZE || fw->size > MAX_FW_SIZE) { - WL_ERROR("%s: out of bounds fw file size %zu\n", - __func__, fw->size); + dev_err(dev, "%s: out of bounds fw file size %zu\n", + __func__, fw->size); rc = -EBADF; } else { /* check if ucode section overruns firmware image */ @@ -1924,15 +1947,16 @@ int wl_check_firmwares(struct wl_info *wl) !rc; entry++, ucode_hdr++) { if (ucode_hdr->offset + ucode_hdr->len > fw->size) { - WL_ERROR("%s: conflicting bin/hdr\n", - __func__); + dev_err(dev, "%s: conflicting bin/hdr" + "\n", __func__); rc = -EBADF; } } } } if (rc == 0 && wl->fw.fw_cnt != i) { - WL_ERROR("%s: invalid fw_cnt=%d\n", __func__, wl->fw.fw_cnt); + dev_err(dev, "%s: invalid fw_cnt=%d\n", __func__, + wl->fw.fw_cnt); rc = -EBADF; } return rc; diff --git a/drivers/staging/brcm80211/brcmsmac/wlc_antsel.c b/drivers/staging/brcm80211/brcmsmac/wlc_antsel.c index 85a73a9..9e44991 100644 --- a/drivers/staging/brcm80211/brcmsmac/wlc_antsel.c +++ b/drivers/staging/brcm80211/brcmsmac/wlc_antsel.c @@ -98,8 +98,8 @@ struct antsel_info *wlc_antsel_attach(struct wlc_info *wlc) asi = kzalloc(sizeof(struct antsel_info), GFP_ATOMIC); if (!asi) { - WL_ERROR("wl%d: wlc_antsel_attach: out of mem\n", - wlc->pub->unit); + dev_err(wlc->dev, "wl%d: wlc_antsel_attach: out of mem\n", + wlc->pub->unit); return NULL; } @@ -128,7 +128,8 @@ struct antsel_info *wlc_antsel_attach(struct wlc_info *wlc) asi->antsel_avail = false; } else { asi->antsel_avail = false; - WL_ERROR("wlc_antsel_attach: 2o3 board cfg invalid\n"); + dev_err(wlc->dev, "wlc_antsel_attach: 2o3 " + "board cfg invalid\n"); ASSERT(0); } break; -- 1.7.1 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* NULL pointer dereference in nl80211 2011-04-21 11:02 ` [PATCH v3 3/3] staging: brcm80211: replaced WL_ERROR with dev_err in two files Roland Vossen @ 2011-05-12 11:35 ` Roland Vossen 0 siblings, 0 replies; 9+ messages in thread From: Roland Vossen @ 2011-05-12 11:35 UTC (permalink / raw) To: linux-wireless@vger.kernel.org Hi, This problem started to occur on my system after upgrading to Ubuntu 11.04. It occurs when rm'modding the brcm80211 driver module. I should notice that I am running Greg's 2.6.39-rc4 kernel. The exception happens in function set_regdom(). Has anybody else seen this problem ? Bye, Roland. log, trace and stack dump: ------------------------------- [ 90.735546] brcmutil: module is from the staging directory, the quality is unknown, you have been warned. [ 90.830723] brcmsmac: module is from the staging directory, the quality is unknown, you have been warned. [ 90.845333] brcmsmac 0000:03:00.0: bus 3 slot 0 func 0 irq 11 [ 90.851105] brcmsmac 0000:03:00.0: PCI INT A -> GSI 17 (level, low) -> IRQ 17 [ 90.858238] brcmsmac 0000:03:00.0: setting latency timer to 64 [ 90.935793] Found chip type AI (0x13814313) [ 90.949258] Applying 4313 WARs [ 90.966100] ieee80211 phy0: Selected rate control algorithm 'minstrel_ht' [ 91.001012] udev[1345]: renamed network interface wlan0 to wlan4 [ 91.067720] ieee80211 phy0: wl_ops_bss_info_changed: BSS idle: true (implement) [ 91.075174] ieee80211 phy0: device now idle [ 91.079913] ieee80211 phy0: wl_ops_config: change monitor mode: false (implement) [ 91.079916] ieee80211 phy0: wl_ops_config: change power-save mode: false (implement) [ 91.080597] ieee80211 phy0: wl_ops_bss_info_changed: qos enabled: false (implement) [ 91.154910] ieee80211 phy0: wl_ops_bss_info_changed: BSS idle: false (implement) [ 91.154916] ieee80211 phy0: device no longer idle - scanning [ 92.107626] ieee80211 phy0: wl_ops_bss_info_changed: BSS idle: true (implement) [ 92.114950] ieee80211 phy0: device now idle [ 92.191021] ieee80211 phy0: wl_ops_bss_info_changed: BSS idle: false (implement) [ 92.198413] ieee80211 phy0: device no longer idle - scanning [ 93.164734] ieee80211 phy0: wl_ops_bss_info_changed: BSS idle: true (implement) [ 93.172039] ieee80211 phy0: device now idle [ 93.179579] ieee80211 phy0: wl_ops_bss_info_changed: BSS idle: false (implement) [ 93.186971] ieee80211 phy0: device no longer idle - working [ 93.192550] wlan4: authenticate with c0:c1:c0:04:b8:2c (try 1) [ 93.397683] wlan4: authenticate with c0:c1:c0:04:b8:2c (try 2) [ 93.603163] wlan4: authenticate with c0:c1:c0:04:b8:2c (try 3) [ 93.758010] wlan4: authenticated [ 93.761902] wlan4: associate with c0:c1:c0:04:b8:2c (try 1) [ 93.966536] wlan4: associate with c0:c1:c0:04:b8:2c (try 2) [ 94.171179] wlan4: associate with c0:c1:c0:04:b8:2c (try 3) [ 94.375826] wlan4: association with c0:c1:c0:04:b8:2c timed out [ 94.386789] ieee80211 phy0: wl_ops_bss_info_changed: BSS idle: true (implement) [ 94.394099] ieee80211 phy0: device now idle [ 103.165247] ieee80211 phy0: wl_ops_bss_info_changed: BSS idle: false (implement) [ 103.172675] ieee80211 phy0: device no longer idle - scanning [ 104.218641] ieee80211 phy0: wl_ops_bss_info_changed: BSS idle: true (implement) [ 104.225971] ieee80211 phy0: device now idle [ 104.230424] ieee80211 phy0: wl_ops_bss_info_changed: BSS idle: false (implement) [ 104.237817] ieee80211 phy0: device no longer idle - working [ 104.243400] wlan4: authenticate with c0:c1:c0:04:b8:2c (try 1) [ 104.300906] wlan4: authenticated [ 104.304414] wlan4: associate with c0:c1:c0:04:b8:2c (try 1) [ 104.344740] wlan4: RX AssocResp from c0:c1:c0:04:b8:2c (capab=0x411 status=0 aid=1) [ 104.352623] wlan4: associated [ 104.355853] ieee80211 phy0: Allocated STA c0:c1:c0:04:b8:2c [ 104.362329] ieee80211 phy0: Inserted STA c0:c1:c0:04:b8:2c [ 104.367819] ieee80211 phy0: WMM queue=2 aci=0 acm=0 aifs=3 cWmin=15 cWmax=1023 txop=0 uapsd=0 [ 104.376489] ieee80211 phy0: WMM queue=3 aci=1 acm=0 aifs=7 cWmin=15 cWmax=1023 txop=0 uapsd=0 [ 104.385136] ieee80211 phy0: WMM queue=1 aci=2 acm=0 aifs=2 cWmin=7 cWmax=15 txop=94 uapsd=0 [ 104.393601] ieee80211 phy0: WMM queue=0 aci=3 acm=0 aifs=2 cWmin=3 cWmax=7 txop=47 uapsd=0 [ 104.401989] ieee80211 phy0: wl_ops_bss_info_changed: qos enabled: true (implement) [ 104.409590] ieee80211 phy0: brcmsmac: wl_ops_bss_info_changed: associated [ 104.416393] ieee80211 phy0: wl_ops_bss_info_changed: arp filtering: enabled true, count 0 (implement) [ 108.785059] ieee80211 phy0: wl_ops_bss_info_changed: arp filtering: enabled true, count 1 (implement) [ 179.585789] wlan4: detected beacon loss from AP - sending probe request [ 180.045423] wlan4: cancelling probereq poll due to a received beacon [ 250.805617] iperf used greatest stack depth: 5232 bytes left [ 255.221665] ieee80211 phy0: wl_ops_bss_info_changed: qos enabled: false (implement) [ 255.229891] ieee80211 phy0: brcmsmac: wl_ops_bss_info_changed: disassociated [ 255.236987] ieee80211 phy0: wl_ops_bss_info_changed: arp filtering: enabled false, count 1 (implement) [ 255.246360] wlan4: deauthenticating from c0:c1:c0:04:b8:2c by local choice (reason=3) [ 255.275259] ieee80211 phy0: Removed STA c0:c1:c0:04:b8:2c [ 255.281668] ieee80211 phy0: Destroyed STA c0:c1:c0:04:b8:2c [ 255.287388] ieee80211 phy0: device now idle [ 255.490889] cfg80211: Calling CRDA for country: US [ 255.555509] brcmsmac 0000:03:00.0: PCI INT A disabled [ 255.578965] BUG: unable to handle kernel NULL pointer dereference at 00000080 [ 255.586100] IP: [<c131e2cf>] set_regdom+0x1a0/0x4d8 [ 255.590980] *pde = 00000000 [ 255.593863] Oops: 0000 [#1] SMP DEBUG_PAGEALLOC [ 255.598412] last sysfs file: /sys/devices/platform/regulatory.0/uevent [ 255.604922] Dumping ftrace buffer: [ 255.608313] --------------------------------- [ 255.612679] NetworkM-1675 0.... 75145284us : drv_start: phy0 [ 255.618593] NetworkM-1675 0d... 75145355us : wake_queue: phy0 queue:0, reason:0 [ 255.626149] NetworkM-1675 0d... 75145357us : wake_queue: phy0 queue:1, reason:0 [ 255.633706] NetworkM-1675 0d... 75145358us : wake_queue: phy0 queue:2, reason:0 [ 255.641264] NetworkM-1675 0d... 75145358us : wake_queue: phy0 queue:3, reason:0 [ 255.648822] NetworkM-1675 0.... 75145467us : drv_return_int: phy0 - 0 [ 255.655516] NetworkM-1675 0.... 75145470us : drv_add_interface: phy0 vif:wlan4(2) addr:90:4c:e5:65:10:31 [ 255.665235] NetworkM-1675 0.N.. 75196639us : drv_return_int: phy0 - 0 [ 255.671929] NetworkM-1675 0.... 75196658us : drv_bss_info_changed: phy0 vif:wlan4(2) changed:0xe [ 255.680956] NetworkM-1675 0.... 75196665us : drv_return_void: phy0 [ 255.687389] NetworkM-1675 0.... 75196868us : drv_bss_info_changed: phy0 vif:wlan4(2) changed:0x4000 [ 255.696908] NetworkM-1675 0.N.. 75204322us : drv_return_void: phy0 [ 255.703342] NetworkM-1675 0.... 75209036us : drv_flush: phy0 drop:0 [ 255.709858] NetworkM-1675 0.... 75209055us : drv_return_void: phy0 [ 255.716293] NetworkM-1675 0.... 75209057us : drv_config: phy0 ch:0xffffffff freq:2412 [ 255.724368] NetworkM-1675 0.... 75209216us : drv_return_int: phy0 - 0 [ 255.731059] NetworkM-1675 0.... 75209218us : drv_conf_tx: phy0 queue:0 [ 255.737835] NetworkM-1675 0.... 75209367us : drv_return_int: phy0 - 0 [ 255.744526] NetworkM-1675 0.... 75209368us : drv_conf_tx: phy0 queue:1 [ 255.751304] NetworkM-1675 0.... 75209490us : drv_return_int: phy0 - 0 [ 255.757995] NetworkM-1675 0.... 75209491us : drv_conf_tx: phy0 queue:2 [ 255.764772] NetworkM-1675 0.... 75209622us : drv_return_int: phy0 - 0 [ 255.771464] NetworkM-1675 0.... 75209622us : drv_conf_tx: phy0 queue:3 [ 255.778238] NetworkM-1675 0.... 75209746us : drv_return_int: phy0 - 0 [ 255.784932] NetworkM-1675 0.... 75209747us : drv_bss_info_changed: phy0 vif:wlan4(2) changed:0x2000 [ 255.794217] NetworkM-1675 0.... 75209751us : drv_return_void: phy0 [ 255.800650] kworker/-860 0..s. 75209985us : drv_prepare_multicast: phy0 prepare mc (0) [ 255.808899] kworker/-860 0..s. 75209986us : drv_return_u64: phy0 - 0 [ 255.815592] kworker/-860 0.... 75209987us : drv_configure_filter: phy0 changed:0x0 total:0x80000000 [ 255.824966] kworker/-860 0.... 75209988us : drv_return_void: phy0 [ 255.831399] kworker/-860 0..s. 75210230us : drv_prepare_multicast: phy0 prepare mc (0) [ 255.839645] kworker/-860 0..s. 75210230us : drv_return_u64: phy0 - 0 [ 255.846339] kworker/-860 0.... 75210231us : drv_configure_filter: phy0 changed:0x0 total:0x80000000 [ 255.855714] kworker/-860 0.... 75210231us : drv_return_void: phy0 [ 255.862148] kworker/-860 1..s. 75210624us : drv_prepare_multicast: phy0 prepare mc (1) [ 255.870398] kworker/-860 1..s. 75210627us : drv_return_u64: phy0 - 0 [ 255.877091] kworker/-860 1.... 75210628us : drv_configure_filter: phy0 changed:0x0 total:0x80000000 [ 255.886466] kworker/-860 1.... 75210628us : drv_return_void: phy0 [ 255.892902] <...>-1842 2.... 75284053us : drv_bss_info_changed: phy0 vif:wlan4(2) changed:0x4000 [ 255.902191] <...>-1842 2.... 75284066us : drv_return_void: phy0 [ 255.908622] <...>-1842 2.... 75284071us : drv_config: phy0 ch:0x100 freq:2412 [ 255.916267] <...>-1842 2.... 75284076us : drv_return_int: phy0 - 0 [ 255.922956] <...>-1842 2.... 75284076us : drv_sw_scan_start: phy0 [ 255.929561] <...>-1842 2.... 75284078us : drv_return_void: phy0 [ 255.935993] <...>-1842 2..s. 75284091us : drv_prepare_multicast: phy0 prepare mc (1) [ 255.944241] <...>-1842 2..s. 75284091us : drv_return_u64: phy0 - 0 [ 255.950933] <...>-1842 2.... 75284092us : drv_configure_filter: phy0 changed:0x10 total:0x80000010 [ 255.960391] <...>-1842 2.... 75284095us : drv_return_void: phy0 [ 255.966822] kworker/-860 0.... 75373317us : drv_flush: phy0 drop:0 [ 255.973340] kworker/-860 0.... 75373325us : drv_return_void: phy0 [ 255.979814] kworker/-860 0.... 75373326us : drv_config: phy0 ch:0x40 freq:2417 [ 255.987370] kworker/-860 0.... 75375038us : drv_return_int: phy0 - 0 [ 255.994061] kworker/-860 0.... 75434180us : drv_config: phy0 ch:0x40 freq:2422 [ 256.001618] kworker/-860 0.... 75435894us : drv_return_int: phy0 - 0 [ 256.008310] kworker/-860 0.... 75495064us : drv_config: phy0 ch:0x40 freq:2427 [ 256.015866] kworker/-860 0.N.. 75496779us : drv_return_int: phy0 - 0 [ 256.022559] kworker/-860 3.... 75556044us : drv_config: phy0 ch:0x40 freq:2432 [ 256.030115] kworker/-860 3.... 75558245us : drv_return_int: phy0 - 0 [ 256.036805] kworker/-860 3.... 75617960us : drv_config: phy0 ch:0x40 freq:2437 [ 256.044362] kworker/-860 3.... 75619505us : drv_return_int: phy0 - 0 [ 256.051054] kworker/-860 3.... 75678867us : drv_config: phy0 ch:0x40 freq:2442 [ 256.058611] kworker/-860 3.... 75680578us : drv_return_int: phy0 - 0 [ 256.065302] kworker/-860 3.... 75739733us : drv_config: phy0 ch:0x40 freq:2447 [ 256.072860] kworker/-860 3.... 75741286us : drv_return_int: phy0 - 0 [ 256.079553] kworker/-860 3.... 75800603us : drv_config: phy0 ch:0x40 freq:2452 [ 256.087110] kworker/-860 3.... 75802313us : drv_return_int: phy0 - 0 [ 256.093802] kworker/-860 3.... 75861513us : drv_config: phy0 ch:0x40 freq:2457 [ 256.101357] kworker/-860 3.... 75863057us : drv_return_int: phy0 - 0 [ 256.108048] kworker/-860 3.... 75922400us : drv_config: phy0 ch:0x40 freq:2462 [ 256.115604] kworker/-860 3.... 75924098us : drv_return_int: phy0 - 0 [ 256.122295] kworker/-860 3.... 75983320us : drv_config: phy0 ch:0x40 freq:2467 [ 256.129849] kworker/-860 3.... 75985071us : drv_return_int: phy0 - 0 [ 256.136541] kworker/-860 3.... 76109111us : drv_config: phy0 ch:0x40 freq:2472 [ 256.144099] kworker/-860 3.... 76110811us : drv_return_int: phy0 - 0 [ 256.150792] kworker/-860 3.... 76234902us : drv_config: phy0 ch:0x40 freq:2484 [ 256.158348] kworker/-860 3.... 76234909us : drv_return_int: phy0 - -5 [ 256.165127] kworker/-860 3.... 76234999us : drv_config: phy0 ch:0x40 freq:2412 [ 256.172685] kworker/-860 3.... 76236707us : drv_return_int: phy0 - 0 [ 256.179375] kworker/-860 3..s. 76236714us : drv_prepare_multicast: phy0 prepare mc (1) [ 256.187623] kworker/-860 3..s. 76236715us : drv_return_u64: phy0 - 0 [ 256.194315] kworker/-860 3.... 76236716us : drv_configure_filter: phy0 changed:0x10 total:0x80000000 [ 256.203773] kworker/-860 3.... 76236718us : drv_return_void: phy0 [ 256.210204] kworker/-860 3.... 76236719us : drv_sw_scan_complete: phy0 [ 256.217067] kworker/-860 3.... 76236721us : drv_return_void: phy0 [ 256.223500] kworker/-860 3.... 76236772us : drv_bss_info_changed: phy0 vif:wlan4(2) changed:0x4000 [ 256.232785] kworker/-860 3.... 76244097us : drv_return_void: phy0 [ 256.239215] kworker/-860 3.... 76248353us : drv_flush: phy0 drop:0 [ 256.245733] kworker/-860 3.... 76248376us : drv_return_void: phy0 [ 256.252166] kworker/-860 3.... 76248378us : drv_config: phy0 ch:0x100 freq:2412 [ 256.259808] kworker/-860 3.... 76248379us : drv_return_int: phy0 - 0 [ 256.266500] <...>-1842 0.... 76320164us : drv_bss_info_changed: phy0 vif:wlan4(2) changed:0x4000 [ 256.275787] <...>-1842 0.N.. 76327559us : drv_return_void: phy0 [ 256.282217] <...>-1842 2.... 76333227us : drv_config: phy0 ch:0x100 freq:2412 [ 256.289858] <...>-1842 2.... 76333231us : drv_return_int: phy0 - 0 [ 256.296549] <...>-1842 2.... 76333231us : drv_sw_scan_start: phy0 [ 256.303152] <...>-1842 2.... 76333233us : drv_return_void: phy0 [ 256.309581] <...>-1842 2..s. 76333236us : drv_prepare_multicast: phy0 prepare mc (1) [ 256.317829] <...>-1842 2..s. 76333237us : drv_return_u64: phy0 - 0 [ 256.324522] <...>-1842 2.... 76333238us : drv_configure_filter: phy0 changed:0x10 total:0x80000010 [ 256.333983] <...>-1842 2.... 76333240us : drv_return_void: phy0 [ 256.340415] kworker/-860 0.... 76422489us : drv_flush: phy0 drop:0 [ 256.346933] kworker/-860 0.... 76428450us : drv_return_void: phy0 [ 256.353366] kworker/-860 0.... 76428453us : drv_config: phy0 ch:0x40 freq:2417 [ 256.360921] kworker/-860 0.... 76430688us : drv_return_int: phy0 - 0 [ 256.367614] kworker/-860 2.... 76490351us : drv_config: phy0 ch:0x40 freq:2422 [ 256.375170] kworker/-860 2.... 76491898us : drv_return_int: phy0 - 0 [ 256.381862] kworker/-860 2.... 76551328us : drv_config: phy0 ch:0x40 freq:2427 [ 256.389418] kworker/-860 2.... 76553042us : drv_return_int: phy0 - 0 [ 256.396110] kworker/-860 2.... 76612181us : drv_config: phy0 ch:0x40 freq:2432 [ 256.403670] kworker/-860 2.... 76614257us : drv_return_int: phy0 - 0 [ 256.410362] kworker/-860 2.... 76674113us : drv_config: phy0 ch:0x40 freq:2437 [ 256.417917] kworker/-860 2.... 76675660us : drv_return_int: phy0 - 0 [ 256.424607] kworker/-860 2.... 76735025us : drv_config: phy0 ch:0x40 freq:2442 [ 256.432163] kworker/-860 2.... 76736567us : drv_return_int: phy0 - 0 [ 256.438854] kworker/-860 0.... 76795948us : drv_config: phy0 ch:0x40 freq:2447 [ 256.446411] kworker/-860 0.... 76797592us : drv_return_int: phy0 - 0 [ 256.453103] kworker/-860 0.... 76856716us : drv_config: phy0 ch:0x40 freq:2452 [ 256.460662] kworker/-860 0.... 76858438us : drv_return_int: phy0 - 0 [ 256.467354] kworker/-860 0.... 76917712us : drv_config: phy0 ch:0x40 freq:2457 [ 256.474904] kworker/-860 0.... 76919421us : drv_return_int: phy0 - 0 [ 256.481595] kworker/-860 0.... 76978579us : drv_config: phy0 ch:0x40 freq:2462 [ 256.489151] kworker/-860 0.... 76980122us : drv_return_int: phy0 - 0 [ 256.495833] kworker/-860 0.... 77039499us : drv_config: phy0 ch:0x40 freq:2467 [ 256.503379] kworker/-860 0.... 77041276us : drv_return_int: phy0 - 0 [ 256.510058] kworker/-860 0.... 77166305us : drv_config: phy0 ch:0x40 freq:2472 [ 256.517603] kworker/-860 0.N.. 77168062us : drv_return_int: phy0 - 0 [ 256.524294] kworker/-860 0.... 77292064us : drv_config: phy0 ch:0x40 freq:2484 [ 256.531842] kworker/-860 0.... 77292072us : drv_return_int: phy0 - -5 [ 256.538607] kworker/-860 0.... 77292081us : drv_config: phy0 ch:0x40 freq:2412 [ 256.546154] kworker/-860 0.N.. 77293808us : drv_return_int: phy0 - 0 [ 256.552835] kworker/-860 0.Ns. 77293812us : drv_prepare_multicast: phy0 prepare mc (1) [ 256.561074] kworker/-860 0.Ns. 77293813us : drv_return_u64: phy0 - 0 [ 256.567755] kworker/-860 0.... 77293843us : drv_configure_filter: phy0 changed:0x10 total:0x80000000 [ 256.577214] kworker/-860 0.... 77293847us : drv_return_void: phy0 [ 256.583636] kworker/-860 0.... 77293848us : drv_sw_scan_complete: phy0 [ 256.590489] kworker/-860 0.... 77293851us : drv_return_void: phy0 [ 256.596919] kworker/-860 0.... 77293878us : drv_bss_info_changed: phy0 vif:wlan4(2) changed:0x4000 [ 256.606197] kworker/-860 0.... 77301188us : drv_return_void: phy0 [ 256.612617] kworker/-860 0.... 77305381us : drv_flush: phy0 drop:0 [ 256.619124] kworker/-860 0.... 77305383us : drv_return_void: phy0 [ 256.625544] kworker/-860 0.... 77305385us : drv_config: phy0 ch:0x100 freq:2412 [ 256.633176] kworker/-860 0.... 77305386us : drv_return_int: phy0 - 0 [ 256.639857] <...>-1842 2.... 77305392us : drv_config: phy0 ch:0x40 freq:2437 [ 256.647402] <...>-1842 2.N.. 77307987us : drv_return_int: phy0 - 0 [ 256.654082] kworker/-860 0.... 77308724us : drv_bss_info_changed: phy0 vif:wlan4(2) changed:0x4000 [ 256.663357] kworker/-860 0.N.. 77316118us : drv_return_void: phy0 [ 256.669777] kworker/-860 0.... 77321696us : drv_config: phy0 ch:0x100 freq:2437 [ 256.677408] kworker/-860 0.... 77321699us : drv_return_int: phy0 - 0 [ 256.684100] kworker/-860 0.... 78515932us : drv_bss_info_changed: phy0 vif:wlan4(2) changed:0x4000 [ 256.693514] kworker/-860 0.N.. 78523249us : drv_return_void: phy0 [ 256.699935] kworker/-860 0.... 78527444us : drv_flush: phy0 drop:0 [ 256.706451] kworker/-860 3.... 78975167us : drv_return_void: phy0 [ 256.712874] kworker/-860 3.... 78975171us : drv_config: phy0 ch:0x100 freq:2437 [ 256.720505] kworker/-860 3.... 78975174us : drv_return_int: phy0 - 0 [ 256.727187] <...>-1842 1.... 87294388us : drv_bss_info_changed: phy0 vif:wlan4(2) changed:0x4000 [ 256.736466] <...>-1842 1.N.. 87301820us : drv_return_void: phy0 [ 256.742897] <...>-1842 3.... 87307519us : drv_config: phy0 ch:0x100 freq:2437 [ 256.750531] <...>-1842 3.... 87307525us : drv_return_int: phy0 - 0 [ 256.757226] <...>-1842 3.... 87307527us : drv_sw_scan_start: phy0 [ 256.763823] <...>-1842 3.... 87307531us : drv_return_void: phy0 [ 256.770244] <...>-1842 3..s. 87307537us : drv_prepare_multicast: phy0 prepare mc (1) [ 256.778493] <...>-1842 3..s. 87307538us : drv_return_u64: phy0 - 0 [ 256.785404] <...>-1842 3.... 87307540us : drv_configure_filter: phy0 changed:0x10 total:0x80000010 [ 256.794863] <...>-1842 3.... 87307544us : drv_return_void: phy0 [ 256.801295] kworker/-860 0.... 87336730us : drv_flush: phy0 drop:0 [ 256.807812] kworker/-860 0.... 87336734us : drv_return_void: phy0 [ 256.814244] kworker/-860 0.... 87336735us : drv_config: phy0 ch:0x40 freq:2412 [ 256.821802] kworker/-860 0.... 87338447us : drv_return_int: phy0 - 0 [ 256.828492] kworker/-860 0.... 87397620us : drv_config: phy0 ch:0x40 freq:2417 [ 256.836050] kworker/-860 0.... 87399349us : drv_return_int: phy0 - 0 [ 256.842740] kworker/-860 0.... 87458454us : drv_config: phy0 ch:0x40 freq:2422 [ 256.850328] kworker/-860 0.... 87460170us : drv_return_int: phy0 - 0 [ 256.857019] kworker/-860 0.... 87519401us : drv_config: phy0 ch:0x40 freq:2427 [ 256.864576] kworker/-860 0.... 87520944us : drv_return_int: phy0 - 0 [ 256.871268] kworker/-860 2.... 87580253us : drv_config: phy0 ch:0x40 freq:2432 [ 256.878824] kworker/-860 2.... 87581812us : drv_return_int: phy0 - 0 [ 256.885515] kworker/-860 2.... 87641200us : drv_config: phy0 ch:0x40 freq:2437 [ 256.893071] kworker/-860 2.... 87642991us : drv_return_int: phy0 - 0 [ 256.899762] kworker/-860 2.... 87702091us : drv_flush: phy0 drop:0 [ 256.906280] kworker/-860 2.... 87786894us : drv_return_void: phy0 [ 256.912712] kworker/-860 2.... 87786898us : drv_config: phy0 ch:0x40 freq:2442 [ 256.920269] kworker/-860 2.... 87788958us : drv_return_int: phy0 - 0 [ 256.926959] kworker/-860 2.... 87848840us : drv_config: phy0 ch:0x40 freq:2447 [ 256.934514] kworker/-860 2.... 87850382us : drv_return_int: phy0 - 0 [ 256.941205] kworker/-860 0.... 87909749us : drv_config: phy0 ch:0x40 freq:2452 [ 256.948762] kworker/-860 0.... 87911461us : drv_return_int: phy0 - 0 [ 256.955454] kworker/-860 0.... 87970631us : drv_config: phy0 ch:0x40 freq:2457 [ 256.963011] kworker/-860 0.... 87972172us : drv_return_int: phy0 - 0 [ 256.969702] kworker/-860 0.... 88031516us : drv_config: phy0 ch:0x40 freq:2462 [ 256.977260] kworker/-860 0.... 88033225us : drv_return_int: phy0 - 0 [ 256.983952] kworker/-860 0.... 88092419us : drv_config: phy0 ch:0x40 freq:2467 [ 256.991509] kworker/-860 0.... 88094197us : drv_return_int: phy0 - 0 [ 256.998200] kworker/-860 0.... 88218228us : drv_config: phy0 ch:0x40 freq:2472 [ 257.005758] kworker/-860 0.... 88221361us : drv_return_int: phy0 - 0 [ 257.012450] kworker/-860 0.... 88346004us : drv_config: phy0 ch:0x40 freq:2484 [ 257.020006] kworker/-860 0.... 88346011us : drv_return_int: phy0 - -5 [ 257.026785] kworker/-860 0.... 88346020us : drv_config: phy0 ch:0x40 freq:2437 [ 257.034343] kworker/-860 0.... 88347743us : drv_return_int: phy0 - 0 [ 257.041035] kworker/-860 0..s. 88347747us : drv_prepare_multicast: phy0 prepare mc (1) [ 257.049283] kworker/-860 0..s. 88347748us : drv_return_u64: phy0 - 0 [ 257.055975] kworker/-860 0.... 88347750us : drv_configure_filter: phy0 changed:0x10 total:0x80000000 [ 257.065436] kworker/-860 0.... 88347753us : drv_return_void: phy0 [ 257.071866] kworker/-860 0.... 88347754us : drv_sw_scan_complete: phy0 [ 257.078731] kworker/-860 0.... 88347756us : drv_return_void: phy0 [ 257.085164] kworker/-860 0.... 88347785us : drv_bss_info_changed: phy0 vif:wlan4(2) changed:0x4000 [ 257.094451] kworker/-860 0.N.. 88355118us : drv_return_void: phy0 [ 257.100881] kworker/-860 0.... 88359345us : drv_flush: phy0 drop:0 [ 257.107400] kworker/-860 0.... 88359349us : drv_return_void: phy0 [ 257.113864] kworker/-860 0.... 88359355us : drv_config: phy0 ch:0x100 freq:2437 [ 257.121509] kworker/-860 0.... 88359357us : drv_return_int: phy0 - 0 [ 257.128202] kworker/-860 0.... 88359574us : drv_bss_info_changed: phy0 vif:wlan4(2) changed:0x4000 [ 257.137490] kworker/-860 0.N.. 88366966us : drv_return_void: phy0 [ 257.143922] kworker/-860 0.... 88372547us : drv_config: phy0 ch:0x100 freq:2437 [ 257.151565] kworker/-860 0.... 88372550us : drv_return_int: phy0 - 0 [ 257.158258] kworker/-860 0.... 88490860us : drv_sta_add: phy0 vif:wlan4(2) sta:c0:c1:c0:04:b8:2c [ 257.167371] kworker/-860 0.... 88490864us : drv_return_int: phy0 - 0 [ 257.174063] kworker/-860 0.... 88505489us : drv_conf_tx: phy0 queue:2 [ 257.180839] kworker/-860 0.... 88505638us : drv_return_int: phy0 - 0 [ 257.187531] kworker/-860 0.... 88514161us : drv_conf_tx: phy0 queue:3 [ 257.194308] kworker/-860 0.... 88514285us : drv_return_int: phy0 - 0 [ 257.201000] kworker/-860 0.... 88522622us : drv_conf_tx: phy0 queue:1 [ 257.207778] kworker/-860 0.... 88522750us : drv_return_int: phy0 - 0 [ 257.214470] kworker/-860 0.... 88531013us : drv_conf_tx: phy0 queue:0 [ 257.221249] kworker/-860 0.... 88531137us : drv_return_int: phy0 - 0 [ 257.227942] kworker/-860 0.... 88531138us : drv_bss_info_changed: phy0 vif:wlan4(2) changed:0x2000 [ 257.237229] kworker/-860 0.N.. 88538700us : drv_return_void: phy0 [ 257.243662] kworker/-860 0.... 88538727us : drv_config: phy0 ch:0x42 freq:2437 [ 257.251219] kworker/-860 0.... 88538734us : drv_return_int: phy0 - 0 [ 257.257911] kworker/-860 0.... 88538740us : drv_bss_info_changed: phy0 vif:wlan4(2) changed:0x10fd [ 257.267199] kworker/-860 0.N.. 88554742us : drv_return_void: phy0 [ 257.273633] kworker/-860 2.... 89390255us : drv_ampdu_action: phy0 vif:wlan4(2) sta:c0:c1:c0:04:b8:2c action:0 tid:0 buf:0 [ 257.284998] kworker/-860 2.... 89390261us : drv_return_int: phy0 - 0 [ 257.291690] <idle>-0 0.Ns. 89775570us : api_start_tx_ba_session: sta:c0:c1:c0:04:b8:2c tid:0 [ 257.300891] kworker/-860 0d... 89775804us : stop_queue: phy0 queue:2, reason:3 [ 257.308448] kworker/-860 0.... 89782450us : drv_ampdu_action: phy0 vif:wlan4(2) sta:c0:c1:c0:04:b8:2c action:2 tid:0 buf:0 [ 257.319811] kworker/-860 0.... 89782598us : drv_return_int: phy0 - 0 [ 257.326503] kworker/-860 0d... 89782601us : wake_queue: phy0 queue:2, reason:3 [ 257.334064] kworker/-860 0.... 89782724us : api_start_tx_ba_cb: vif:wlan4(2) ra:c0:c1:c0:04:b8:2c tid:0 [ 257.343874] kworker/-860 0.... 89959921us : drv_ampdu_action: phy0 vif:wlan4(2) sta:c0:c1:c0:04:b8:2c action:4 tid:0 buf:64 [ 257.355324] kworker/-860 0.... 89959924us : drv_return_int: phy0 - 0 [ 257.362018] kworker/-860 0d.s. 89959947us : stop_queue: phy0 queue:2, reason:3 [ 257.369576] kworker/-860 0d.s. 89959950us : wake_queue: phy0 queue:2, reason:3 [ 257.377132] NetworkM-1675 1.... 92914201us : drv_bss_info_changed: phy0 vif:wlan4(2) changed:0x1000 [ 257.386420] NetworkM-1675 1.N.. 92923416us : drv_return_void: phy0 [ 257.392853] kworker/-860 0..s. 92923606us : drv_prepare_multicast: phy0 prepare mc (2) [ 257.401104] kworker/-860 0..s. 92923607us : drv_return_u64: phy0 - 0 [ 257.407793] kworker/-860 0.... 92923608us : drv_configure_filter: phy0 changed:0x0 total:0x80000000 [ 257.417167] kworker/-860 0.... 92923609us : drv_return_void: phy0 [ 257.423599] <...>-1842 0.... 95130258us : drv_sw_scan_start: phy0 [ 257.430203] <...>-1842 0.... 95130265us : drv_return_void: phy0 [ 257.436632] <...>-1842 0..s. 95130749us : drv_prepare_multicast: phy0 prepare mc (2) [ 257.444880] <...>-1842 0..s. 95130752us : drv_return_u64: phy0 - 0 [ 257.451572] <...>-1842 0.... 95130754us : drv_configure_filter: phy0 changed:0x10 total:0x80000010 [ 257.461034] <...>-1842 0.... 95130757us : drv_return_void: phy0 [ 257.467464] kworker/-860 0.... 95160176us : drv_flush: phy0 drop:0 [ 257.473982] kworker/-860 0.... 95160181us : drv_return_void: phy0 [ 257.480414] kworker/-860 0.... 95160182us : drv_config: phy0 ch:0x40 freq:2412 [ 257.487971] kworker/-860 0.... 95161902us : drv_return_int: phy0 - 0 [ 257.494662] kworker/-860 0.... 95221132us : drv_config: phy0 ch:0x40 freq:2417 [ 257.502220] kworker/-860 0.... 95222786us : drv_return_int: phy0 - 0 [ 257.508910] kworker/-860 0.... 95282037us : drv_config: phy0 ch:0x40 freq:2422 [ 257.516467] kworker/-860 0.... 95283750us : drv_return_int: phy0 - 0 [ 257.523160] kworker/-860 0.... 95342914us : drv_config: phy0 ch:0x40 freq:2427 [ 257.530720] kworker/-860 0.... 95344458us : drv_return_int: phy0 - 0 [ 257.537411] kworker/-860 0.... 95403835us : drv_config: phy0 ch:0x40 freq:2432 [ 257.544966] kworker/-860 0.... 95405381us : drv_return_int: phy0 - 0 [ 257.551658] kworker/-860 0.... 95464707us : drv_config: phy0 ch:0x42 freq:2437 [ 257.559215] kworker/-860 0.... 95466347us : drv_return_int: phy0 - 0 [ 257.565905] kworker/-860 2.... 95526607us : drv_flush: phy0 drop:0 [ 257.572424] kworker/-860 2.... 95792152us : drv_return_void: phy0 [ 257.578856] kworker/-860 2.... 95792155us : drv_config: phy0 ch:0x40 freq:2442 [ 257.586414] kworker/-860 2.... 95793873us : drv_return_int: phy0 - 0 [ 257.593104] kworker/-860 2.... 95853036us : drv_config: phy0 ch:0x42 freq:2437 [ 257.600661] kworker/-860 2.... 95856210us : drv_return_int: phy0 - 0 [ 257.607351] kworker/-860 0.... 96058305us : drv_flush: phy0 drop:0 [ 257.613871] kworker/-860 3.... 96126549us : drv_return_void: phy0 [ 257.620302] kworker/-860 3.... 96126554us : drv_config: phy0 ch:0x40 freq:2447 [ 257.627859] kworker/-860 3.... 96128280us : drv_return_int: phy0 - 0 [ 257.634551] kworker/-860 3.... 96187397us : drv_config: phy0 ch:0x42 freq:2437 [ 257.642106] kworker/-860 3.... 96189103us : drv_return_int: phy0 - 0 [ 257.648799] kworker/-860 3.... 96388065us : drv_flush: phy0 drop:0 [ 257.655314] kworker/-860 3.... 96440052us : drv_return_void: phy0 [ 257.661746] kworker/-860 3.... 96440055us : drv_config: phy0 ch:0x40 freq:2452 [ 257.669303] kworker/-860 3.... 96443997us : drv_return_int: phy0 - 0 [ 257.675994] kworker/-860 3.... 96503917us : drv_config: phy0 ch:0x42 freq:2437 [ 257.683755] kworker/-860 3.... 96505635us : drv_return_int: phy0 - 0 [ 257.690446] kworker/-860 3.... 96704561us : drv_flush: phy0 drop:0 [ 257.696963] kworker/-860 1.... 96726528us : drv_return_void: phy0 [ 257.703397] kworker/-860 1.... 96726531us : drv_config: phy0 ch:0x40 freq:2457 [ 257.710952] kworker/-860 1.... 96728251us : drv_return_int: phy0 - 0 [ 257.717644] kworker/-860 1.... 96787432us : drv_config: phy0 ch:0x42 freq:2437 [ 257.725201] kworker/-860 1.... 96789150us : drv_return_int: phy0 - 0 [ 257.731892] kworker/-860 2.... 96988033us : drv_flush: phy0 drop:0 [ 257.738410] kworker/-860 1.... 97037989us : drv_return_void: phy0 [ 257.744841] kworker/-860 1.... 97037992us : drv_config: phy0 ch:0x40 freq:2462 [ 257.752396] kworker/-860 1.... 97039720us : drv_return_int: phy0 - 0 [ 257.759087] kworker/-860 1.... 97098914us : drv_config: phy0 ch:0x42 freq:2437 [ 257.766641] kworker/-860 1.... 97102537us : drv_return_int: phy0 - 0 [ 257.773331] kworker/-860 0.... 97301598us : drv_flush: phy0 drop:0 [ 257.779849] kworker/-860 2.... 97429419us : drv_return_void: phy0 [ 257.786281] kworker/-860 2.... 97429423us : drv_config: phy0 ch:0x40 freq:2467 [ 257.793837] kworker/-860 2.... 97431181us : drv_return_int: phy0 - 0 [ 257.800529] kworker/-860 2.... 97555095us : drv_config: phy0 ch:0x42 freq:2437 [ 257.808084] kworker/-860 2.... 97556824us : drv_return_int: phy0 - 0 [ 257.814775] kworker/-860 0.... 97755729us : drv_flush: phy0 drop:0 [ 257.821293] kworker/-860 0.... 97792052us : drv_return_void: phy0 [ 257.827725] kworker/-860 0.... 97792055us : drv_config: phy0 ch:0x40 freq:2472 [ 257.835280] kworker/-860 0.... 97793889us : drv_return_int: phy0 - 0 [ 257.841972] kworker/-860 0.... 97918473us : drv_config: phy0 ch:0x42 freq:2437 [ 257.849530] kworker/-860 0.... 97920179us : drv_return_int: phy0 - 0 [ 257.856220] kworker/-860 0.... 98119128us : drv_flush: phy0 drop:0 [ 257.862738] kworker/-860 2.... 98164005us : drv_return_void: phy0 [ 257.869171] kworker/-860 2.... 98164008us : drv_config: phy0 ch:0x40 freq:2484 [ 257.876728] kworker/-860 2.... 98164015us : drv_return_int: phy0 - -5 [ 257.883508] kworker/-860 2.... 98164024us : drv_config: phy0 ch:0x42 freq:2437 [ 257.891064] kworker/-860 2.... 98164030us : drv_return_int: phy0 - 0 [ 257.897754] kworker/-860 2..s. 98164033us : drv_prepare_multicast: phy0 prepare mc (2) [ 257.906004] kworker/-860 2..s. 98164034us : drv_return_u64: phy0 - 0 [ 257.912694] kworker/-860 2.... 98164036us : drv_configure_filter: phy0 changed:0x10 total:0x80000000 [ 257.922156] kworker/-860 2.... 98164040us : drv_return_void: phy0 [ 257.928589] kworker/-860 2.... 98164041us : drv_sw_scan_complete: phy0 [ 257.935451] kworker/-860 2.... 98164044us : drv_return_void: phy0 [ 257.941886] <...>-1842 3.... 135062945us : drv_sw_scan_start: phy0 [ 257.948577] <...>-1842 3.... 135062953us : drv_return_void: phy0 [ 257.955093] <...>-1842 3..s. 135062991us : drv_prepare_multicast: phy0 prepare mc (2) [ 257.963428] <...>-1842 3..s. 135062993us : drv_return_u64: phy0 - 0 [ 257.970206] <...>-1842 3.... 135062995us : drv_configure_filter: phy0 changed:0x10 total:0x80000010 [ 257.979751] <...>-1842 3.... 135062999us : drv_return_void: phy0 [ 257.986270] kworker/-860 3.... 135092999us : drv_flush: phy0 drop:0 [ 257.992876] kworker/-860 0.... 135111045us : drv_return_void: phy0 [ 257.999394] kworker/-860 0.... 135111047us : drv_config: phy0 ch:0x40 freq:2412 [ 258.007036] kworker/-860 0.... 135112763us : drv_return_int: phy0 - 0 [ 258.013815] kworker/-860 0.... 135171871us : drv_config: phy0 ch:0x42 freq:2437 [ 258.021457] kworker/-860 0.... 135173591us : drv_return_int: phy0 - 0 [ 258.028278] kworker/-860 1.... 135375705us : drv_flush: phy0 drop:0 [ 258.034883] kworker/-860 1.... 135387599us : drv_return_void: phy0 [ 258.041400] kworker/-860 1.... 135387601us : drv_config: phy0 ch:0x40 freq:2417 [ 258.049043] kworker/-860 1.... 135389317us : drv_return_int: phy0 - 0 [ 258.055822] kworker/-860 1.... 135448404us : drv_config: phy0 ch:0x42 freq:2437 [ 258.063466] kworker/-860 1.N.. 135450474us : drv_return_int: phy0 - 0 [ 258.070243] kworker/-860 2.... 135650094us : drv_flush: phy0 drop:0 [ 258.076848] kworker/-860 0.... 135688022us : drv_return_void: phy0 [ 258.083367] kworker/-860 0.... 135688025us : drv_config: phy0 ch:0x40 freq:2422 [ 258.091010] kworker/-860 0.... 135689741us : drv_return_int: phy0 - 0 [ 258.097788] kworker/-860 0.... 135748923us : drv_config: phy0 ch:0x42 freq:2437 [ 258.105430] kworker/-860 0.N.. 135750649us : drv_return_int: phy0 - 0 [ 258.112206] kworker/-860 0.... 135949605us : drv_flush: phy0 drop:0 [ 258.118809] kworker/-860 0.... 135993492us : drv_return_void: phy0 [ 258.125328] kworker/-860 0.... 135993494us : drv_config: phy0 ch:0x40 freq:2427 [ 258.132972] kworker/-860 0.... 135995194us : drv_return_int: phy0 - 0 [ 258.139749] kworker/-860 0.... 136054422us : drv_config: phy0 ch:0x42 freq:2437 [ 258.147390] kworker/-860 0.... 136055967us : drv_return_int: phy0 - 0 [ 258.154169] kworker/-860 2.... 136256385us : drv_flush: phy0 drop:0 [ 258.160773] kworker/-860 2.... 136269983us : drv_return_void: phy0 [ 258.167293] kworker/-860 2.... 136269986us : drv_config: phy0 ch:0x40 freq:2432 [ 258.174935] kworker/-860 2.... 136271707us : drv_return_int: phy0 - 0 [ 258.181713] kworker/-860 0.... 136330933us : drv_config: phy0 ch:0x42 freq:2437 [ 258.189356] kworker/-860 0.... 136333264us : drv_return_int: phy0 - 0 [ 258.196134] kworker/-860 1.... 136594503us : drv_flush: phy0 drop:0 [ 258.202739] kworker/-860 0.... 136625405us : drv_return_void: phy0 [ 258.209256] kworker/-860 0.... 136625408us : drv_config: phy0 ch:0x40 freq:2442 [ 258.216902] kworker/-860 0.... 136630209us : drv_return_int: phy0 - 0 [ 258.223681] kworker/-860 0.... 136689329us : drv_config: phy0 ch:0x42 freq:2437 [ 258.231324] kworker/-860 0.... 136690877us : drv_return_int: phy0 - 0 [ 258.238103] kworker/-860 0.... 136889894us : drv_flush: phy0 drop:0 [ 258.244705] kworker/-860 0.... 136906688us : drv_return_void: phy0 [ 258.251225] kworker/-860 0.... 136906691us : drv_config: phy0 ch:0x40 freq:2447 [ 258.258869] kworker/-860 0.... 136908484us : drv_return_int: phy0 - 0 [ 258.265645] kworker/-860 0.... 136967841us : drv_config: phy0 ch:0x42 freq:2437 [ 258.273288] kworker/-860 0.... 136969563us : drv_return_int: phy0 - 0 [ 258.280065] kworker/-860 0.... 137168478us : drv_flush: phy0 drop:0 [ 258.286667] kworker/-860 0.... 137222345us : drv_return_void: phy0 [ 258.293187] kworker/-860 0.... 137222348us : drv_config: phy0 ch:0x40 freq:2452 [ 258.300831] kworker/-860 0.... 137224495us : drv_return_int: phy0 - 0 [ 258.307610] kworker/-860 0.... 137284310us : drv_config: phy0 ch:0x42 freq:2437 [ 258.315254] kworker/-860 0.... 137286030us : drv_return_int: phy0 - 0 [ 258.322031] kworker/-860 0.... 137484895us : drv_flush: phy0 drop:0 [ 258.328635] kworker/-860 0.... 137492843us : drv_return_void: phy0 [ 258.335152] kworker/-860 0.... 137492845us : drv_config: phy0 ch:0x40 freq:2457 [ 258.342793] kworker/-860 0.... 137496583us : drv_return_int: phy0 - 0 [ 258.349571] kworker/-860 0.... 137555798us : drv_config: phy0 ch:0x42 freq:2437 [ 258.357214] kworker/-860 0.N.. 137557612us : drv_return_int: phy0 - 0 [ 258.363992] kworker/-860 0.... 137758410us : drv_flush: phy0 drop:0 [ 258.370595] kworker/-860 0.... 137777666us : drv_return_void: phy0 [ 258.377115] kworker/-860 0.... 137777669us : drv_config: phy0 ch:0x40 freq:2462 [ 258.384757] kworker/-860 0.... 137779425us : drv_return_int: phy0 - 0 [ 258.391535] kworker/-860 0.... 137839251us : drv_config: phy0 ch:0x42 freq:2437 [ 258.399177] kworker/-860 0.... 137841195us : drv_return_int: phy0 - 0 [ 258.405956] kworker/-860 0.... 138039924us : drv_flush: phy0 drop:0 [ 258.412563] kworker/-860 0.... 138099920us : drv_return_void: phy0 [ 258.419085] kworker/-860 0.... 138099923us : drv_config: phy0 ch:0x40 freq:2467 [ 258.426729] kworker/-860 0.... 138101644us : drv_return_int: phy0 - 0 [ 258.433505] kworker/-860 0.... 138225680us : drv_config: phy0 ch:0x42 freq:2437 [ 258.441146] kworker/-860 0.... 138227396us : drv_return_int: phy0 - 0 [ 258.447925] kworker/-860 0.... 138426771us : drv_flush: phy0 drop:0 [ 258.454528] kworker/-860 0.... 138448425us : drv_return_void: phy0 [ 258.461046] kworker/-860 0.... 138448427us : drv_config: phy0 ch:0x40 freq:2472 [ 258.468688] kworker/-860 0.... 138450224us : drv_return_int: phy0 - 0 [ 258.475506] kworker/-860 0.... 138575091us : drv_config: phy0 ch:0x42 freq:2437 [ 258.483149] kworker/-860 0.... 138576805us : drv_return_int: phy0 - 0 [ 258.489926] kworker/-860 0.... 138775968us : drv_flush: phy0 drop:0 [ 258.496530] kworker/-860 0.... 138824838us : drv_return_void: phy0 [ 258.503046] kworker/-860 0.... 138824841us : drv_config: phy0 ch:0x40 freq:2484 [ 258.510689] kworker/-860 0.... 138824847us : drv_return_int: phy0 - -5 [ 258.517553] kworker/-860 0.... 138824856us : drv_config: phy0 ch:0x42 freq:2437 [ 258.525196] kworker/-860 0.... 138824863us : drv_return_int: phy0 - 0 [ 258.531974] kworker/-860 0..s. 138824865us : drv_prepare_multicast: phy0 prepare mc (2) [ 258.540310] kworker/-860 0..s. 138824867us : drv_return_u64: phy0 - 0 [ 258.547092] kworker/-860 0.... 138824868us : drv_configure_filter: phy0 changed:0x10 total:0x80000000 [ 258.556639] kworker/-860 0.... 138824872us : drv_return_void: phy0 [ 258.563156] kworker/-860 0.... 138824873us : drv_sw_scan_complete: phy0 [ 258.570105] kworker/-860 0.... 138824876us : drv_return_void: phy0 [ 258.576624] <...>-1842 1.... 194956987us : drv_sw_scan_start: phy0 [ 258.583334] <...>-1842 1.... 194956992us : drv_return_void: phy0 [ 258.589856] <...>-1842 1..s. 194957005us : drv_prepare_multicast: phy0 prepare mc (2) [ 258.598189] <...>-1842 1..s. 194957006us : drv_return_u64: phy0 - 0 [ 258.604968] <...>-1842 1.... 194957006us : drv_configure_filter: phy0 changed:0x10 total:0x80000010 [ 258.614515] <...>-1842 1.... 194957008us : drv_return_void: phy0 [ 258.621034] kworker/-860 3.... 194989869us : drv_flush: phy0 drop:0 [ 258.627638] kworker/-860 3.... 195021695us : drv_return_void: phy0 [ 258.634156] kworker/-860 3.... 195021697us : drv_config: phy0 ch:0x40 freq:2412 [ 258.641798] kworker/-860 3.... 195023421us : drv_return_int: phy0 - 0 [ 258.648575] kworker/-860 3.... 195082623us : drv_config: phy0 ch:0x42 freq:2437 [ 258.656221] kworker/-860 3.... 195084344us : drv_return_int: phy0 - 0 [ 258.662997] kworker/-860 0.... 195283325us : drv_flush: phy0 drop:0 [ 258.669603] kworker/-860 0.... 195297669us : drv_return_void: phy0 [ 258.676290] kworker/-860 0.... 195297672us : drv_config: phy0 ch:0x40 freq:2417 [ 258.683933] kworker/-860 0.... 195299433us : drv_return_int: phy0 - 0 [ 258.690711] kworker/-860 0.... 195359176us : drv_config: phy0 ch:0x42 freq:2437 [ 258.698354] kworker/-860 0.... 195360894us : drv_return_int: phy0 - 0 [ 258.705133] kworker/-860 0.... 195574346us : drv_flush: phy0 drop:0 [ 258.711739] kworker/-860 0.... 195584855us : drv_return_void: phy0 [ 258.718258] kworker/-860 0.... 195584858us : drv_config: phy0 ch:0x40 freq:2422 [ 258.725899] kworker/-860 0.... 195586575us : drv_return_int: phy0 - 0 [ 258.732677] kworker/-860 0.... 195645666us : drv_config: phy0 ch:0x42 freq:2437 [ 258.740321] kworker/-860 0.... 195647392us : drv_return_int: phy0 - 0 [ 258.747100] kworker/-860 1.... 195856299us : drv_flush: phy0 drop:0 [ 258.753705] kworker/-860 3.... 195872254us : drv_return_void: phy0 [ 258.760224] kworker/-860 3.... 195872256us : drv_config: phy0 ch:0x40 freq:2427 [ 258.767868] kworker/-860 3.... 195873958us : drv_return_int: phy0 - 0 [ 258.774644] kworker/-860 3.... 195933195us : drv_config: phy0 ch:0x42 freq:2437 [ 258.782288] kworker/-860 3.... 195934902us : drv_return_int: phy0 - 0 [ 258.789067] kworker/-860 3.... 196133807us : drv_flush: phy0 drop:0 [ 258.795670] kworker/-860 0.... 196156832us : drv_return_void: phy0 [ 258.802187] kworker/-860 0.... 196156835us : drv_config: phy0 ch:0x40 freq:2432 [ 258.809828] kworker/-860 0.... 196158673us : drv_return_int: phy0 - 0 [ 258.816604] kworker/-860 0.... 196218695us : drv_config: phy0 ch:0x42 freq:2437 [ 258.824245] kworker/-860 0.... 196220241us : drv_return_int: phy0 - 0 [ 258.831023] kworker/-860 0.... 196499373us : drv_flush: phy0 drop:0 [ 258.837627] kworker/-860 2.... 196529132us : drv_return_void: phy0 [ 258.844143] kworker/-860 2.... 196529135us : drv_config: phy0 ch:0x40 freq:2442 [ 258.851786] kworker/-860 2.... 196530841us : drv_return_int: phy0 - 0 [ 258.858563] kworker/-860 2.... 196590096us : drv_config: phy0 ch:0x42 freq:2437 [ 258.866203] kworker/-860 2.... 196591984us : drv_return_int: phy0 - 0 [ 258.872982] kworker/-860 0.... 196791987us : drv_flush: phy0 drop:0 [ 258.879585] kworker/-860 0.... 196803538us : drv_return_void: phy0 [ 258.886101] kworker/-860 0.... 196803540us : drv_config: phy0 ch:0x40 freq:2447 [ 258.893749] kworker/-860 0.N.. 196805284us : drv_return_int: phy0 - 0 [ 258.900525] kworker/-860 0.... 196864576us : drv_config: phy0 ch:0x42 freq:2437 [ 258.908169] kworker/-860 0.... 196866298us : drv_return_int: phy0 - 0 [ 258.914946] kworker/-860 0.... 197065214us : drv_flush: phy0 drop:0 [ 258.921550] kworker/-860 0.... 197095145us : drv_return_void: phy0 [ 258.928070] kworker/-860 0.... 197095147us : drv_config: phy0 ch:0x40 freq:2452 [ 258.935714] kworker/-860 0.... 197096859us : drv_return_int: phy0 - 0 [ 258.942490] kworker/-860 0.... 197156045us : drv_config: phy0 ch:0x42 freq:2437 [ 258.950132] kworker/-860 0.... 197159659us : drv_return_int: phy0 - 0 [ 258.956910] kworker/-860 0.... 197358654us : drv_flush: phy0 drop:0 [ 258.963514] kworker/-860 0.... 197367932us : drv_return_void: phy0 [ 258.970032] kworker/-860 0.... 197367935us : drv_config: phy0 ch:0x40 freq:2457 [ 258.977673] kworker/-860 0.... 197369725us : drv_return_int: phy0 - 0 [ 258.984449] kworker/-860 0.... 197429607us : drv_config: phy0 ch:0x42 freq:2437 [ 258.992090] kworker/-860 0.... 197431330us : drv_return_int: phy0 - 0 [ 258.998865] kworker/-860 3.... 197633555us : drv_flush: phy0 drop:0 [ 259.005467] kworker/-860 3.... 197667104us : drv_return_void: phy0 [ 259.011984] kworker/-860 3.... 197667107us : drv_config: phy0 ch:0x40 freq:2462 [ 259.019628] kworker/-860 3.... 197669548us : drv_return_int: phy0 - 0 [ 259.026404] kworker/-860 3.... 197729020us : drv_config: phy0 ch:0x42 freq:2437 [ 259.034045] kworker/-860 3.... 197730726us : drv_return_int: phy0 - 0 [ 259.040822] kworker/-860 0.... 197930408us : drv_flush: phy0 drop:0 [ 259.047426] kworker/-860 0.... 197992542us : drv_return_void: phy0 [ 259.053942] kworker/-860 0.... 197992545us : drv_config: phy0 ch:0x40 freq:2467 [ 259.061584] kworker/-860 0.... 197994349us : drv_return_int: phy0 - 0 [ 259.068359] kworker/-860 0.... 198118402us : drv_config: phy0 ch:0x42 freq:2437 [ 259.076001] kworker/-860 0.... 198120121us : drv_return_int: phy0 - 0 [ 259.082778] kworker/-860 0.... 198321646us : drv_flush: phy0 drop:0 [ 259.089381] kworker/-860 0.... 198333716us : drv_return_void: phy0 [ 259.095898] kworker/-860 0.... 198333717us : drv_config: phy0 ch:0x40 freq:2472 [ 259.103540] kworker/-860 0.... 198335583us : drv_return_int: phy0 - 0 [ 259.110315] kworker/-860 0.... 198459830us : drv_config: phy0 ch:0x42 freq:2437 [ 259.117955] kworker/-860 0.... 198461549us : drv_return_int: phy0 - 0 [ 259.124731] kworker/-860 0.... 198662839us : drv_flush: phy0 drop:0 [ 259.131340] kworker/-860 0.... 198734728us : drv_return_void: phy0 [ 259.137857] kworker/-860 0.... 198734730us : drv_config: phy0 ch:0x40 freq:2484 [ 259.145500] kworker/-860 0.... 198734736us : drv_return_int: phy0 - -5 [ 259.152364] kworker/-860 0.... 198734746us : drv_config: phy0 ch:0x42 freq:2437 [ 259.160004] kworker/-860 0.... 198734752us : drv_return_int: phy0 - 0 [ 259.166781] kworker/-860 0..s. 198734755us : drv_prepare_multicast: phy0 prepare mc (2) [ 259.175113] kworker/-860 0..s. 198734756us : drv_return_u64: phy0 - 0 [ 259.181890] kworker/-860 0.... 198734758us : drv_configure_filter: phy0 changed:0x10 total:0x80000000 [ 259.191433] kworker/-860 0.... 198734762us : drv_return_void: phy0 [ 259.197949] kworker/-860 0.... 198734763us : drv_sw_scan_complete: phy0 [ 259.204896] kworker/-860 0.... 198734766us : drv_return_void: phy0 [ 259.211418] rmmod-2770 2.... 239349910us : drv_ampdu_action: phy0 vif:wlan4(2) sta:c0:c1:c0:04:b8:2c action:3 tid:0 buf:0 [ 259.222867] rmmod-2770 2.... 239350087us : drv_return_int: phy0 - 0 [ 259.229646] rmmod-2770 2.... 239350094us : drv_ampdu_action: phy0 vif:wlan4(2) sta:c0:c1:c0:04:b8:2c action:1 tid:0 buf:0 [ 259.241096] rmmod-2770 2.... 239350095us : drv_return_int: phy0 - 0 [ 259.247873] kworker/-860 0.... 239350110us : api_stop_tx_ba_cb: vif:wlan4(2) ra:c0:c1:c0:04:b8:2c tid:0 [ 259.257677] rmmod-2770 2.... 239350445us : drv_conf_tx: phy0 queue:0 [ 259.264540] rmmod-2770 2.... 239350545us : drv_return_int: phy0 - 0 [ 259.271316] rmmod-2770 2.... 239350546us : drv_conf_tx: phy0 queue:1 [ 259.278179] kworker/-860 0d.s. 239350566us : stop_queue: phy0 queue:2, reason:3 [ 259.285821] kworker/-860 0d.s. 239350570us : wake_queue: phy0 queue:2, reason:3 [ 259.293461] rmmod-2770 2.... 239350636us : drv_return_int: phy0 - 0 [ 259.300236] rmmod-2770 2.... 239350637us : drv_conf_tx: phy0 queue:2 [ 259.307100] rmmod-2770 2.... 239350723us : drv_return_int: phy0 - 0 [ 259.313877] rmmod-2770 2.... 239350723us : drv_conf_tx: phy0 queue:3 [ 259.320741] rmmod-2770 2.... 239350808us : drv_return_int: phy0 - 0 [ 259.327519] rmmod-2770 2.... 239350810us : drv_bss_info_changed: phy0 vif:wlan4(2) changed:0x2000 [ 259.336892] rmmod-2770 2.N.. 239358853us : drv_return_void: phy0 [ 259.343411] rmmod-2770 2.... 239359036us : drv_config: phy0 ch:0x40 freq:2437 [ 259.351053] rmmod-2770 2.... 239359041us : drv_return_int: phy0 - 0 [ 259.357829] rmmod-2770 2.... 239359041us : drv_bss_info_changed: phy0 vif:wlan4(2) changed:0x109f [ 259.367201] rmmod-2770 2.N.. 239375423us : drv_return_void: phy0 [ 259.373719] rmmod-2770 2.... 239396636us : drv_sta_remove: phy0 vif:wlan4(2) sta:c0:c1:c0:04:b8:2c [ 259.383176] rmmod-2770 2.... 239396638us : drv_return_void: phy0 [ 259.389694] rmmod-2770 2.... 239420750us : drv_flush: phy0 drop:0 [ 259.396299] rmmod-2770 2.... 239619856us : drv_return_void: phy0 [ 259.402815] rmmod-2770 2.... 239619860us : drv_config: phy0 ch:0x100 freq:2437 [ 259.410545] rmmod-2770 2.... 239619871us : drv_return_int: phy0 - 0 [ 259.417322] rmmod-2770 0..s. 239628899us : drv_prepare_multicast: phy0 prepare mc (0) [ 259.425655] rmmod-2770 0..s. 239628902us : drv_return_u64: phy0 - 0 [ 259.432431] rmmod-2770 0.... 239628904us : drv_configure_filter: phy0 changed:0x0 total:0x80000000 [ 259.441888] rmmod-2770 0.... 239628906us : drv_return_void: phy0 [ 259.448406] rmmod-2770 0.... 239638851us : drv_remove_interface: phy0 vif:wlan4(2) addr:90:4c:e5:65:10:31 [ 259.458471] rmmod-2770 0.N.. 239642500us : drv_return_void: phy0 [ 259.464984] rmmod-2770 0.... 239642762us : drv_stop: phy0 [ 259.470894] rmmod-2770 0d... 239642773us : stop_queue: phy0 queue:0, reason:0 [ 259.478535] rmmod-2770 0d... 239642774us : stop_queue: phy0 queue:1, reason:0 [ 259.486176] rmmod-2770 0d... 239642776us : stop_queue: phy0 queue:2, reason:0 [ 259.493818] rmmod-2770 0d... 239642777us : stop_queue: phy0 queue:3, reason:0 [ 259.501458] rmmod-2770 0.... 239642780us : drv_return_void: phy0 [ 259.507964] --------------------------------- [ 259.512308] Modules linked in: brcmutil(C) fuse drm_kms_helper drm snd_hda_codec_hdmi i2c_algo_bit dell_wmi snd_hda_codec_idt snd_hda_intel snd_hda_codec snd_hwdep snd_pcm_oss snd_mixer_oss sdhci_pci ehci_hcd sdhci firewire_ohci firewire_core snd_pcm mmc_core crc_itu_t usbcore snd_page_alloc wmi video [last unloaded: brcmsmac] [ 259.541531] [ 259.543021] Pid: 2774, comm: crda Tainted: G C 2.6.39-rc4-kgdb-110510+ #85 Dell Inc. Latitude E6410/07XJP9 [ 259.553468] EIP: 0060:[<c131e2cf>] EFLAGS: 00010246 CPU: 2 [ 259.558941] EIP is at set_regdom+0x1a0/0x4d8 [ 259.563200] EAX: 00000000 EBX: f25a93b0 ECX: 00000246 EDX: 00000000 [ 259.569446] ESI: ffffff8e EDI: 000186a0 EBP: f22bdc58 ESP: f22bdc18 [ 259.575694] DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068 [ 259.581077] Process crda (pid: 2774, ti=f22bc000 task=f0893600 task.ti=f22bc000) [ 259.588448] Stack: [ 259.590453] f4402240 00000000 f22bdc50 ee282b30 f25a9428 00000008 00000006 f22bdc50 [ 259.598284] c11a9c57 00000006 f22bdc6c f25a9428 f25a93b0 f25a9440 f25a93b0 ee282b38 [ 259.606117] f22bdc94 c132537e 00000000 00000006 00000006 00000000 ee282b08 ee282b10 [ 259.613950] Call Trace: [ 259.616398] [<c11a9c57>] ? nla_parse+0x3f/0x98 [ 259.620920] [<c132537e>] nl80211_set_reg+0x18b/0x1d5 [ 259.625961] [<c12c7f15>] genl_rcv_msg+0x1ad/0x1ce [ 259.630741] [<c12c7d68>] ? genl_rcv+0x22/0x22 [ 259.635174] [<c12c794c>] netlink_rcv_skb+0x32/0x73 [ 259.640040] [<c12c7d61>] genl_rcv+0x1b/0x22 [ 259.644300] [<c12c7534>] netlink_unicast+0xc0/0x114 [ 259.649253] [<c12c77b4>] netlink_sendmsg+0x22c/0x244 [ 259.654296] [<c12a2387>] __sock_sendmsg+0x51/0x5a [ 259.659074] [<c12a29bc>] sock_sendmsg+0x91/0xa9 [ 259.663682] [<c10ac9ba>] ? might_fault+0x47/0x85 [ 259.668544] [<c12aa2b8>] ? copy_from_user+0x8/0xa [ 259.673323] [<c12aa5d0>] ? verify_iovec+0x3e/0x76 [ 259.678101] [<c12a3c0e>] sys_sendmsg+0x13e/0x18c [ 259.682795] [<c1006887>] ? native_sched_clock+0x49/0x4f [ 259.688097] [<c104b56a>] ? sched_clock_cpu+0x3f/0x125 [ 259.693223] [<c1057020>] ? __lock_acquire+0x565/0xc02 [ 259.698348] [<c104b56a>] ? sched_clock_cpu+0x3f/0x125 [ 259.703475] [<c1054bba>] ? trace_hardirqs_off+0xb/0xd [ 259.708599] [<c104b67d>] ? local_clock+0x2d/0x4e [ 259.713292] [<c1054dc4>] ? lock_release_holdtime+0x30/0xb5 [ 259.718850] [<c1057776>] ? lock_release_non_nested+0xb9/0x20c [ 259.724666] [<c10ac9ba>] ? might_fault+0x47/0x85 [ 259.729357] [<c10ac9ba>] ? might_fault+0x47/0x85 [ 259.734054] [<c12a3fe0>] sys_socketcall+0x161/0x19f [ 259.739008] [<c11a0a70>] ? trace_hardirqs_on_thunk+0xc/0x10 [ 259.744656] [<c1370e4c>] sysenter_do_call+0x12/0x32 [ 259.749603] Code: ff 76 08 68 42 ca 4e c1 e8 09 b8 04 00 83 c4 14 47 83 c6 18 3b 3b 72 bc e9 9c 01 00 00 83 78 04 02 75 29 8b 45 c4 be 8e ff ff ff [ 259.763206] b8 80 00 00 00 00 0f 85 86 01 00 00 83 e8 80 89 da e8 71 ee [ 259.770454] EIP: [<c131e2cf>] set_regdom+0x1a0/0x4d8 SS:ESP 0068:f22bdc18 [ 259.777264] CR2: 0000000000000080 [ 259.780790] ---[ end trace 5eefd53f32deebc2 ]--- [ 259.785415] Kernel panic - not syncing: Fatal exception [ 259.790643] Pid: 2774, comm: crda Tainted: G D C 2.6.39-rc4-kgdb-110510+ #85 [ 259.798291] Call Trace: [ 259.800743] [<c1369ac9>] ? printk+0xf/0x16 [ 259.804919] [<c13699ba>] panic+0x50/0x150 [ 259.809035] [<c136cd1f>] oops_end+0x8b/0x9a [ 259.813308] [<c101da74>] no_context+0x10e/0x118 [ 259.817921] [<c101db72>] __bad_area_nosemaphore+0xf4/0xfc [ 259.823403] [<c101dbbf>] bad_area+0x35/0x3b [ 259.827675] [<c136e4cb>] do_page_fault+0x1c2/0x304 [ 259.832553] [<c1057d5e>] ? mark_held_locks+0x41/0x5d [ 259.837606] [<c136abd2>] ? __mutex_lock_common+0x2ad/0x2c1 [ 259.843178] [<c1057e78>] ? trace_hardirqs_on_caller+0xfe/0x11f [ 259.849147] [<c1054b57>] ? trace_hardirqs_off_caller+0x2e/0x86 [ 259.855065] [<c136e309>] ? notify_page_fault+0x3b/0x3b [ 259.860289] [<c136c4c7>] error_code+0x5f/0x64 [ 259.864732] [<c136e309>] ? notify_page_fault+0x3b/0x3b [ 259.869953] [<c131e2cf>] ? set_regdom+0x1a0/0x4d8 [ 259.874745] [<c11a9c57>] ? nla_parse+0x3f/0x98 [ 259.879276] [<c132537e>] nl80211_set_reg+0x18b/0x1d5 [ 259.884322] [<c12c7f15>] genl_rcv_msg+0x1ad/0x1ce [ 259.889101] [<c12c7d68>] ? genl_rcv+0x22/0x22 [ 259.893542] [<c12c794c>] netlink_rcv_skb+0x32/0x73 [ 259.898419] [<c12c7d61>] genl_rcv+0x1b/0x22 [ 259.902683] [<c12c7534>] netlink_unicast+0xc0/0x114 [ 259.907643] [<c12c77b4>] netlink_sendmsg+0x22c/0x244 [ 259.912690] [<c12a2387>] __sock_sendmsg+0x51/0x5a [ 259.917474] [<c12a29bc>] sock_sendmsg+0x91/0xa9 [ 259.922087] [<c10ac9ba>] ? might_fault+0x47/0x85 [ 259.926782] [<c12aa2b8>] ? copy_from_user+0x8/0xa [ 259.931561] [<c12aa5d0>] ? verify_iovec+0x3e/0x76 [ 259.936343] [<c12a3c0e>] sys_sendmsg+0x13e/0x18c [ 259.941041] [<c1006887>] ? native_sched_clock+0x49/0x4f [ 259.946346] [<c104b56a>] ? sched_clock_cpu+0x3f/0x125 [ 259.951476] [<c1057020>] ? __lock_acquire+0x565/0xc02 [ 259.956602] [<c104b56a>] ? sched_clock_cpu+0x3f/0x125 [ 259.961730] [<c1054bba>] ? trace_hardirqs_off+0xb/0xd [ 259.966856] [<c104b67d>] ? local_clock+0x2d/0x4e [ 259.971549] [<c1054dc4>] ? lock_release_holdtime+0x30/0xb5 [ 259.977111] [<c1057776>] ? lock_release_non_nested+0xb9/0x20c [ 259.982932] [<c10ac9ba>] ? might_fault+0x47/0x85 [ 259.987627] [<c10ac9ba>] ? might_fault+0x47/0x85 [ 259.992323] [<c12a3fe0>] sys_socketcall+0x161/0x19f [ 259.997279] [<c11a0a70>] ? trace_hardirqs_on_thunk+0xc/0x10 [ 260.002928] [<c1370e4c>] sysenter_do_call+0x12/0x32 ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2011-05-12 11:36 UTC | newest] Thread overview: 9+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2011-04-21 11:02 [PATCH v3 0/3] staging: brcm80211: logging code clean up Roland Vossen 2011-04-21 11:02 ` [PATCH v3 1/3] staging: brcm80211: replaced WL_NONE with no_printk Roland Vossen 2011-04-21 16:34 ` Joe Perches 2011-04-21 17:10 ` Arend van Spriel 2011-04-21 17:14 ` Joe Perches 2011-04-21 17:32 ` Arend van Spriel 2011-04-21 11:02 ` [PATCH v3 2/3] staging: brcm80211: making device object accessible from wlc and phy Roland Vossen 2011-04-21 11:02 ` [PATCH v3 3/3] staging: brcm80211: replaced WL_ERROR with dev_err in two files Roland Vossen 2011-05-12 11:35 ` NULL pointer dereference in nl80211 Roland Vossen
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).