All of lore.kernel.org
 help / color / mirror / Atom feed
* [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

* [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

* 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

* 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.