* [PATCH v2 2/3] mwifiex: device dump support for usb interface
From: Xinming Hu @ 2017-11-27 7:09 UTC (permalink / raw)
To: Linux Wireless
Cc: Kalle Valo, Brian Norris, Dmitry Torokhov, rajatja, Zhiyuan Yang,
Tim Song, Cathy Luo, James Cao, Ganapathi Bhat, Ellie Reeves,
Xinming Hu
In-Reply-To: <1511766555-30780-1-git-send-email-huxm@marvell.com>
Firmware dump on usb interface is different with current
sdio/pcie chipset, which is based on register operation.
When firmware hang on usb interface, context dump will be
upload to host using 0x73 firmware debug event.
This patch store dump data from debug event and send to
userspace using device coredump API.
Signed-off-by: Xinming Hu <huxm@marvell.com>
Signed-off-by: Cathy Luo <cluo@marvell.com>
---
v2: Addressed below review comments from Brian Norris
a) Check for overflow introduced by invalid event.
b) Use end of transmission signal to recognize last event.
---
drivers/net/wireless/marvell/mwifiex/fw.h | 10 ++++
drivers/net/wireless/marvell/mwifiex/init.c | 9 ++++
drivers/net/wireless/marvell/mwifiex/main.h | 2 +
drivers/net/wireless/marvell/mwifiex/sta_event.c | 61 ++++++++++++++++++++++++
4 files changed, 82 insertions(+)
diff --git a/drivers/net/wireless/marvell/mwifiex/fw.h b/drivers/net/wireless/marvell/mwifiex/fw.h
index 13cd58e9..4d5e686 100644
--- a/drivers/net/wireless/marvell/mwifiex/fw.h
+++ b/drivers/net/wireless/marvell/mwifiex/fw.h
@@ -56,6 +56,15 @@ struct mwifiex_fw_data {
u8 data[1];
} __packed;
+struct mwifiex_fw_dump_header {
+ __le16 seq_num;
+ __le16 reserved;
+ __le16 type;
+ __le16 len;
+} __packed;
+
+#define FW_DUMP_INFO_ENDED 0x0002
+
#define MWIFIEX_FW_DNLD_CMD_1 0x1
#define MWIFIEX_FW_DNLD_CMD_5 0x5
#define MWIFIEX_FW_DNLD_CMD_6 0x6
@@ -570,6 +579,7 @@ enum mwifiex_channel_flags {
#define EVENT_BG_SCAN_STOPPED 0x00000065
#define EVENT_REMAIN_ON_CHAN_EXPIRED 0x0000005f
#define EVENT_MULTI_CHAN_INFO 0x0000006a
+#define EVENT_FW_DUMP_INFO 0x00000073
#define EVENT_TX_STATUS_REPORT 0x00000074
#define EVENT_BT_COEX_WLAN_PARA_CHANGE 0X00000076
diff --git a/drivers/net/wireless/marvell/mwifiex/init.c b/drivers/net/wireless/marvell/mwifiex/init.c
index b0d3d68..d239e92 100644
--- a/drivers/net/wireless/marvell/mwifiex/init.c
+++ b/drivers/net/wireless/marvell/mwifiex/init.c
@@ -64,6 +64,13 @@ static void wakeup_timer_fn(struct timer_list *t)
adapter->if_ops.card_reset(adapter);
}
+static void fw_dump_timer_fn(struct timer_list *t)
+{
+ struct mwifiex_adapter *adapter = from_timer(adapter, t, devdump_timer);
+
+ mwifiex_upload_device_dump(adapter);
+}
+
/*
* This function initializes the private structure and sets default
* values to the members.
@@ -315,6 +322,7 @@ static void mwifiex_init_adapter(struct mwifiex_adapter *adapter)
adapter->active_scan_triggered = false;
timer_setup(&adapter->wakeup_timer, wakeup_timer_fn, 0);
adapter->devdump_len = 0;
+ timer_setup(&adapter->devdump_timer, fw_dump_timer_fn, 0);
}
/*
@@ -397,6 +405,7 @@ static void mwifiex_invalidate_lists(struct mwifiex_adapter *adapter)
mwifiex_adapter_cleanup(struct mwifiex_adapter *adapter)
{
del_timer(&adapter->wakeup_timer);
+ del_timer_sync(&adapter->devdump_timer);
mwifiex_cancel_all_pending_cmd(adapter);
wake_up_interruptible(&adapter->cmd_wait_q.wait);
wake_up_interruptible(&adapter->hs_activate_wait_q);
diff --git a/drivers/net/wireless/marvell/mwifiex/main.h b/drivers/net/wireless/marvell/mwifiex/main.h
index 8b6241a..6b5539b 100644
--- a/drivers/net/wireless/marvell/mwifiex/main.h
+++ b/drivers/net/wireless/marvell/mwifiex/main.h
@@ -1037,6 +1037,7 @@ struct mwifiex_adapter {
/* Device dump data/length */
void *devdump_data;
int devdump_len;
+ struct timer_list devdump_timer;
};
void mwifiex_process_tx_queue(struct mwifiex_adapter *adapter);
@@ -1682,6 +1683,7 @@ void mwifiex_process_multi_chan_event(struct mwifiex_private *priv,
void mwifiex_multi_chan_resync(struct mwifiex_adapter *adapter);
int mwifiex_set_mac_address(struct mwifiex_private *priv,
struct net_device *dev);
+void mwifiex_devdump_tmo_func(unsigned long function_context);
#ifdef CONFIG_DEBUG_FS
void mwifiex_debugfs_init(void);
diff --git a/drivers/net/wireless/marvell/mwifiex/sta_event.c b/drivers/net/wireless/marvell/mwifiex/sta_event.c
index d8db412..93dfb76 100644
--- a/drivers/net/wireless/marvell/mwifiex/sta_event.c
+++ b/drivers/net/wireless/marvell/mwifiex/sta_event.c
@@ -584,6 +584,62 @@ void mwifiex_bt_coex_wlan_param_update_event(struct mwifiex_private *priv,
adapter->coex_rx_win_size);
}
+static void
+mwifiex_fw_dump_info_event(struct mwifiex_private *priv,
+ struct sk_buff *event_skb)
+{
+ struct mwifiex_adapter *adapter = priv->adapter;
+ struct mwifiex_fw_dump_header *fw_dump_hdr =
+ (void *)adapter->event_body;
+
+ if (adapter->iface_type != MWIFIEX_USB) {
+ mwifiex_dbg(adapter, MSG,
+ "event is not on usb interface, ignore it\n");
+ return;
+ }
+
+ if (!adapter->devdump_data) {
+ /* When receive the first event, allocate device dump
+ * buffer, dump driver info.
+ */
+ adapter->devdump_data = vzalloc(MWIFIEX_FW_DUMP_SIZE);
+ if (!adapter->devdump_data) {
+ mwifiex_dbg(adapter, ERROR,
+ "vzalloc devdump data failure!\n");
+ return;
+ }
+
+ mwifiex_drv_info_dump(adapter);
+
+ /* If no proceeded event arrive in 10s, upload device
+ * dump data, this will be useful if the end of
+ * transmission event get lost, in this cornel case,
+ * user would still get partial of the dump.
+ */
+ mod_timer(&adapter->devdump_timer,
+ jiffies + msecs_to_jiffies(MWIFIEX_TIMER_10S));
+ }
+
+ /* Overflow check */
+ if (adapter->devdump_len + event_skb->len >= MWIFIEX_FW_DUMP_SIZE)
+ goto upload_dump;
+
+ memmove(adapter->devdump_data + adapter->devdump_len,
+ adapter->event_skb->data, event_skb->len);
+ adapter->devdump_len += event_skb->len;
+
+ if (le16_to_cpu(fw_dump_hdr->type == FW_DUMP_INFO_ENDED)) {
+ mwifiex_dbg(adapter, MSG,
+ "receive end of transmission flag event!\n");
+ goto upload_dump;
+ }
+ return;
+
+upload_dump:
+ del_timer_sync(&adapter->devdump_timer);
+ mwifiex_upload_device_dump(adapter);
+}
+
/*
* This function handles events generated by firmware.
*
@@ -636,6 +692,7 @@ void mwifiex_bt_coex_wlan_param_update_event(struct mwifiex_private *priv,
* - EVENT_DELBA
* - EVENT_BA_STREAM_TIEMOUT
* - EVENT_AMSDU_AGGR_CTRL
+ * - EVENT_FW_DUMP_INFO
*/
int mwifiex_process_sta_event(struct mwifiex_private *priv)
{
@@ -1007,6 +1064,10 @@ int mwifiex_process_sta_event(struct mwifiex_private *priv)
adapter->event_skb->len -
sizeof(eventcause));
break;
+ case EVENT_FW_DUMP_INFO:
+ mwifiex_dbg(adapter, EVENT, "event: firmware debug info\n");
+ mwifiex_fw_dump_info_event(priv, adapter->event_skb);
+ break;
/* Debugging event; not used, but let's not print an ERROR for it. */
case EVENT_UNKNOWN_DEBUG:
mwifiex_dbg(adapter, EVENT, "event: debug\n");
--
1.9.1
^ permalink raw reply related
* [PATCH v2 3/3] mwifiex: debugfs: trigger device dump for usb interface
From: Xinming Hu @ 2017-11-27 7:09 UTC (permalink / raw)
To: Linux Wireless
Cc: Kalle Valo, Brian Norris, Dmitry Torokhov, rajatja, Zhiyuan Yang,
Tim Song, Cathy Luo, James Cao, Ganapathi Bhat, Ellie Reeves,
Xinming Hu
In-Reply-To: <1511766555-30780-1-git-send-email-huxm@marvell.com>
This patch extend device_dump debugfs function to make it
works for usb interface.
Signed-off-by: Xinming Hu <huxm@marvell.com>
Signed-off-by: Cathy Luo <cluo@marvell.com>
---
v2: Same as v1
---
drivers/net/wireless/marvell/mwifiex/cmdevt.c | 11 +++++++----
drivers/net/wireless/marvell/mwifiex/debugfs.c | 9 +++++----
drivers/net/wireless/marvell/mwifiex/fw.h | 1 +
drivers/net/wireless/marvell/mwifiex/sta_cmd.c | 4 ++++
4 files changed, 17 insertions(+), 8 deletions(-)
diff --git a/drivers/net/wireless/marvell/mwifiex/cmdevt.c b/drivers/net/wireless/marvell/mwifiex/cmdevt.c
index dcc529e..8746600 100644
--- a/drivers/net/wireless/marvell/mwifiex/cmdevt.c
+++ b/drivers/net/wireless/marvell/mwifiex/cmdevt.c
@@ -290,13 +290,16 @@ static int mwifiex_dnld_cmd_to_fw(struct mwifiex_private *priv,
adapter->dbg.last_cmd_act[adapter->dbg.last_cmd_index] =
get_unaligned_le16((u8 *)host_cmd + S_DS_GEN);
+ /* Setup the timer after transmit command, except that specific
+ * command might not have command response.
+ */
+ if (cmd_code != HostCmd_CMD_FW_DUMP_EVENT)
+ mod_timer(&adapter->cmd_timer,
+ jiffies + msecs_to_jiffies(MWIFIEX_TIMER_10S));
+
/* Clear BSS_NO_BITS from HostCmd */
cmd_code &= HostCmd_CMD_ID_MASK;
- /* Setup the timer after transmit command */
- mod_timer(&adapter->cmd_timer,
- jiffies + msecs_to_jiffies(MWIFIEX_TIMER_10S));
-
return 0;
}
diff --git a/drivers/net/wireless/marvell/mwifiex/debugfs.c b/drivers/net/wireless/marvell/mwifiex/debugfs.c
index 6f4239b..5d476de 100644
--- a/drivers/net/wireless/marvell/mwifiex/debugfs.c
+++ b/drivers/net/wireless/marvell/mwifiex/debugfs.c
@@ -168,10 +168,11 @@
{
struct mwifiex_private *priv = file->private_data;
- if (!priv->adapter->if_ops.device_dump)
- return -EIO;
-
- priv->adapter->if_ops.device_dump(priv->adapter);
+ if (priv->adapter->iface_type == MWIFIEX_USB)
+ mwifiex_send_cmd(priv, HostCmd_CMD_FW_DUMP_EVENT,
+ HostCmd_ACT_GEN_SET, 0, NULL, true);
+ else
+ priv->adapter->if_ops.device_dump(priv->adapter);
return 0;
}
diff --git a/drivers/net/wireless/marvell/mwifiex/fw.h b/drivers/net/wireless/marvell/mwifiex/fw.h
index 4d5e686..9c2cdef 100644
--- a/drivers/net/wireless/marvell/mwifiex/fw.h
+++ b/drivers/net/wireless/marvell/mwifiex/fw.h
@@ -409,6 +409,7 @@ enum MWIFIEX_802_11_PRIVACY_FILTER {
#define HostCmd_CMD_TDLS_CONFIG 0x0100
#define HostCmd_CMD_MC_POLICY 0x0121
#define HostCmd_CMD_TDLS_OPER 0x0122
+#define HostCmd_CMD_FW_DUMP_EVENT 0x0125
#define HostCmd_CMD_SDIO_SP_RX_AGGR_CFG 0x0223
#define HostCmd_CMD_CHAN_REGION_CFG 0x0242
#define HostCmd_CMD_PACKET_AGGR_CTRL 0x0251
diff --git a/drivers/net/wireless/marvell/mwifiex/sta_cmd.c b/drivers/net/wireless/marvell/mwifiex/sta_cmd.c
index fb09014..211e47d 100644
--- a/drivers/net/wireless/marvell/mwifiex/sta_cmd.c
+++ b/drivers/net/wireless/marvell/mwifiex/sta_cmd.c
@@ -2206,6 +2206,10 @@ int mwifiex_sta_prepare_cmd(struct mwifiex_private *priv, uint16_t cmd_no,
case HostCmd_CMD_CHAN_REGION_CFG:
ret = mwifiex_cmd_chan_region_cfg(priv, cmd_ptr, cmd_action);
break;
+ case HostCmd_CMD_FW_DUMP_EVENT:
+ cmd_ptr->command = cpu_to_le16(cmd_no);
+ cmd_ptr->size = cpu_to_le16(S_DS_GEN);
+ break;
default:
mwifiex_dbg(priv->adapter, ERROR,
"PREP_CMD: unknown cmd- %#x\n", cmd_no);
--
1.9.1
^ permalink raw reply related
* Re: Build regressions/improvements in v4.15-rc1
From: Geert Uytterhoeven @ 2017-11-27 10:11 UTC (permalink / raw)
To: linux-kernel@vger.kernel.org
Cc: Chris Wilson, DRI Development, Rafał Miłecki,
linux-wireless
In-Reply-To: <1511776877-11130-1-git-send-email-geert@linux-m68k.org>
On Mon, Nov 27, 2017 at 11:01 AM, Geert Uytterhoeven
<geert@linux-m68k.org> wrote:
> Below is the list of build error/warning regressions/improvements in
> v4.15-rc1[1] compared to v4.14[2].
>
> Summarized:
> - build errors: +2/-5
> [1] http://kisskb.ellerman.id.au/kisskb/head/4fbd8d194f06c8a3fd2af1ce560ddb31f7ec8323/ (all 271 configs)
> [2] http://kisskb.ellerman.id.au/kisskb/head/bebc6082da0a9f5d47a1ea2edc099bf671058bd4/ (270 out of 271 configs)
> 2 error regressions:
> + /home/kisskb/slave/src/drivers/gpu/drm/i915/intel_csr.c: error: 'si' may be used uninitialized in this function [-Werror=uninitialized]: => 204:3
x86_64-randconfig
> + /home/kisskb/slave/src/include/linux/bcma/bcma_driver_pci.h: error: field 'pci_controller' has incomplete type: => 218:24
mips-allmodconfig
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
^ permalink raw reply
* pull-request: mac80211 2017-11-27
From: Johannes Berg @ 2017-11-27 10:32 UTC (permalink / raw)
To: David Miller; +Cc: netdev, linux-wireless
Hi Dave,
Here are a few more fixes, one of which fixes the crash Florian
reported which I think is the same that zero-day reported.
Please pull and let me know if there's any problem.
Thanks,
johannes
The following changes since commit a13e8d418f3cb9d0b4efa6e744b8b23c0e3cdfe8:
Merge tag 'mac80211-for-davem-2017-11-20' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211 (2017-11-21 20:30:57 +0900)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211.git tags/mac80211-for-davem-2017-11-27
for you to fetch changes up to 72e2c3438ba3bd2ed640b6b5ea9e58993dd9ab7f:
mac80211: tear down RX aggregations first (2017-11-27 11:24:59 +0100)
----------------------------------------------------------------
Four fixes:
* CRYPTO_SHA256 is needed for regdb validation
* mac80211: mesh path metric was wrong in some frames
* mac80211: use QoS null-data packets on QoS connections
* mac80211: tear down RX aggregation sessions first to
drop fewer packets in HW restart scenarios
----------------------------------------------------------------
Chun-Yeow Yeoh (1):
mac80211: fix the update of path metric for RANN frame
Johannes Berg (2):
cfg80211: select CRYPTO_SHA256 if needed
mac80211: use QoS NDP for AP probing
Sara Sharon (1):
mac80211: tear down RX aggregations first
drivers/net/wireless/ath/ath9k/channel.c | 2 +-
drivers/net/wireless/st/cw1200/sta.c | 4 ++--
drivers/net/wireless/ti/wl1251/main.c | 2 +-
drivers/net/wireless/ti/wlcore/cmd.c | 5 +++--
include/net/mac80211.h | 8 +++++++-
net/mac80211/ht.c | 4 +++-
net/mac80211/mesh_hwmp.c | 15 +++++++++------
net/mac80211/mlme.c | 2 +-
net/mac80211/tx.c | 29 +++++++++++++++++++++++++++--
net/wireless/Kconfig | 7 +++++++
10 files changed, 61 insertions(+), 17 deletions(-)
^ permalink raw reply
* Re: Setting TX power on a monitoring interface
From: Johannes Berg @ 2017-11-27 11:43 UTC (permalink / raw)
To: Peter Große, linux-wireless
In-Reply-To: <20171120173415.1ae44829@fem-net.de>
On Mon, 2017-11-20 at 17:34 +0100, Peter Große wrote:
> Hi everyone.
>
> The iw tool allows to set TX power settings on network interfaces.
>
> If I try to set the TX power level on a _monitor_ interface, I get
> a kernel warning:
>
> ------------[ cut here ]------------
> WARNING: CPU: 0 PID: 2193 at net/mac80211/driver-ops.h:167
> ieee80211_bss_info_change_notify+0x111/0x190 Modules linked in: uvcvideo
> videobuf2_vmalloc videobuf2_memops videobuf2_v4l2 videobuf2_core
> rndis_host cdc_ether usbnet mii tp_smapi(O) thinkpad_ec(O) ohci_hcd vboxpci(O)
> vboxnetadp(O) vboxnetflt(O) v boxdrv(O) x86_pkg_temp_thermal kvm_intel kvm
> irqbypass iwldvm iwlwifi ehci_pci ehci_hcd tpm_tis tpm_tis_core tpm CPU: 0
> PID: 2193 Comm: iw Tainted: G O 4.12.12-gentoo #2 task:
> ffff880186fd5cc0 task.stack: ffffc90001b54000 RIP:
> 0010:ieee80211_bss_info_change_notify+0x111/0x190 RSP: 0018:ffffc90001b57a10
> EFLAGS: 00010246 RAX: 0000000000000006 RBX: ffff8801052ce840 RCX:
> 0000000000000064 RDX: 00000000fffffffc RSI: 0000000000040000 RDI:
> ffff8801052ce840 RBP: ffffc90001b57a38 R08: 0000000000000062 R09:
> 0000000000000000 R10: ffff8802144b5000 R11: ffff880049dc4614 R12:
> 0000000000040000 R13: 0000000000000064 R14: ffff8802105f0760 R15:
> ffffc90001b57b48 FS: 00007f92644b4580(0000) GS:ffff88021e200000(0000)
> knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> CR2: 00007f9263c109f0 CR3: 00000001df850000 CR4: 00000000000406f0
> Call Trace:
> ieee80211_recalc_txpower+0x33/0x40
> ieee80211_set_tx_power+0x40/0x180
> nl80211_set_wiphy+0x32e/0x950
>
> Steps to reproduce:
>
> iw dev wlan0 interface add mon0 type monitor
> ip link set dev mon0 up
> iw dev mon0 set txpower fixed 100
>
> Is that a bug to be fixed?
Yeah, it's a bug.
> What would be the correct way of fixing it? Maybe I can provide a patch.
That's a really good question :-)
I think if the driver has WANT_MONITOR_VIF, then we can pass that
through and let the driver sort it out.
But if not, we probably just have to reject the configuration?
johannes
^ permalink raw reply
* [PATCH] wlcore: use boottime for fw time sync
From: Arnd Bergmann @ 2017-11-27 11:48 UTC (permalink / raw)
To: Kalle Valo
Cc: y2038, Arnd Bergmann, Johannes Berg, Arend Van Spriel,
Iain Hunter, Reizer, Eyal, David S. Miller, linux-wireless,
netdev, linux-kernel
Using getnstimeofday()/timespec_to_ns() causes an overflow on 32-bit
architectures in 2038, and may suffer from time jumps due to
settimeofday() or leap seconds.
I don't see a reason why this needs to be UTC, so either monotonic
or boot time would be better here. Assuming that the fw time keeps
running during suspend, boottime is better than monotonic, and
ktime_get_boot_ns() will also save the additional conversion to
nanoseconds.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
drivers/net/wireless/ti/wlcore/main.c | 4 +---
drivers/net/wireless/ti/wlcore/tx.c | 4 +---
2 files changed, 2 insertions(+), 6 deletions(-)
diff --git a/drivers/net/wireless/ti/wlcore/main.c b/drivers/net/wireless/ti/wlcore/main.c
index d47921a84509..946a7124b09e 100644
--- a/drivers/net/wireless/ti/wlcore/main.c
+++ b/drivers/net/wireless/ti/wlcore/main.c
@@ -388,7 +388,6 @@ static void wl12xx_irq_update_links_status(struct wl1271 *wl,
static int wlcore_fw_status(struct wl1271 *wl, struct wl_fw_status *status)
{
struct wl12xx_vif *wlvif;
- struct timespec ts;
u32 old_tx_blk_count = wl->tx_blocks_available;
int avail, freed_blocks;
int i;
@@ -485,8 +484,7 @@ static int wlcore_fw_status(struct wl1271 *wl, struct wl_fw_status *status)
}
/* update the host-chipset time offset */
- getnstimeofday(&ts);
- wl->time_offset = (timespec_to_ns(&ts) >> 10) -
+ wl->time_offset = (ktime_get_boot_ns() >> 10) -
(s64)(status->fw_localtime);
wl->fw_fast_lnk_map = status->link_fast_bitmap;
diff --git a/drivers/net/wireless/ti/wlcore/tx.c b/drivers/net/wireless/ti/wlcore/tx.c
index a3f5e9ca492a..00e9b4624dcf 100644
--- a/drivers/net/wireless/ti/wlcore/tx.c
+++ b/drivers/net/wireless/ti/wlcore/tx.c
@@ -264,7 +264,6 @@ static void wl1271_tx_fill_hdr(struct wl1271 *wl, struct wl12xx_vif *wlvif,
struct sk_buff *skb, u32 extra,
struct ieee80211_tx_info *control, u8 hlid)
{
- struct timespec ts;
struct wl1271_tx_hw_descr *desc;
int ac, rate_idx;
s64 hosttime;
@@ -287,8 +286,7 @@ static void wl1271_tx_fill_hdr(struct wl1271 *wl, struct wl12xx_vif *wlvif,
}
/* configure packet life time */
- getnstimeofday(&ts);
- hosttime = (timespec_to_ns(&ts) >> 10);
+ hosttime = (ktime_get_boot_ns() >> 10);
desc->start_time = cpu_to_le32(hosttime - wl->time_offset);
is_dummy = wl12xx_is_dummy_packet(wl, skb);
--
2.9.0
^ permalink raw reply related
* [PATCH] ath10k: use 64-bit crash dump timestamps
From: Arnd Bergmann @ 2017-11-27 11:49 UTC (permalink / raw)
To: Kalle Valo
Cc: y2038, Arnd Bergmann, Waldemar Rymarkiewicz, Erik Stromdahl,
Mohammed Shafi Shajakhan, Sarada Prasanna Garnayak,
Venkateswara Naralasetty, Marcin Rokicki, ath10k, linux-wireless,
netdev, linux-kernel
The dump format uses 64-bit timestamps already, but calling
getnstimeofday() only returns a 32-bit number on 32-bit architectures,
so that will overflow in y2038.
This changes it to use ktime_get_real_ts64() instead.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
drivers/net/wireless/ath/ath10k/core.h | 2 +-
drivers/net/wireless/ath/ath10k/debug.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/net/wireless/ath/ath10k/core.h b/drivers/net/wireless/ath/ath10k/core.h
index 643041ef3271..dd3c6c63aae1 100644
--- a/drivers/net/wireless/ath/ath10k/core.h
+++ b/drivers/net/wireless/ath/ath10k/core.h
@@ -463,7 +463,7 @@ struct ath10k_fw_crash_data {
bool crashed_since_read;
guid_t guid;
- struct timespec timestamp;
+ struct timespec64 timestamp;
__le32 registers[REG_DUMP_COUNT_QCA988X];
struct ath10k_ce_crash_data ce_crash_data[CE_COUNT_MAX];
};
diff --git a/drivers/net/wireless/ath/ath10k/debug.c b/drivers/net/wireless/ath/ath10k/debug.c
index df514507d3f1..66498e3c0f91 100644
--- a/drivers/net/wireless/ath/ath10k/debug.c
+++ b/drivers/net/wireless/ath/ath10k/debug.c
@@ -720,7 +720,7 @@ ath10k_debug_get_new_fw_crash_data(struct ath10k *ar)
crash_data->crashed_since_read = true;
guid_gen(&crash_data->guid);
- getnstimeofday(&crash_data->timestamp);
+ ktime_get_real_ts64(&crash_data->timestamp);
return crash_data;
}
--
2.9.0
^ permalink raw reply related
* Re: What would it take to get WDS working with channel contexts?
From: Johannes Berg @ 2017-11-27 11:55 UTC (permalink / raw)
To: Ben Greear, linux-wireless@vger.kernel.org
In-Reply-To: <6c0f3696-b4bb-d653-3661-35250fae2894@candelatech.com>
On Fri, 2017-11-17 at 08:46 -0800, Ben Greear wrote:
> It looks like my options are to hack the mac80211 stack to be minimally
> functional with WDS and channel-contexts, or to hack ath10k driver to
> disable chan-tx in order to try to fix the ath10k firmware WDS issues.
>
> I'd guess the former is of slightly more use to society. Do you have
> any quick hacks to allow mac80211 to work with chantx and WDS, even
> if you wouldn't want them upstream?
No, I don't have anything like that, sorry.
johannes
^ permalink raw reply
* Re: [RFC PATCH 2/2] nl80211: implement beacon change notifier
From: Johannes Berg @ 2017-11-27 12:02 UTC (permalink / raw)
To: Sergey Matyukevich
Cc: linux-wireless, Igor Mitsyanko, Avinash Patil, Vasily Ulyanov,
Marianna Carrera
In-Reply-To: <20171115153547.kkunkrfcivoqcsq2@bars>
On Wed, 2017-11-15 at 18:35 +0300, Sergey Matyukevich wrote:
> In our case, we are experimenting with applications running along with
> hostapd and enabling band steering and client roaming functionality.
> As I mentioned, various approaches are being examined, including
> both pure nl80211-based approach as well as adding direct hooks
> to hostapd.
To be honest, I'm torn on this.
On the one hand, I think it's fairly reasonable functionality, but on
the other hand I'm not sure we should encourage such separate
approaches - it seems to me that will lead to a lot of fragmentation
and much harder debuggability for upstream where these things get used.
It's also a bunch of code we have to maintain, for nothing that seems
of use to the community - since it's the sort of flexibility explicitly
designed for non-public code (otherwise it could just be part of
hostapd; actually it could even if it were non-public, at least in
theory, unless you're planning it as a value-add thing to go with an
open source hostapd ...).
So while I don't want to stop you entirely in your tracks with this,
I'd really prefer you explore other options regarding where to put your
client steering functionality, perhaps even working on hostapd.
johannes
^ permalink raw reply
* Re: [RFC] cfg80211: Implement Multiple BSSID capability in scanning
From: Johannes Berg @ 2017-11-27 12:03 UTC (permalink / raw)
To: Peng Xu, Jouni Malinen; +Cc: linux-wireless@vger.kernel.org, Sara Sharon
In-Reply-To: <59a37842482b40ceb5e60c2155bca78c@NASANEXM01F.na.qualcomm.com>
Hi,
> As you pointed out the use cases for having vendor elements in MBSSID subelements, what is
> your suggestion to identify and process the vendor elements?
Is a new version of this patch hinging only on this? We'd love to have
a fixed-up one :-)
johannes
^ permalink raw reply
* Re: Build regressions/improvements in v4.15-rc1
From: Kalle Valo @ 2017-11-27 12:57 UTC (permalink / raw)
To: Geert Uytterhoeven
Cc: linux-kernel@vger.kernel.org, Chris Wilson, DRI Development,
Rafał Miłecki, linux-wireless
In-Reply-To: <CAMuHMdX6XpKbLYuwkdCK0YhYGaV5Sg8+v0DrUV9y6R3Qozf-qQ@mail.gmail.com>
Geert Uytterhoeven <geert@linux-m68k.org> writes:
> On Mon, Nov 27, 2017 at 11:01 AM, Geert Uytterhoeven
> <geert@linux-m68k.org> wrote:
>> Below is the list of build error/warning regressions/improvements in
>> v4.15-rc1[1] compared to v4.14[2].
>>
>> Summarized:
>> - build errors: +2/-5
>
>> [1] http://kisskb.ellerman.id.au/kisskb/head/4fbd8d194f06c8a3fd2af1ce560ddb31f7ec8323/ (all 271 configs)
>> [2] http://kisskb.ellerman.id.au/kisskb/head/bebc6082da0a9f5d47a1ea2edc099bf671058bd4/ (270 out of 271 configs)
>
>> 2 error regressions:
>> + /home/kisskb/slave/src/drivers/gpu/drm/i915/intel_csr.c: error: 'si' may be used uninitialized in this function [-Werror=uninitialized]: => 204:3
>
> x86_64-randconfig
>
>> + /home/kisskb/slave/src/include/linux/bcma/bcma_driver_pci.h: error: field 'pci_controller' has incomplete type: => 218:24
The last "real" change to that file was from 2015 so I guess something
else changed to trigger this? But anyway, I guess the reason is missing
struct pci_controller forward declaration? Or missing include
<asm/pci-bridge.h? Not sure.
--
Kalle Valo
^ permalink raw reply
* Re: Setting TX power on a monitoring interface
From: Peter Große @ 2017-11-27 15:07 UTC (permalink / raw)
To: linux-wireless
In-Reply-To: <1511782993.5456.6.camel@sipsolutions.net>
[-- Attachment #1: Type: text/plain, Size: 763 bytes --]
On Mon, 27 Nov 2017 12:43:13 +0100
Johannes Berg <johannes-cdvu00un1VgdHxzADdlk8Q@public.gmane.org> wrote:
> > What would be the correct way of fixing it? Maybe I can provide a patch.
>
> That's a really good question :-)
>
> I think if the driver has WANT_MONITOR_VIF, then we can pass that
> through and let the driver sort it out.
>
> But if not, we probably just have to reject the configuration?
With passing through you mean calling bss_info_changed on the driver for the
monitor interface?
Are monitor interfaces allowed to exist when WANT_MONITOR_VIF is not set?
I ask, whether I would have to check
sdata->vif.type == NL80211_IFTYPE_MONITOR
_and_ also
ieee80211_hw_check(&local->hw, WANT_MONITOR_VIF)
?
Regards
Peter
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply
* Re: pull-request: mac80211 2017-11-27
From: David Miller @ 2017-11-27 16:19 UTC (permalink / raw)
To: johannes; +Cc: netdev, linux-wireless
In-Reply-To: <20171127103257.13399-1-johannes@sipsolutions.net>
From: Johannes Berg <johannes@sipsolutions.net>
Date: Mon, 27 Nov 2017 11:32:56 +0100
> Here are a few more fixes, one of which fixes the crash Florian
> reported which I think is the same that zero-day reported.
>
> Please pull and let me know if there's any problem.
Pulled, thanks Johannes.
^ permalink raw reply
* Re: [PATCH for-4.15] brcmfmac: change driver unbind order of the sdio function devices
From: Kalle Valo @ 2017-11-27 17:15 UTC (permalink / raw)
To: Arend van Spriel; +Cc: linux-wireless
In-Reply-To: <1511642376-16279-1-git-send-email-arend.vanspriel@broadcom.com>
Arend van Spriel <arend.vanspriel@broadcom.com> writes:
> In the function brcmf_sdio_firmware_callback() the driver is
> unbound from the sdio function devices in the error path.
> However, the order in which it is done resulted in a use-after-free
> issue (see brcmf_ops_sdio_remove() in bcmsdh.c). Hence change
> the order and first unbind sdio function #2 device and then
> unbind sdio function #1 device.
>
> Cc: stable@vger.kernel.org # v4.12.x
> Fixes: 7a51461fc2da ("brcmfmac: unbind all devices upon failure in firmware callback")
> Reported-by: Stefan Wahren <stefan.wahren@i2se.com>
> Reviewed-by: Hante Meuleman <hante.meuleman@broadcom.com>
> Reviewed-by: Pieter-Paul Giesberts <pieter-paul.giesberts@broadcom.com>
> Reviewed-by: Franky Lin <franky.lin@broadcom.com>
> Signed-off-by: Arend van Spriel <arend.vanspriel@broadcom.com>
I'll queue this for v4.15.
--
Kalle Valo
^ permalink raw reply
* [PATCH 3/3] ath10k: move spectral scan support under a separate config symbol
From: Matthias Schiffer @ 2017-11-27 17:56 UTC (permalink / raw)
To: kvalo; +Cc: ath9k-devel, ath10k, linux-wireless, netdev, linux-kernel, nbd
In-Reply-To: <e60138924429ca428efc6e3154606887b3bc5201.1511804622.git.mschiffer@universe-factory.net>
At the moment, spectral scan support, and with it RELAY, is always enabled
with ATH10K_DEBUGFS. Spectral scan support is currently the only user of
RELAY in ath10k, and it unconditionally reserves a relay channel.
Having debugfs support in ath10k is often useful even on very small
embedded routers, where we'd rather like to avoid the code size and RAM
usage of the relay support. While ath10k-based devices usually have more
resources than ath9k-based ones, it makes sense to keep the configuration
symmetric to ath9k, so the same base kernel without RELAY can be used for
both ath9k and ath10k hardware.
Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
---
checkpatch.pl wants me to write a more meaningful description for
ATH10K_SPECTRAL, but I don't actually know enough about the spectral scan
feature to do so...
drivers/net/wireless/ath/ath10k/Kconfig | 9 ++++++++-
drivers/net/wireless/ath/ath10k/Makefile | 2 +-
drivers/net/wireless/ath/ath10k/spectral.h | 4 ++--
3 files changed, 11 insertions(+), 4 deletions(-)
diff --git a/drivers/net/wireless/ath/ath10k/Kconfig b/drivers/net/wireless/ath/ath10k/Kconfig
index 87f56d0e17a6..deb5ae21a559 100644
--- a/drivers/net/wireless/ath/ath10k/Kconfig
+++ b/drivers/net/wireless/ath/ath10k/Kconfig
@@ -47,12 +47,19 @@ config ATH10K_DEBUG
config ATH10K_DEBUGFS
bool "Atheros ath10k debugfs support"
depends on ATH10K && DEBUG_FS
- select RELAY
---help---
Enabled debugfs support
If unsure, say Y to make it easier to debug problems.
+config ATH10K_SPECTRAL
+ bool "Atheros ath10k spectral scan support"
+ depends on ATH10K_DEBUGFS
+ select RELAY
+ default n
+ ---help---
+ Say Y to enable access to the FFT/spectral data via debugfs.
+
config ATH10K_TRACING
bool "Atheros ath10k tracing support"
depends on ATH10K
diff --git a/drivers/net/wireless/ath/ath10k/Makefile b/drivers/net/wireless/ath/ath10k/Makefile
index 899b9b79f4ce..af8f11970a08 100644
--- a/drivers/net/wireless/ath/ath10k/Makefile
+++ b/drivers/net/wireless/ath/ath10k/Makefile
@@ -14,7 +14,7 @@ ath10k_core-y += mac.o \
p2p.o \
swap.o
-ath10k_core-$(CONFIG_ATH10K_DEBUGFS) += spectral.o
+ath10k_core-$(CONFIG_ATH10K_SPECTRAL) += spectral.o
ath10k_core-$(CONFIG_NL80211_TESTMODE) += testmode.o
ath10k_core-$(CONFIG_ATH10K_TRACING) += trace.o
ath10k_core-$(CONFIG_THERMAL) += thermal.o
diff --git a/drivers/net/wireless/ath/ath10k/spectral.h b/drivers/net/wireless/ath/ath10k/spectral.h
index 89b0ad769d4f..b2a2e8ae04b8 100644
--- a/drivers/net/wireless/ath/ath10k/spectral.h
+++ b/drivers/net/wireless/ath/ath10k/spectral.h
@@ -44,7 +44,7 @@ enum ath10k_spectral_mode {
SPECTRAL_MANUAL,
};
-#ifdef CONFIG_ATH10K_DEBUGFS
+#ifdef CONFIG_ATH10K_SPECTRAL
int ath10k_spectral_process_fft(struct ath10k *ar,
struct wmi_phyerr_ev_arg *phyerr,
@@ -85,6 +85,6 @@ static inline void ath10k_spectral_destroy(struct ath10k *ar)
{
}
-#endif /* CONFIG_ATH10K_DEBUGFS */
+#endif /* CONFIG_ATH10K_SPECTRAL */
#endif /* SPECTRAL_H */
--
2.15.0
^ permalink raw reply related
* [PATCH 1/3] ath9k: remove stray backslash in Makefile
From: Matthias Schiffer @ 2017-11-27 17:56 UTC (permalink / raw)
To: kvalo; +Cc: ath9k-devel, ath10k, linux-wireless, netdev, linux-kernel, nbd
Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
---
drivers/net/wireless/ath/ath9k/Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/wireless/ath/ath9k/Makefile b/drivers/net/wireless/ath/ath9k/Makefile
index 36a40ffdce15..90e4a341076c 100644
--- a/drivers/net/wireless/ath/ath9k/Makefile
+++ b/drivers/net/wireless/ath/ath9k/Makefile
@@ -59,7 +59,7 @@ obj-$(CONFIG_ATH9K_HW) += ath9k_hw.o
obj-$(CONFIG_ATH9K_COMMON) += ath9k_common.o
ath9k_common-y:= common.o \
common-init.o \
- common-beacon.o \
+ common-beacon.o
ath9k_common-$(CONFIG_ATH9K_COMMON_DEBUG) += common-debug.o \
common-spectral.o
--
2.15.0
^ permalink raw reply related
* [PATCH 2/3] ath9k: move spectral scan support under a separate config symbol
From: Matthias Schiffer @ 2017-11-27 17:56 UTC (permalink / raw)
To: kvalo; +Cc: ath9k-devel, ath10k, linux-wireless, netdev, linux-kernel, nbd
In-Reply-To: <e60138924429ca428efc6e3154606887b3bc5201.1511804622.git.mschiffer@universe-factory.net>
At the moment, spectral scan support, and with it RELAY, is always enabled
with ATH9K[_HTC]_DEBUGFS. Spectral scan support is currently the only user
of RELAY in ath9k, and it unconditionally reserves a relay channel.
Having debugfs support in ath9k is often useful even on very small embedded
routers, where we'd rather like to avoid the code size and RAM usage of the
relay support.
Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
---
drivers/net/wireless/ath/ath9k/Kconfig | 14 ++++++++++----
drivers/net/wireless/ath/ath9k/Makefile | 4 ++--
drivers/net/wireless/ath/ath9k/common-spectral.h | 4 ++--
3 files changed, 14 insertions(+), 8 deletions(-)
diff --git a/drivers/net/wireless/ath/ath9k/Kconfig b/drivers/net/wireless/ath/ath9k/Kconfig
index 783a38f1a626..1f3523019509 100644
--- a/drivers/net/wireless/ath/ath9k/Kconfig
+++ b/drivers/net/wireless/ath/ath9k/Kconfig
@@ -61,13 +61,12 @@ config ATH9K_DEBUGFS
depends on ATH9K && DEBUG_FS
select MAC80211_DEBUGFS
select ATH9K_COMMON_DEBUG
- select RELAY
---help---
Say Y, if you need access to ath9k's statistics for
interrupts, rate control, etc.
- Also required for changing debug message flags at run time.
- As well as access to the FFT/spectral data and TX99.
+ Also required for changing debug message flags at run time and for
+ TX99.
config ATH9K_STATION_STATISTICS
bool "Detailed station statistics"
@@ -177,7 +176,6 @@ config ATH9K_HTC_DEBUGFS
bool "Atheros ath9k_htc debugging"
depends on ATH9K_HTC && DEBUG_FS
select ATH9K_COMMON_DEBUG
- select RELAY
---help---
Say Y, if you need access to ath9k_htc's statistics.
As well as access to the FFT/spectral data.
@@ -192,3 +190,11 @@ config ATH9K_HWRNG
Say Y, feeds the entropy directly from the WiFi driver to the input
pool.
+
+config ATH9K_COMMON_SPECTRAL
+ bool "Atheros ath9k/ath9k_htc spectral scan support"
+ depends on ATH9K_DEBUGFS || ATH9K_HTC_DEBUGFS
+ select RELAY
+ default n
+ ---help---
+ Say Y to enable access to the FFT/spectral data via debugfs.
diff --git a/drivers/net/wireless/ath/ath9k/Makefile b/drivers/net/wireless/ath/ath9k/Makefile
index 90e4a341076c..80197101eda7 100644
--- a/drivers/net/wireless/ath/ath9k/Makefile
+++ b/drivers/net/wireless/ath/ath9k/Makefile
@@ -61,8 +61,8 @@ ath9k_common-y:= common.o \
common-init.o \
common-beacon.o
-ath9k_common-$(CONFIG_ATH9K_COMMON_DEBUG) += common-debug.o \
- common-spectral.o
+ath9k_common-$(CONFIG_ATH9K_COMMON_DEBUG) += common-debug.o
+ath9k_common-$(CONFIG_ATH9K_COMMON_SPECTRAL) += common-spectral.o
ath9k_htc-y += htc_hst.o \
hif_usb.o \
diff --git a/drivers/net/wireless/ath/ath9k/common-spectral.h b/drivers/net/wireless/ath/ath9k/common-spectral.h
index 5d1a51d83aa6..303ab470ce34 100644
--- a/drivers/net/wireless/ath/ath9k/common-spectral.h
+++ b/drivers/net/wireless/ath/ath9k/common-spectral.h
@@ -151,7 +151,7 @@ static inline u8 spectral_bitmap_weight(u8 *bins)
return bins[0] & 0x3f;
}
-#ifdef CONFIG_ATH9K_COMMON_DEBUG
+#ifdef CONFIG_ATH9K_COMMON_SPECTRAL
void ath9k_cmn_spectral_init_debug(struct ath_spec_scan_priv *spec_priv, struct dentry *debugfs_phy);
void ath9k_cmn_spectral_deinit_debug(struct ath_spec_scan_priv *spec_priv);
@@ -183,6 +183,6 @@ static inline int ath_cmn_process_fft(struct ath_spec_scan_priv *spec_priv,
{
return 0;
}
-#endif /* CONFIG_ATH9K_COMMON_DEBUG */
+#endif /* CONFIG_ATH9K_COMMON_SPECTRAL */
#endif /* SPECTRAL_H */
--
2.15.0
^ permalink raw reply related
* RE: [RFC] cfg80211: Implement Multiple BSSID capability in scanning
From: Peng Xu @ 2017-11-27 19:14 UTC (permalink / raw)
To: Johannes Berg, Jouni Malinen; +Cc: linux-wireless@vger.kernel.org, Sara Sharon
In-Reply-To: <1511784190.5456.13.camel@sipsolutions.net>
PiBJcyBhIG5ldyB2ZXJzaW9uIG9mIHRoaXMgcGF0Y2ggaGluZ2luZyBvbmx5IG9uIHRoaXM/IFdl
J2QgbG92ZSB0byBoYXZlIGEgZml4ZWQtDQo+IHVwIG9uZSA6LSkNCg0KVGhlIG5ldyB2ZXJzaW9u
IGNvdmVycyB0aGUgdXNlIGNhc2VzIG1lbnRpb25lZCBieSBKb3VuaSBhcyB0aGUgT1VJcyBvZiB0
aGUgdmVuZG9yIGNvbW1hbmRzIA0KaGFzIHRoZSBmb3JtYXQgb2YgT1VJICsgdHlwZSArIHN1YnR5
cGUuIEZvciBvdGhlciBmb3JtYXQgb2YgdmVuZG9yIGNvbW1hbmRzLCB0aGV5IHdpbGwgYmUgdHJl
YXRlZA0KYXMgZGlmZmVyZW50IHZlbmRvciBjb21tYW5kcyBhbmQgYXJlIGFkZGVkIGluIHRoZSBu
ZXcgSUUgYXMgd2VsbC4gDQoNCkpvdW5pLCBjb3VsZCB5b3UgY2hpbWUgaW4gdG8gZXhwbGFpbiB5
b3VyIHZpZXcgb24gdGhpcz8NCg0KVGhhbmtzLA0KUGVuZw0K
^ permalink raw reply
* Re: [PATCH] ath6kl: remove redundant variable ies_len
From: Steve deRosier @ 2017-11-27 19:19 UTC (permalink / raw)
To: Kenneth Lu; +Cc: Kalle Valo, ath6kl, linux-wireless
In-Reply-To: <20171126053818.GA6602@blackstone>
On Sat, Nov 25, 2017 at 9:38 PM, Kenneth Lu <kuohsianglu@gmail.com> wrote:
> To get rid of W=3D1 warning: variable =E2=80=98ies_len=E2=80=99 set but n=
ot used.
> Variable ies_len is being assigned but never read.
>
> Signed-off-by: Kenneth Lu <kuohsianglu@gmail.com>
> ---
> drivers/net/wireless/ath/ath6kl/cfg80211.c | 2 --
> 1 file changed, 2 deletions(-)
>
> diff --git a/drivers/net/wireless/ath/ath6kl/cfg80211.c b/drivers/net/wir=
eless/ath/ath6kl/cfg80211.c
> index b53eb2b..2ba8cf3 100644
> --- a/drivers/net/wireless/ath/ath6kl/cfg80211.c
> +++ b/drivers/net/wireless/ath/ath6kl/cfg80211.c
> @@ -2766,7 +2766,6 @@ static int ath6kl_start_ap(struct wiphy *wiphy, str=
uct net_device *dev,
> struct ieee80211_mgmt *mgmt;
> bool hidden =3D false;
> u8 *ies;
> - int ies_len;
> struct wmi_connect_cmd p;
> int res;
> int i, ret;
> @@ -2804,7 +2803,6 @@ static int ath6kl_start_ap(struct wiphy *wiphy, str=
uct net_device *dev,
> ies =3D mgmt->u.beacon.variable;
> if (ies > info->beacon.head + info->beacon.head_len)
> return -EINVAL;
> - ies_len =3D info->beacon.head + info->beacon.head_len - ies;
>
> if (info->ssid =3D=3D NULL)
> return -EINVAL;
Oddly, ies_len was never even used in the original patch that added
it. Probably used in some debugging code that was stripped before
submitting. Seems safe to kill it.
Reviewed-by: Steve deRosier <derosier@gmail.com>
- Steve
^ permalink raw reply
* Re: [PATCH v1] brcmfmac: Avoid build error with make W=1
From: Arend van Spriel @ 2017-11-27 21:05 UTC (permalink / raw)
To: Andy Shevchenko, Franky Lin, Hante Meuleman, Chi-Hsien Lin,
Wright Feng, brcm80211-dev-list.pdl, brcm80211-dev-list,
Kalle Valo, linux-wireless, netdev
In-Reply-To: <20171123155704.44878-1-andriy.shevchenko@linux.intel.com>
On 23-11-17 16:57, Andy Shevchenko wrote:
> When I run make W=1 on gcc (Debian 7.2.0-16) 7.2.0 I got an error for
> the first run, all next ones are okay.
>
> CC [M] drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.o
> drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:2078: error: Cannot parse struct or union!
> scripts/Makefile.build:310: recipe for target 'drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.o' failed
>
> Seems like something happened with W=1 and wrong kernel doc format.
> As a quick fix remove dubious /** in the code.
Acked-by: Arend van Spriel <arend.vanspriel@broadcom.com>
> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> ---
> drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
^ permalink raw reply
* Re: [RFC] cfg80211: Implement Multiple BSSID capability in scanning
From: Johannes Berg @ 2017-11-27 21:46 UTC (permalink / raw)
To: Peng Xu, Jouni Malinen; +Cc: linux-wireless@vger.kernel.org, Sara Sharon
In-Reply-To: <15034b29555b487bb172735015f5b78f@nasanexm01a.na.qualcomm.com>
On Mon, 2017-11-27 at 19:14 +0000, Peng Xu wrote:
> > Is a new version of this patch hinging only on this? We'd love to have a fixed-
> > up one :-)
>
> The new version covers the use cases mentioned by Jouni as the OUIs of the vendor commands
> has the format of OUI + type + subtype. For other format of vendor commands, they will be treated
> as different vendor commands and are added in the new IE as well.
>
Sounds fine to me.
johannes
^ permalink raw reply
* [PATCH v2] drivers: bcma: driver_pcie2.c: Comment format correction & moving trailing */ to a separate line as per checkpatch
From: Ashish Kalra @ 2017-11-28 2:11 UTC (permalink / raw)
To: morganfreeman6991; +Cc: zajec5, linux-wireless, linux-kernel, Ashish Kalra
In-Reply-To: <20171126172747.GA6512@himanshu-Vostro-3559>
This patch fixes the checkpatch.pl warning:
WARNING: Block comments use * on subsequent lines
+ /* TODO:
+ si_core_wrapperreg(pcie2, 3, 0x60, 0x8080, 0); */
WARNING: Block comments use a trailing */ on a separate line
+ si_core_wrapperreg(pcie2, 3, 0x60, 0x8080, 0); */
total: 0 errors, 2 warnings, 200 lines checked
Signed-off-by: Ashish Kalra <eashishkalra@gmail.com>
---
changes from v1 (https://lkml.org/lkml/2017/11/26/85)
v2: Improved commit message as per review from Morgan Freeman <morganfreeman6991@gmail.com>
drivers/bcma/driver_pcie2.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/bcma/driver_pcie2.c b/drivers/bcma/driver_pcie2.c
index b1a6e327cb23..cf889fc62ac7 100644
--- a/drivers/bcma/driver_pcie2.c
+++ b/drivers/bcma/driver_pcie2.c
@@ -83,7 +83,8 @@ static void bcma_core_pcie2_hw_ltr_war(struct bcma_drv_pcie2 *pcie2)
bcma_core_pcie2_set_ltr_vals(pcie2);
/* TODO:
- si_core_wrapperreg(pcie2, 3, 0x60, 0x8080, 0); */
+ *si_core_wrapperreg(pcie2, 3, 0x60, 0x8080, 0);
+ */
/* enable the LTR */
devstsctr2 |= PCIE2_CAP_DEVSTSCTRL2_LTRENAB;
--
2.14.1
^ permalink raw reply related
* Re: [PATCH 1/3] ath9k: remove stray backslash in Makefile
From: Jakub Kicinski @ 2017-11-28 3:35 UTC (permalink / raw)
To: Matthias Schiffer
Cc: kvalo, ath9k-devel, ath10k, linux-wireless, netdev, linux-kernel,
nbd
In-Reply-To: <e60138924429ca428efc6e3154606887b3bc5201.1511804622.git.mschiffer@universe-factory.net>
On Mon, 27 Nov 2017 18:56:21 +0100, Matthias Schiffer wrote:
> Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
> ---
> drivers/net/wireless/ath/ath9k/Makefile | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/net/wireless/ath/ath9k/Makefile b/drivers/net/wireless/ath/ath9k/Makefile
> index 36a40ffdce15..90e4a341076c 100644
> --- a/drivers/net/wireless/ath/ath9k/Makefile
> +++ b/drivers/net/wireless/ath/ath9k/Makefile
> @@ -59,7 +59,7 @@ obj-$(CONFIG_ATH9K_HW) += ath9k_hw.o
> obj-$(CONFIG_ATH9K_COMMON) += ath9k_common.o
> ath9k_common-y:= common.o \
> common-init.o \
> - common-beacon.o \
> + common-beacon.o
>
It's not necessarily stray, there is nothing on the next line so it's
OK, and if you add \ at the end of all lines, you don't have to touch
the last line every time you add/remove something. Sort of like
putting a , after last enum value.
Just my $.02, not that I mind either way :)
> ath9k_common-$(CONFIG_ATH9K_COMMON_DEBUG) += common-debug.o \
> common-spectral.o
^ permalink raw reply
* [PATCH] wlcore: allow elp during wowlan suspend
From: Reizer, Eyal @ 2017-11-28 8:02 UTC (permalink / raw)
To: Kalle Valo, Greg Kroah-Hartman, linux-wireless@vger.kernel.org,
netdev@vger.kernel.org, linux-kernel@vger.kernel.org
when enabling wowlan and entering suspend the last write to the firmware
allowing it to go into elp mode was not completing before suspend, leaving
the firmware running in full active mode consuming high power.
Use an immediate call instead of a work queue for this last access
allowing the firmware to go into power save during wowlan uspend.
Signed-off-by: Eyal Reizer <eyalr@ti.com>
---
drivers/net/wireless/ti/wlcore/main.c | 29 ++++++++++++++++++++++++++++-
1 file changed, 28 insertions(+), 1 deletion(-)
diff --git a/drivers/net/wireless/ti/wlcore/main.c b/drivers/net/wireless/t=
i/wlcore/main.c
index 792cb91..1c31555 100644
--- a/drivers/net/wireless/ti/wlcore/main.c
+++ b/drivers/net/wireless/ti/wlcore/main.c
@@ -42,6 +42,7 @@
#include "sysfs.h"
=20
#define WL1271_BOOT_RETRIES 3
+#define WL1271_SUSPEND_SLEEP 100
=20
static char *fwlog_param;
static int fwlog_mem_blocks =3D -1;
@@ -979,6 +980,24 @@ static int wlcore_fw_wakeup(struct wl1271 *wl)
return wlcore_raw_write32(wl, HW_ACCESS_ELP_CTRL_REG, ELPCTRL_WAKE_UP);
}
=20
+static int wlcore_fw_sleep(struct wl1271 *wl)
+{
+ int ret;
+
+ mutex_lock(&wl->mutex);
+ ret =3D wlcore_raw_write32(wl, HW_ACCESS_ELP_CTRL_REG, ELPCTRL_SLEEP);
+ if (ret < 0) {
+ wl12xx_queue_recovery_work(wl);
+ goto out;
+ }
+ set_bit(WL1271_FLAG_IN_ELP, &wl->flags);
+out:
+ mutex_unlock(&wl->mutex);
+ mdelay(WL1271_SUSPEND_SLEEP);
+
+ return 0;
+}
+
static int wl1271_setup(struct wl1271 *wl)
{
wl->raw_fw_status =3D kzalloc(wl->fw_status_len, GFP_KERNEL);
@@ -1750,7 +1769,6 @@ static int wl1271_op_suspend(struct ieee80211_hw *hw,
goto out_sleep;
=20
out_sleep:
- wl1271_ps_elp_sleep(wl);
mutex_unlock(&wl->mutex);
=20
if (ret < 0) {
@@ -1783,6 +1801,15 @@ static int wl1271_op_suspend(struct ieee80211_hw *hw=
,
*/
cancel_delayed_work(&wl->tx_watchdog_work);
=20
+ /*
+ * Use an immediate call for allowing the firmware to go into power
+ * save during suspend.
+ * Using a workque for this last write was only hapenning on resume
+ * leaving the firmware with power save disabled during suspend,
+ * while consuming full power during wowlan suspend.
+ */
+ wlcore_fw_sleep(wl);
+
return 0;
}
=20
--=20
2.7.4
^ permalink raw reply related
* Re: [PATCH v2] drivers: bcma: driver_pcie2.c: Comment format correction & moving trailing */ to a separate line as per checkpatch
From: Morgan Freeman @ 2017-11-28 8:35 UTC (permalink / raw)
To: Ashish Kalra; +Cc: zajec5, linux-wireless, linux-kernel
In-Reply-To: <20171128021142.2793-1-eashishkalra@gmail.com>
Hi Ashish,
On Tue, Nov 28, 2017 at 07:41:42AM +0530, Ashish Kalra wrote:
> This patch fixes the checkpatch.pl warning:
Write in _imperative_mood_ as I said before.
Like "Use this..." or "Make this..."
> WARNING: Block comments use * on subsequent lines
> + /* TODO:
> + si_core_wrapperreg(pcie2, 3, 0x60, 0x8080, 0); */
>
> WARNING: Block comments use a trailing */ on a separate line
> + si_core_wrapperreg(pcie2, 3, 0x60, 0x8080, 0); */
>
> total: 0 errors, 2 warnings, 200 lines checked
No need to mention all of this!
> Signed-off-by: Ashish Kalra <eashishkalra@gmail.com>
> ---
> changes from v1 (https://lkml.org/lkml/2017/11/26/85)
> v2: Improved commit message as per review from Morgan Freeman <morganfreeman6991@gmail.com>
Your patch subject is again *wrong* here.
Look here: https://pastebin.com/X7x89Q4v
Please take a look at this :
https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches
Also, don't send me the patch directly, instead to the relevant maintainer and
CC me.
Thanks
Himanshu Jha
^ permalink raw reply
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox