2011-04-21 11:02:21

by Roland Vossen

[permalink] [raw]
Subject: [PATCH v3 0/3] staging: brcm80211: logging code clean up

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(-)




2011-04-21 16:34:42

by Joe Perches

[permalink] [raw]
Subject: Re: [PATCH v3 1/3] staging: brcm80211: replaced WL_NONE with no_printk

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.



2011-04-21 17:32:31

by Arend van Spriel

[permalink] [raw]
Subject: Re: [PATCH v3 1/3] staging: brcm80211: replaced WL_NONE with no_printk

On Thu, 21 Apr 2011 19:14:00 +0200, Joe Perches <[email protected]> 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


2011-04-21 11:02:22

by Roland Vossen

[permalink] [raw]
Subject: [PATCH v3 3/3] staging: brcm80211: replaced WL_ERROR with dev_err in two files.

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 <[email protected]>
Reviewed-by: Arend van Spriel <[email protected]>
---
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



2011-04-21 17:10:41

by Arend van Spriel

[permalink] [raw]
Subject: Re: [PATCH v3 1/3] staging: brcm80211: replaced WL_NONE with no_printk

On Thu, 21 Apr 2011 18:34:40 +0200, Joe Perches <[email protected]> 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


2011-04-21 17:14:02

by Joe Perches

[permalink] [raw]
Subject: Re: [PATCH v3 1/3] staging: brcm80211: replaced WL_NONE with no_printk

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.



2011-04-21 11:03:27

by Roland Vossen

[permalink] [raw]
Subject: [PATCH v3 2/3] staging: brcm80211: making device object accessible from wlc and phy

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 <[email protected]>
Reviewed-by: Arend van Spriel <[email protected]>
---
.../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



2011-04-21 11:02:22

by Roland Vossen

[permalink] [raw]
Subject: [PATCH v3 1/3] staging: brcm80211: replaced WL_NONE with no_printk

Code cleanup. Using Linux functions instead of Broadcom functions.

Signed-off-by: Roland Vossen <[email protected]>
Reviewed-by: Arend van Spriel <[email protected]>
---
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



2011-05-12 11:36:05

by Roland Vossen

[permalink] [raw]
Subject: NULL pointer dereference in nl80211

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