* [PATCH 2/2] compat-wireless: use backported kfifo
From: Hauke Mehrtens @ 2011-01-06 17:16 UTC (permalink / raw)
To: lrodriguez; +Cc: linux-wireless, mcgrof, Hauke Mehrtens
In-Reply-To: <1294334212-20530-1-git-send-email-hauke@hauke-m.de>
Now compat contains a backport of the kfifo implementation and we do
not have to patch the driver to use the old interface.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
---
config.mk | 4 +++
patches/19-kfifo.patch | 53 ------------------------------------------------
2 files changed, 4 insertions(+), 53 deletions(-)
delete mode 100644 patches/19-kfifo.patch
diff --git a/config.mk b/config.mk
index 1f95908..7a29d46 100644
--- a/config.mk
+++ b/config.mk
@@ -107,6 +107,10 @@ ifdef CONFIG_FW_LOADER
endif #CONFIG_FW_LOADER
endif #CONFIG_COMPAT_KERNEL_33
+ifdef CONFIG_COMPAT_KERNEL_36
+CONFIG_COMPAT_KFIFO=m
+endif #CONFIG_COMPAT_KERNEL_36
+
# Wireless subsystem stuff
CONFIG_MAC80211=m
diff --git a/patches/19-kfifo.patch b/patches/19-kfifo.patch
deleted file mode 100644
index d9d25ee..0000000
--- a/patches/19-kfifo.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-These parts of the new generic kernel FIFO implementation (kfifo) can
-not be backported easily with defines in the compat module.
-
---- a/drivers/net/wireless/libertas/dev.h
-+++ b/drivers/net/wireless/libertas/dev.h
-@@ -121,7 +121,11 @@ struct lbs_private {
- u32 resp_len[2];
-
- /* Events sent from hardware to driver */
-+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33))
- struct kfifo event_fifo;
-+#else
-+ struct kfifo *event_fifo;
-+#endif
-
- /** thread to service interrupts */
- struct task_struct *main_thread;
---- a/drivers/net/wireless/libertas/main.c
-+++ b/drivers/net/wireless/libertas/main.c
-@@ -753,8 +753,14 @@ static int lbs_init_adapter(struct lbs_p
- priv->resp_len[0] = priv->resp_len[1] = 0;
-
- /* Create the event FIFO */
-+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33))
- ret = kfifo_alloc(&priv->event_fifo, sizeof(u32) * 16, GFP_KERNEL);
- if (ret) {
-+#else
-+ priv->event_fifo = kfifo_alloc(sizeof(u32) * 16, GFP_KERNEL, NULL);
-+ if (IS_ERR(priv->event_fifo)) {
-+ ret = -ENOMEM;
-+#endif
- lbs_pr_err("Out of memory allocating event FIFO buffer\n");
- goto out;
- }
---- a/drivers/net/wireless/rt2x00/rt2x00dev.c
-+++ b/drivers/net/wireless/rt2x00/rt2x00dev.c
-@@ -808,10 +808,16 @@ static int rt2x00lib_probe_hw(struct rt2
- * queues gets reported before we've got a chance to handle
- * them) 24*4=384 tx status reports need to be cached.
- */
-+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33))
- status = kfifo_alloc(&rt2x00dev->txstatus_fifo, 512,
- GFP_KERNEL);
- if (status)
- return status;
-+#else
-+ rt2x00dev->txstatus_fifo = kfifo_alloc(512, GFP_KERNEL, NULL);
-+ if (IS_ERR(rt2x00dev->txstatus_fifo))
-+ return PTR_ERR(rt2x00dev->txstatus_fifo);
-+#endif
-
- /* tasklet for processing the tx status reports. */
- if (rt2x00dev->ops->lib->txstatus_tasklet)
--
1.7.1
^ permalink raw reply related
* [PATCH 1/2] compat-wireless: make patches apply again.
From: Hauke Mehrtens @ 2011-01-06 17:16 UTC (permalink / raw)
To: lrodriguez; +Cc: linux-wireless, mcgrof, Hauke Mehrtens
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
---
patches/25-multicast-list_head.patch | 16 ++++++++--------
1 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/patches/25-multicast-list_head.patch b/patches/25-multicast-list_head.patch
index bee189d..95bab2e 100644
--- a/patches/25-multicast-list_head.patch
+++ b/patches/25-multicast-list_head.patch
@@ -160,16 +160,16 @@ This also backport commit 2f787b0b76bf5de2eaa3ca3a29d89123ae03c856
return mchash;
}
---- a/drivers/net/wireless/ath/ath5k/base.c
-+++ b/drivers/net/wireless/ath/ath5k/base.c
-@@ -3135,20 +3135,42 @@ unlock:
- }
+--- a/drivers/net/wireless/ath/ath5k/mac80211-ops.c
++++ b/drivers/net/wireless/ath/ath5k/mac80211-ops.c
+@@ -331,20 +331,42 @@ ath5k_bss_info_changed(struct ieee80211_
- static u64 ath5k_prepare_multicast(struct ieee80211_hw *hw,
+ static u64
+ ath5k_prepare_multicast(struct ieee80211_hw *hw,
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35))
- struct netdev_hw_addr_list *mc_list)
+ struct netdev_hw_addr_list *mc_list)
+#else
-+ int mc_count, struct dev_addr_list *ha)
++ int mc_count, struct dev_addr_list *ha)
+#endif
{
u32 mfilt[2], val;
@@ -205,7 +205,7 @@ This also backport commit 2f787b0b76bf5de2eaa3ca3a29d89123ae03c856
pos ^= (val >> 18) ^ (val >> 12) ^ (val >> 6) ^ val;
pos &= 0x3f;
mfilt[pos / 32] |= (1 << (pos % 32));
-@@ -3157,6 +3179,9 @@ static u64 ath5k_prepare_multicast(struc
+@@ -353,6 +375,9 @@ ath5k_prepare_multicast(struct ieee80211
* neet to inform below to not reset the mcast */
/* ath5k_hw_set_mcast_filterindex(ah,
* ha->addr[5]); */
--
1.7.1
^ permalink raw reply related
* [PATCH] compat: backport kfifo
From: Hauke Mehrtens @ 2011-01-06 17:16 UTC (permalink / raw)
To: lrodriguez; +Cc: linux-wireless, mcgrof, Hauke Mehrtens
This is a copy of the hole kfifo implementation from a recent kernel
version. When we ship this implementation we do not have to backport
any kfifo related stuff any more.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
---
compat/Makefile | 1 +
compat/kfifo.c | 608 +++++++++++++++++++++++++++++
include/linux/compat-2.6.33.h | 41 --
include/linux/kfifo.h | 857 +++++++++++++++++++++++++++++++++++++++++
4 files changed, 1466 insertions(+), 41 deletions(-)
create mode 100644 compat/kfifo.c
create mode 100644 include/linux/kfifo.h
diff --git a/compat/Makefile b/compat/Makefile
index 18a9afc..9c042ca 100644
--- a/compat/Makefile
+++ b/compat/Makefile
@@ -2,6 +2,7 @@ obj-m += compat.o
#compat-objs :=
obj-$(CONFIG_COMPAT_FIRMWARE_CLASS) += compat_firmware_class.o
+obj-$(CONFIG_COMPAT_KFIFO) += kfifo.o
compat-y += main.o
diff --git a/compat/kfifo.c b/compat/kfifo.c
new file mode 100644
index 0000000..01a0700
--- /dev/null
+++ b/compat/kfifo.c
@@ -0,0 +1,608 @@
+/*
+ * A generic kernel FIFO implementation
+ *
+ * Copyright (C) 2009/2010 Stefani Seibold <stefani@seibold.net>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ */
+
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/slab.h>
+#include <linux/err.h>
+#include <linux/log2.h>
+#include <linux/uaccess.h>
+#include <linux/kfifo.h>
+
+/*
+ * internal helper to calculate the unused elements in a fifo
+ */
+static inline unsigned int kfifo_unused(struct __kfifo *fifo)
+{
+ return (fifo->mask + 1) - (fifo->in - fifo->out);
+}
+
+int __kfifo_alloc(struct __kfifo *fifo, unsigned int size,
+ size_t esize, gfp_t gfp_mask)
+{
+ /*
+ * round down to the next power of 2, since our 'let the indices
+ * wrap' technique works only in this case.
+ */
+ if (!is_power_of_2(size))
+ size = rounddown_pow_of_two(size);
+
+ fifo->in = 0;
+ fifo->out = 0;
+ fifo->esize = esize;
+
+ if (size < 2) {
+ fifo->data = NULL;
+ fifo->mask = 0;
+ return -EINVAL;
+ }
+
+ fifo->data = kmalloc(size * esize, gfp_mask);
+
+ if (!fifo->data) {
+ fifo->mask = 0;
+ return -ENOMEM;
+ }
+ fifo->mask = size - 1;
+
+ return 0;
+}
+EXPORT_SYMBOL(__kfifo_alloc);
+
+void __kfifo_free(struct __kfifo *fifo)
+{
+ kfree(fifo->data);
+ fifo->in = 0;
+ fifo->out = 0;
+ fifo->esize = 0;
+ fifo->data = NULL;
+ fifo->mask = 0;
+}
+EXPORT_SYMBOL(__kfifo_free);
+
+int __kfifo_init(struct __kfifo *fifo, void *buffer,
+ unsigned int size, size_t esize)
+{
+ size /= esize;
+
+ if (!is_power_of_2(size))
+ size = rounddown_pow_of_two(size);
+
+ fifo->in = 0;
+ fifo->out = 0;
+ fifo->esize = esize;
+ fifo->data = buffer;
+
+ if (size < 2) {
+ fifo->mask = 0;
+ return -EINVAL;
+ }
+ fifo->mask = size - 1;
+
+ return 0;
+}
+EXPORT_SYMBOL(__kfifo_init);
+
+static void kfifo_copy_in(struct __kfifo *fifo, const void *src,
+ unsigned int len, unsigned int off)
+{
+ unsigned int size = fifo->mask + 1;
+ unsigned int esize = fifo->esize;
+ unsigned int l;
+
+ off &= fifo->mask;
+ if (esize != 1) {
+ off *= esize;
+ size *= esize;
+ len *= esize;
+ }
+ l = min(len, size - off);
+
+ memcpy(fifo->data + off, src, l);
+ memcpy(fifo->data, src + l, len - l);
+ /*
+ * make sure that the data in the fifo is up to date before
+ * incrementing the fifo->in index counter
+ */
+ smp_wmb();
+}
+
+unsigned int __kfifo_in(struct __kfifo *fifo,
+ const void *buf, unsigned int len)
+{
+ unsigned int l;
+
+ l = kfifo_unused(fifo);
+ if (len > l)
+ len = l;
+
+ kfifo_copy_in(fifo, buf, len, fifo->in);
+ fifo->in += len;
+ return len;
+}
+EXPORT_SYMBOL(__kfifo_in);
+
+static void kfifo_copy_out(struct __kfifo *fifo, void *dst,
+ unsigned int len, unsigned int off)
+{
+ unsigned int size = fifo->mask + 1;
+ unsigned int esize = fifo->esize;
+ unsigned int l;
+
+ off &= fifo->mask;
+ if (esize != 1) {
+ off *= esize;
+ size *= esize;
+ len *= esize;
+ }
+ l = min(len, size - off);
+
+ memcpy(dst, fifo->data + off, l);
+ memcpy(dst + l, fifo->data, len - l);
+ /*
+ * make sure that the data is copied before
+ * incrementing the fifo->out index counter
+ */
+ smp_wmb();
+}
+
+unsigned int __kfifo_out_peek(struct __kfifo *fifo,
+ void *buf, unsigned int len)
+{
+ unsigned int l;
+
+ l = fifo->in - fifo->out;
+ if (len > l)
+ len = l;
+
+ kfifo_copy_out(fifo, buf, len, fifo->out);
+ return len;
+}
+EXPORT_SYMBOL(__kfifo_out_peek);
+
+unsigned int __kfifo_out(struct __kfifo *fifo,
+ void *buf, unsigned int len)
+{
+ len = __kfifo_out_peek(fifo, buf, len);
+ fifo->out += len;
+ return len;
+}
+EXPORT_SYMBOL(__kfifo_out);
+
+static unsigned long kfifo_copy_from_user(struct __kfifo *fifo,
+ const void __user *from, unsigned int len, unsigned int off,
+ unsigned int *copied)
+{
+ unsigned int size = fifo->mask + 1;
+ unsigned int esize = fifo->esize;
+ unsigned int l;
+ unsigned long ret;
+
+ off &= fifo->mask;
+ if (esize != 1) {
+ off *= esize;
+ size *= esize;
+ len *= esize;
+ }
+ l = min(len, size - off);
+
+ ret = copy_from_user(fifo->data + off, from, l);
+ if (unlikely(ret))
+ ret = DIV_ROUND_UP(ret + len - l, esize);
+ else {
+ ret = copy_from_user(fifo->data, from + l, len - l);
+ if (unlikely(ret))
+ ret = DIV_ROUND_UP(ret, esize);
+ }
+ /*
+ * make sure that the data in the fifo is up to date before
+ * incrementing the fifo->in index counter
+ */
+ smp_wmb();
+ *copied = len - ret;
+ /* return the number of elements which are not copied */
+ return ret;
+}
+
+int __kfifo_from_user(struct __kfifo *fifo, const void __user *from,
+ unsigned long len, unsigned int *copied)
+{
+ unsigned int l;
+ unsigned long ret;
+ unsigned int esize = fifo->esize;
+ int err;
+
+ if (esize != 1)
+ len /= esize;
+
+ l = kfifo_unused(fifo);
+ if (len > l)
+ len = l;
+
+ ret = kfifo_copy_from_user(fifo, from, len, fifo->in, copied);
+ if (unlikely(ret)) {
+ len -= ret;
+ err = -EFAULT;
+ } else
+ err = 0;
+ fifo->in += len;
+ return err;
+}
+EXPORT_SYMBOL(__kfifo_from_user);
+
+static unsigned long kfifo_copy_to_user(struct __kfifo *fifo, void __user *to,
+ unsigned int len, unsigned int off, unsigned int *copied)
+{
+ unsigned int l;
+ unsigned long ret;
+ unsigned int size = fifo->mask + 1;
+ unsigned int esize = fifo->esize;
+
+ off &= fifo->mask;
+ if (esize != 1) {
+ off *= esize;
+ size *= esize;
+ len *= esize;
+ }
+ l = min(len, size - off);
+
+ ret = copy_to_user(to, fifo->data + off, l);
+ if (unlikely(ret))
+ ret = DIV_ROUND_UP(ret + len - l, esize);
+ else {
+ ret = copy_to_user(to + l, fifo->data, len - l);
+ if (unlikely(ret))
+ ret = DIV_ROUND_UP(ret, esize);
+ }
+ /*
+ * make sure that the data is copied before
+ * incrementing the fifo->out index counter
+ */
+ smp_wmb();
+ *copied = len - ret;
+ /* return the number of elements which are not copied */
+ return ret;
+}
+
+int __kfifo_to_user(struct __kfifo *fifo, void __user *to,
+ unsigned long len, unsigned int *copied)
+{
+ unsigned int l;
+ unsigned long ret;
+ unsigned int esize = fifo->esize;
+ int err;
+
+ if (esize != 1)
+ len /= esize;
+
+ l = fifo->in - fifo->out;
+ if (len > l)
+ len = l;
+ ret = kfifo_copy_to_user(fifo, to, len, fifo->out, copied);
+ if (unlikely(ret)) {
+ len -= ret;
+ err = -EFAULT;
+ } else
+ err = 0;
+ fifo->out += len;
+ return err;
+}
+EXPORT_SYMBOL(__kfifo_to_user);
+
+static int setup_sgl_buf(struct scatterlist *sgl, void *buf,
+ int nents, unsigned int len)
+{
+ int n;
+ unsigned int l;
+ unsigned int off;
+ struct page *page;
+
+ if (!nents)
+ return 0;
+
+ if (!len)
+ return 0;
+
+ n = 0;
+ page = virt_to_page(buf);
+ off = offset_in_page(buf);
+ l = 0;
+
+ while (len >= l + PAGE_SIZE - off) {
+ struct page *npage;
+
+ l += PAGE_SIZE;
+ buf += PAGE_SIZE;
+ npage = virt_to_page(buf);
+ if (page_to_phys(page) != page_to_phys(npage) - l) {
+ sg_set_page(sgl, page, l - off, off);
+ sgl = sg_next(sgl);
+ if (++n == nents || sgl == NULL)
+ return n;
+ page = npage;
+ len -= l - off;
+ l = off = 0;
+ }
+ }
+ sg_set_page(sgl, page, len, off);
+ return n + 1;
+}
+
+static unsigned int setup_sgl(struct __kfifo *fifo, struct scatterlist *sgl,
+ int nents, unsigned int len, unsigned int off)
+{
+ unsigned int size = fifo->mask + 1;
+ unsigned int esize = fifo->esize;
+ unsigned int l;
+ unsigned int n;
+
+ off &= fifo->mask;
+ if (esize != 1) {
+ off *= esize;
+ size *= esize;
+ len *= esize;
+ }
+ l = min(len, size - off);
+
+ n = setup_sgl_buf(sgl, fifo->data + off, nents, l);
+ n += setup_sgl_buf(sgl + n, fifo->data, nents - n, len - l);
+
+ return n;
+}
+
+unsigned int __kfifo_dma_in_prepare(struct __kfifo *fifo,
+ struct scatterlist *sgl, int nents, unsigned int len)
+{
+ unsigned int l;
+
+ l = kfifo_unused(fifo);
+ if (len > l)
+ len = l;
+
+ return setup_sgl(fifo, sgl, nents, len, fifo->in);
+}
+EXPORT_SYMBOL(__kfifo_dma_in_prepare);
+
+unsigned int __kfifo_dma_out_prepare(struct __kfifo *fifo,
+ struct scatterlist *sgl, int nents, unsigned int len)
+{
+ unsigned int l;
+
+ l = fifo->in - fifo->out;
+ if (len > l)
+ len = l;
+
+ return setup_sgl(fifo, sgl, nents, len, fifo->out);
+}
+EXPORT_SYMBOL(__kfifo_dma_out_prepare);
+
+unsigned int __kfifo_max_r(unsigned int len, size_t recsize)
+{
+ unsigned int max = (1 << (recsize << 3)) - 1;
+
+ if (len > max)
+ return max;
+ return len;
+}
+
+#define __KFIFO_PEEK(data, out, mask) \
+ ((data)[(out) & (mask)])
+/*
+ * __kfifo_peek_n internal helper function for determinate the length of
+ * the next record in the fifo
+ */
+static unsigned int __kfifo_peek_n(struct __kfifo *fifo, size_t recsize)
+{
+ unsigned int l;
+ unsigned int mask = fifo->mask;
+ unsigned char *data = fifo->data;
+
+ l = __KFIFO_PEEK(data, fifo->out, mask);
+
+ if (--recsize)
+ l |= __KFIFO_PEEK(data, fifo->out + 1, mask) << 8;
+
+ return l;
+}
+
+#define __KFIFO_POKE(data, in, mask, val) \
+ ( \
+ (data)[(in) & (mask)] = (unsigned char)(val) \
+ )
+
+/*
+ * __kfifo_poke_n internal helper function for storeing the length of
+ * the record into the fifo
+ */
+static void __kfifo_poke_n(struct __kfifo *fifo, unsigned int n, size_t recsize)
+{
+ unsigned int mask = fifo->mask;
+ unsigned char *data = fifo->data;
+
+ __KFIFO_POKE(data, fifo->in, mask, n);
+
+ if (recsize > 1)
+ __KFIFO_POKE(data, fifo->in + 1, mask, n >> 8);
+}
+
+unsigned int __kfifo_len_r(struct __kfifo *fifo, size_t recsize)
+{
+ return __kfifo_peek_n(fifo, recsize);
+}
+EXPORT_SYMBOL(__kfifo_len_r);
+
+unsigned int __kfifo_in_r(struct __kfifo *fifo, const void *buf,
+ unsigned int len, size_t recsize)
+{
+ if (len + recsize > kfifo_unused(fifo))
+ return 0;
+
+ __kfifo_poke_n(fifo, len, recsize);
+
+ kfifo_copy_in(fifo, buf, len, fifo->in + recsize);
+ fifo->in += len + recsize;
+ return len;
+}
+EXPORT_SYMBOL(__kfifo_in_r);
+
+static unsigned int kfifo_out_copy_r(struct __kfifo *fifo,
+ void *buf, unsigned int len, size_t recsize, unsigned int *n)
+{
+ *n = __kfifo_peek_n(fifo, recsize);
+
+ if (len > *n)
+ len = *n;
+
+ kfifo_copy_out(fifo, buf, len, fifo->out + recsize);
+ return len;
+}
+
+unsigned int __kfifo_out_peek_r(struct __kfifo *fifo, void *buf,
+ unsigned int len, size_t recsize)
+{
+ unsigned int n;
+
+ if (fifo->in == fifo->out)
+ return 0;
+
+ return kfifo_out_copy_r(fifo, buf, len, recsize, &n);
+}
+EXPORT_SYMBOL(__kfifo_out_peek_r);
+
+unsigned int __kfifo_out_r(struct __kfifo *fifo, void *buf,
+ unsigned int len, size_t recsize)
+{
+ unsigned int n;
+
+ if (fifo->in == fifo->out)
+ return 0;
+
+ len = kfifo_out_copy_r(fifo, buf, len, recsize, &n);
+ fifo->out += n + recsize;
+ return len;
+}
+EXPORT_SYMBOL(__kfifo_out_r);
+
+void __kfifo_skip_r(struct __kfifo *fifo, size_t recsize)
+{
+ unsigned int n;
+
+ n = __kfifo_peek_n(fifo, recsize);
+ fifo->out += n + recsize;
+}
+EXPORT_SYMBOL(__kfifo_skip_r);
+
+int __kfifo_from_user_r(struct __kfifo *fifo, const void __user *from,
+ unsigned long len, unsigned int *copied, size_t recsize)
+{
+ unsigned long ret;
+
+ len = __kfifo_max_r(len, recsize);
+
+ if (len + recsize > kfifo_unused(fifo)) {
+ *copied = 0;
+ return 0;
+ }
+
+ __kfifo_poke_n(fifo, len, recsize);
+
+ ret = kfifo_copy_from_user(fifo, from, len, fifo->in + recsize, copied);
+ if (unlikely(ret)) {
+ *copied = 0;
+ return -EFAULT;
+ }
+ fifo->in += len + recsize;
+ return 0;
+}
+EXPORT_SYMBOL(__kfifo_from_user_r);
+
+int __kfifo_to_user_r(struct __kfifo *fifo, void __user *to,
+ unsigned long len, unsigned int *copied, size_t recsize)
+{
+ unsigned long ret;
+ unsigned int n;
+
+ if (fifo->in == fifo->out) {
+ *copied = 0;
+ return 0;
+ }
+
+ n = __kfifo_peek_n(fifo, recsize);
+ if (len > n)
+ len = n;
+
+ ret = kfifo_copy_to_user(fifo, to, len, fifo->out + recsize, copied);
+ if (unlikely(ret)) {
+ *copied = 0;
+ return -EFAULT;
+ }
+ fifo->out += n + recsize;
+ return 0;
+}
+EXPORT_SYMBOL(__kfifo_to_user_r);
+
+unsigned int __kfifo_dma_in_prepare_r(struct __kfifo *fifo,
+ struct scatterlist *sgl, int nents, unsigned int len, size_t recsize)
+{
+ if (!nents)
+ BUG();
+
+ len = __kfifo_max_r(len, recsize);
+
+ if (len + recsize > kfifo_unused(fifo))
+ return 0;
+
+ return setup_sgl(fifo, sgl, nents, len, fifo->in + recsize);
+}
+EXPORT_SYMBOL(__kfifo_dma_in_prepare_r);
+
+void __kfifo_dma_in_finish_r(struct __kfifo *fifo,
+ unsigned int len, size_t recsize)
+{
+ len = __kfifo_max_r(len, recsize);
+ __kfifo_poke_n(fifo, len, recsize);
+ fifo->in += len + recsize;
+}
+EXPORT_SYMBOL(__kfifo_dma_in_finish_r);
+
+unsigned int __kfifo_dma_out_prepare_r(struct __kfifo *fifo,
+ struct scatterlist *sgl, int nents, unsigned int len, size_t recsize)
+{
+ if (!nents)
+ BUG();
+
+ len = __kfifo_max_r(len, recsize);
+
+ if (len + recsize > fifo->in - fifo->out)
+ return 0;
+
+ return setup_sgl(fifo, sgl, nents, len, fifo->out + recsize);
+}
+EXPORT_SYMBOL(__kfifo_dma_out_prepare_r);
+
+void __kfifo_dma_out_finish_r(struct __kfifo *fifo, size_t recsize)
+{
+ unsigned int len;
+
+ len = __kfifo_peek_n(fifo, recsize);
+ fifo->out += len + recsize;
+}
+EXPORT_SYMBOL(__kfifo_dma_out_finish_r);
diff --git a/include/linux/compat-2.6.33.h b/include/linux/compat-2.6.33.h
index 2ccf141..8aabda0 100644
--- a/include/linux/compat-2.6.33.h
+++ b/include/linux/compat-2.6.33.h
@@ -12,7 +12,6 @@
#include <pcmcia/cistpl.h>
#include <pcmcia/ds.h>
#endif
-#include <linux/kfifo.h>
#include <linux/firmware.h>
#define release_firmware compat_release_firmware
@@ -92,46 +91,6 @@ int pccard_loop_tuple(struct pcmcia_socket *s, unsigned int function,
#endif /* CONFIG_PCCARD */
-/* Backport for kfifo
- * kfifo_alloc and kfifo_free must be backported manually
- */
-#define kfifo_in(a, b, c) __kfifo_put(*a, (unsigned char *)b, c)
-#define kfifo_out(a, b, c) __kfifo_get(*a, (unsigned char *)b, c)
-#define kfifo_len(a) __kfifo_len(*a)
-
-/**
- * kfifo_is_empty - returns true if the fifo is empty
- * @fifo: the fifo to be used.
- */
-static inline __must_check int kfifo_is_empty(struct kfifo **fifo)
-{
- return (*fifo)->in == (*fifo)->out;
-}
-
-/**
- * kfifo_size - returns the size of the fifo in bytes
- * @fifo: the fifo to be used.
- */
-static inline __must_check unsigned int kfifo_size(struct kfifo *fifo)
-{
- return fifo->size;
-}
-
-/**
- * kfifo_is_full - returns true if the fifo is full
- * @fifo: the fifo to be used.
- */
-static inline __must_check int kfifo_is_full(struct kfifo **fifo)
-{
- return kfifo_len(fifo) == kfifo_size(*fifo);
-}
-
-static inline void compat_kfifo_free(struct kfifo **fifo) {
- if (*fifo)
- kfifo_free(*fifo);
-}
-#define kfifo_free compat_kfifo_free
-
/**
* list_for_each_entry_continue_rcu - continue iteration over list of given type
* @pos: the type * to use as a loop cursor.
diff --git a/include/linux/kfifo.h b/include/linux/kfifo.h
new file mode 100644
index 0000000..e30bb54
--- /dev/null
+++ b/include/linux/kfifo.h
@@ -0,0 +1,857 @@
+#include <linux/version.h>
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36))
+#include_next <linux/kfifo.h>
+#else
+/*
+ * A generic kernel FIFO implementation
+ *
+ * Copyright (C) 2009/2010 Stefani Seibold <stefani@seibold.net>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ */
+
+#ifndef _LINUX_KFIFO_H
+#define _LINUX_KFIFO_H
+
+/*
+ * How to porting drivers to the new generic FIFO API:
+ *
+ * - Modify the declaration of the "struct kfifo *" object into a
+ * in-place "struct kfifo" object
+ * - Init the in-place object with kfifo_alloc() or kfifo_init()
+ * Note: The address of the in-place "struct kfifo" object must be
+ * passed as the first argument to this functions
+ * - Replace the use of __kfifo_put into kfifo_in and __kfifo_get
+ * into kfifo_out
+ * - Replace the use of kfifo_put into kfifo_in_spinlocked and kfifo_get
+ * into kfifo_out_spinlocked
+ * Note: the spinlock pointer formerly passed to kfifo_init/kfifo_alloc
+ * must be passed now to the kfifo_in_spinlocked and kfifo_out_spinlocked
+ * as the last parameter
+ * - The formerly __kfifo_* functions are renamed into kfifo_*
+ */
+
+/*
+ * Note about locking : There is no locking required until only * one reader
+ * and one writer is using the fifo and no kfifo_reset() will be * called
+ * kfifo_reset_out() can be safely used, until it will be only called
+ * in the reader thread.
+ * For multiple writer and one reader there is only a need to lock the writer.
+ * And vice versa for only one writer and multiple reader there is only a need
+ * to lock the reader.
+ */
+
+#include <linux/kernel.h>
+#include <linux/spinlock.h>
+#include <linux/stddef.h>
+#include <linux/scatterlist.h>
+
+struct __kfifo {
+ unsigned int in;
+ unsigned int out;
+ unsigned int mask;
+ unsigned int esize;
+ void *data;
+};
+
+#define __STRUCT_KFIFO_COMMON(datatype, recsize, ptrtype) \
+ union { \
+ struct __kfifo kfifo; \
+ datatype *type; \
+ char (*rectype)[recsize]; \
+ ptrtype *ptr; \
+ const ptrtype *ptr_const; \
+ }
+
+#define __STRUCT_KFIFO(type, size, recsize, ptrtype) \
+{ \
+ __STRUCT_KFIFO_COMMON(type, recsize, ptrtype); \
+ type buf[((size < 2) || (size & (size - 1))) ? -1 : size]; \
+}
+
+#define STRUCT_KFIFO(type, size) \
+ struct __STRUCT_KFIFO(type, size, 0, type)
+
+#define __STRUCT_KFIFO_PTR(type, recsize, ptrtype) \
+{ \
+ __STRUCT_KFIFO_COMMON(type, recsize, ptrtype); \
+ type buf[0]; \
+}
+
+#define STRUCT_KFIFO_PTR(type) \
+ struct __STRUCT_KFIFO_PTR(type, 0, type)
+
+/*
+ * define compatibility "struct kfifo" for dynamic allocated fifos
+ */
+struct kfifo __STRUCT_KFIFO_PTR(unsigned char, 0, void);
+
+#define STRUCT_KFIFO_REC_1(size) \
+ struct __STRUCT_KFIFO(unsigned char, size, 1, void)
+
+#define STRUCT_KFIFO_REC_2(size) \
+ struct __STRUCT_KFIFO(unsigned char, size, 2, void)
+
+/*
+ * define kfifo_rec types
+ */
+struct kfifo_rec_ptr_1 __STRUCT_KFIFO_PTR(unsigned char, 1, void);
+struct kfifo_rec_ptr_2 __STRUCT_KFIFO_PTR(unsigned char, 2, void);
+
+/*
+ * helper macro to distinguish between real in place fifo where the fifo
+ * array is a part of the structure and the fifo type where the array is
+ * outside of the fifo structure.
+ */
+#define __is_kfifo_ptr(fifo) (sizeof(*fifo) == sizeof(struct __kfifo))
+
+/**
+ * DECLARE_KFIFO_PTR - macro to declare a fifo pointer object
+ * @fifo: name of the declared fifo
+ * @type: type of the fifo elements
+ */
+#define DECLARE_KFIFO_PTR(fifo, type) STRUCT_KFIFO_PTR(type) fifo
+
+/**
+ * DECLARE_KFIFO - macro to declare a fifo object
+ * @fifo: name of the declared fifo
+ * @type: type of the fifo elements
+ * @size: the number of elements in the fifo, this must be a power of 2
+ */
+#define DECLARE_KFIFO(fifo, type, size) STRUCT_KFIFO(type, size) fifo
+
+/**
+ * INIT_KFIFO - Initialize a fifo declared by DECLARE_KFIFO
+ * @fifo: name of the declared fifo datatype
+ */
+#define INIT_KFIFO(fifo) \
+(void)({ \
+ typeof(&(fifo)) __tmp = &(fifo); \
+ struct __kfifo *__kfifo = &__tmp->kfifo; \
+ __kfifo->in = 0; \
+ __kfifo->out = 0; \
+ __kfifo->mask = __is_kfifo_ptr(__tmp) ? 0 : ARRAY_SIZE(__tmp->buf) - 1;\
+ __kfifo->esize = sizeof(*__tmp->buf); \
+ __kfifo->data = __is_kfifo_ptr(__tmp) ? NULL : __tmp->buf; \
+})
+
+/**
+ * DEFINE_KFIFO - macro to define and initialize a fifo
+ * @fifo: name of the declared fifo datatype
+ * @type: type of the fifo elements
+ * @size: the number of elements in the fifo, this must be a power of 2
+ *
+ * Note: the macro can be used for global and local fifo data type variables.
+ */
+#define DEFINE_KFIFO(fifo, type, size) \
+ DECLARE_KFIFO(fifo, type, size) = \
+ (typeof(fifo)) { \
+ { \
+ { \
+ .in = 0, \
+ .out = 0, \
+ .mask = __is_kfifo_ptr(&(fifo)) ? \
+ 0 : \
+ ARRAY_SIZE((fifo).buf) - 1, \
+ .esize = sizeof(*(fifo).buf), \
+ .data = __is_kfifo_ptr(&(fifo)) ? \
+ NULL : \
+ (fifo).buf, \
+ } \
+ } \
+ }
+
+
+static inline unsigned int __must_check
+__kfifo_uint_must_check_helper(unsigned int val)
+{
+ return val;
+}
+
+static inline int __must_check
+__kfifo_int_must_check_helper(int val)
+{
+ return val;
+}
+
+/**
+ * kfifo_initialized - Check if the fifo is initialized
+ * @fifo: address of the fifo to check
+ *
+ * Return %true if fifo is initialized, otherwise %false.
+ * Assumes the fifo was 0 before.
+ */
+#define kfifo_initialized(fifo) ((fifo)->kfifo.mask)
+
+/**
+ * kfifo_esize - returns the size of the element managed by the fifo
+ * @fifo: address of the fifo to be used
+ */
+#define kfifo_esize(fifo) ((fifo)->kfifo.esize)
+
+/**
+ * kfifo_recsize - returns the size of the record length field
+ * @fifo: address of the fifo to be used
+ */
+#define kfifo_recsize(fifo) (sizeof(*(fifo)->rectype))
+
+/**
+ * kfifo_size - returns the size of the fifo in elements
+ * @fifo: address of the fifo to be used
+ */
+#define kfifo_size(fifo) ((fifo)->kfifo.mask + 1)
+
+/**
+ * kfifo_reset - removes the entire fifo content
+ * @fifo: address of the fifo to be used
+ *
+ * Note: usage of kfifo_reset() is dangerous. It should be only called when the
+ * fifo is exclusived locked or when it is secured that no other thread is
+ * accessing the fifo.
+ */
+#define kfifo_reset(fifo) \
+(void)({ \
+ typeof((fifo) + 1) __tmp = (fifo); \
+ __tmp->kfifo.in = __tmp->kfifo.out = 0; \
+})
+
+/**
+ * kfifo_reset_out - skip fifo content
+ * @fifo: address of the fifo to be used
+ *
+ * Note: The usage of kfifo_reset_out() is safe until it will be only called
+ * from the reader thread and there is only one concurrent reader. Otherwise
+ * it is dangerous and must be handled in the same way as kfifo_reset().
+ */
+#define kfifo_reset_out(fifo) \
+(void)({ \
+ typeof((fifo) + 1) __tmp = (fifo); \
+ __tmp->kfifo.out = __tmp->kfifo.in; \
+})
+
+/**
+ * kfifo_len - returns the number of used elements in the fifo
+ * @fifo: address of the fifo to be used
+ */
+#define kfifo_len(fifo) \
+({ \
+ typeof((fifo) + 1) __tmpl = (fifo); \
+ __tmpl->kfifo.in - __tmpl->kfifo.out; \
+})
+
+/**
+ * kfifo_is_empty - returns true if the fifo is empty
+ * @fifo: address of the fifo to be used
+ */
+#define kfifo_is_empty(fifo) \
+({ \
+ typeof((fifo) + 1) __tmpq = (fifo); \
+ __tmpq->kfifo.in == __tmpq->kfifo.out; \
+})
+
+/**
+ * kfifo_is_full - returns true if the fifo is full
+ * @fifo: address of the fifo to be used
+ */
+#define kfifo_is_full(fifo) \
+({ \
+ typeof((fifo) + 1) __tmpq = (fifo); \
+ kfifo_len(__tmpq) > __tmpq->kfifo.mask; \
+})
+
+/**
+ * kfifo_avail - returns the number of unused elements in the fifo
+ * @fifo: address of the fifo to be used
+ */
+#define kfifo_avail(fifo) \
+__kfifo_uint_must_check_helper( \
+({ \
+ typeof((fifo) + 1) __tmpq = (fifo); \
+ const size_t __recsize = sizeof(*__tmpq->rectype); \
+ unsigned int __avail = kfifo_size(__tmpq) - kfifo_len(__tmpq); \
+ (__recsize) ? ((__avail <= __recsize) ? 0 : \
+ __kfifo_max_r(__avail - __recsize, __recsize)) : \
+ __avail; \
+}) \
+)
+
+/**
+ * kfifo_skip - skip output data
+ * @fifo: address of the fifo to be used
+ */
+#define kfifo_skip(fifo) \
+(void)({ \
+ typeof((fifo) + 1) __tmp = (fifo); \
+ const size_t __recsize = sizeof(*__tmp->rectype); \
+ struct __kfifo *__kfifo = &__tmp->kfifo; \
+ if (__recsize) \
+ __kfifo_skip_r(__kfifo, __recsize); \
+ else \
+ __kfifo->out++; \
+})
+
+/**
+ * kfifo_peek_len - gets the size of the next fifo record
+ * @fifo: address of the fifo to be used
+ *
+ * This function returns the size of the next fifo record in number of bytes.
+ */
+#define kfifo_peek_len(fifo) \
+__kfifo_uint_must_check_helper( \
+({ \
+ typeof((fifo) + 1) __tmp = (fifo); \
+ const size_t __recsize = sizeof(*__tmp->rectype); \
+ struct __kfifo *__kfifo = &__tmp->kfifo; \
+ (!__recsize) ? kfifo_len(__tmp) * sizeof(*__tmp->type) : \
+ __kfifo_len_r(__kfifo, __recsize); \
+}) \
+)
+
+/**
+ * kfifo_alloc - dynamically allocates a new fifo buffer
+ * @fifo: pointer to the fifo
+ * @size: the number of elements in the fifo, this must be a power of 2
+ * @gfp_mask: get_free_pages mask, passed to kmalloc()
+ *
+ * This macro dynamically allocates a new fifo buffer.
+ *
+ * The numer of elements will be rounded-up to a power of 2.
+ * The fifo will be release with kfifo_free().
+ * Return 0 if no error, otherwise an error code.
+ */
+#define kfifo_alloc(fifo, size, gfp_mask) \
+__kfifo_int_must_check_helper( \
+({ \
+ typeof((fifo) + 1) __tmp = (fifo); \
+ struct __kfifo *__kfifo = &__tmp->kfifo; \
+ __is_kfifo_ptr(__tmp) ? \
+ __kfifo_alloc(__kfifo, size, sizeof(*__tmp->type), gfp_mask) : \
+ -EINVAL; \
+}) \
+)
+
+/**
+ * kfifo_free - frees the fifo
+ * @fifo: the fifo to be freed
+ */
+#define kfifo_free(fifo) \
+({ \
+ typeof((fifo) + 1) __tmp = (fifo); \
+ struct __kfifo *__kfifo = &__tmp->kfifo; \
+ if (__is_kfifo_ptr(__tmp)) \
+ __kfifo_free(__kfifo); \
+})
+
+/**
+ * kfifo_init - initialize a fifo using a preallocated buffer
+ * @fifo: the fifo to assign the buffer
+ * @buffer: the preallocated buffer to be used
+ * @size: the size of the internal buffer, this have to be a power of 2
+ *
+ * This macro initialize a fifo using a preallocated buffer.
+ *
+ * The numer of elements will be rounded-up to a power of 2.
+ * Return 0 if no error, otherwise an error code.
+ */
+#define kfifo_init(fifo, buffer, size) \
+({ \
+ typeof((fifo) + 1) __tmp = (fifo); \
+ struct __kfifo *__kfifo = &__tmp->kfifo; \
+ __is_kfifo_ptr(__tmp) ? \
+ __kfifo_init(__kfifo, buffer, size, sizeof(*__tmp->type)) : \
+ -EINVAL; \
+})
+
+/**
+ * kfifo_put - put data into the fifo
+ * @fifo: address of the fifo to be used
+ * @val: the data to be added
+ *
+ * This macro copies the given value into the fifo.
+ * It returns 0 if the fifo was full. Otherwise it returns the number
+ * processed elements.
+ *
+ * Note that with only one concurrent reader and one concurrent
+ * writer, you don't need extra locking to use these macro.
+ */
+#define kfifo_put(fifo, val) \
+({ \
+ typeof((fifo) + 1) __tmp = (fifo); \
+ typeof((val) + 1) __val = (val); \
+ unsigned int __ret; \
+ const size_t __recsize = sizeof(*__tmp->rectype); \
+ struct __kfifo *__kfifo = &__tmp->kfifo; \
+ if (0) { \
+ typeof(__tmp->ptr_const) __dummy __attribute__ ((unused)); \
+ __dummy = (typeof(__val))NULL; \
+ } \
+ if (__recsize) \
+ __ret = __kfifo_in_r(__kfifo, __val, sizeof(*__val), \
+ __recsize); \
+ else { \
+ __ret = !kfifo_is_full(__tmp); \
+ if (__ret) { \
+ (__is_kfifo_ptr(__tmp) ? \
+ ((typeof(__tmp->type))__kfifo->data) : \
+ (__tmp->buf) \
+ )[__kfifo->in & __tmp->kfifo.mask] = \
+ *(typeof(__tmp->type))__val; \
+ smp_wmb(); \
+ __kfifo->in++; \
+ } \
+ } \
+ __ret; \
+})
+
+/**
+ * kfifo_get - get data from the fifo
+ * @fifo: address of the fifo to be used
+ * @val: the var where to store the data to be added
+ *
+ * This macro reads the data from the fifo.
+ * It returns 0 if the fifo was empty. Otherwise it returns the number
+ * processed elements.
+ *
+ * Note that with only one concurrent reader and one concurrent
+ * writer, you don't need extra locking to use these macro.
+ */
+#define kfifo_get(fifo, val) \
+__kfifo_uint_must_check_helper( \
+({ \
+ typeof((fifo) + 1) __tmp = (fifo); \
+ typeof((val) + 1) __val = (val); \
+ unsigned int __ret; \
+ const size_t __recsize = sizeof(*__tmp->rectype); \
+ struct __kfifo *__kfifo = &__tmp->kfifo; \
+ if (0) \
+ __val = (typeof(__tmp->ptr))0; \
+ if (__recsize) \
+ __ret = __kfifo_out_r(__kfifo, __val, sizeof(*__val), \
+ __recsize); \
+ else { \
+ __ret = !kfifo_is_empty(__tmp); \
+ if (__ret) { \
+ *(typeof(__tmp->type))__val = \
+ (__is_kfifo_ptr(__tmp) ? \
+ ((typeof(__tmp->type))__kfifo->data) : \
+ (__tmp->buf) \
+ )[__kfifo->out & __tmp->kfifo.mask]; \
+ smp_wmb(); \
+ __kfifo->out++; \
+ } \
+ } \
+ __ret; \
+}) \
+)
+
+/**
+ * kfifo_peek - get data from the fifo without removing
+ * @fifo: address of the fifo to be used
+ * @val: the var where to store the data to be added
+ *
+ * This reads the data from the fifo without removing it from the fifo.
+ * It returns 0 if the fifo was empty. Otherwise it returns the number
+ * processed elements.
+ *
+ * Note that with only one concurrent reader and one concurrent
+ * writer, you don't need extra locking to use these macro.
+ */
+#define kfifo_peek(fifo, val) \
+__kfifo_uint_must_check_helper( \
+({ \
+ typeof((fifo) + 1) __tmp = (fifo); \
+ typeof((val) + 1) __val = (val); \
+ unsigned int __ret; \
+ const size_t __recsize = sizeof(*__tmp->rectype); \
+ struct __kfifo *__kfifo = &__tmp->kfifo; \
+ if (0) \
+ __val = (typeof(__tmp->ptr))NULL; \
+ if (__recsize) \
+ __ret = __kfifo_out_peek_r(__kfifo, __val, sizeof(*__val), \
+ __recsize); \
+ else { \
+ __ret = !kfifo_is_empty(__tmp); \
+ if (__ret) { \
+ *(typeof(__tmp->type))__val = \
+ (__is_kfifo_ptr(__tmp) ? \
+ ((typeof(__tmp->type))__kfifo->data) : \
+ (__tmp->buf) \
+ )[__kfifo->out & __tmp->kfifo.mask]; \
+ smp_wmb(); \
+ } \
+ } \
+ __ret; \
+}) \
+)
+
+/**
+ * kfifo_in - put data into the fifo
+ * @fifo: address of the fifo to be used
+ * @buf: the data to be added
+ * @n: number of elements to be added
+ *
+ * This macro copies the given buffer into the fifo and returns the
+ * number of copied elements.
+ *
+ * Note that with only one concurrent reader and one concurrent
+ * writer, you don't need extra locking to use these macro.
+ */
+#define kfifo_in(fifo, buf, n) \
+({ \
+ typeof((fifo) + 1) __tmp = (fifo); \
+ typeof((buf) + 1) __buf = (buf); \
+ unsigned long __n = (n); \
+ const size_t __recsize = sizeof(*__tmp->rectype); \
+ struct __kfifo *__kfifo = &__tmp->kfifo; \
+ if (0) { \
+ typeof(__tmp->ptr_const) __dummy __attribute__ ((unused)); \
+ __dummy = (typeof(__buf))NULL; \
+ } \
+ (__recsize) ?\
+ __kfifo_in_r(__kfifo, __buf, __n, __recsize) : \
+ __kfifo_in(__kfifo, __buf, __n); \
+})
+
+/**
+ * kfifo_in_spinlocked - put data into the fifo using a spinlock for locking
+ * @fifo: address of the fifo to be used
+ * @buf: the data to be added
+ * @n: number of elements to be added
+ * @lock: pointer to the spinlock to use for locking
+ *
+ * This macro copies the given values buffer into the fifo and returns the
+ * number of copied elements.
+ */
+#define kfifo_in_spinlocked(fifo, buf, n, lock) \
+({ \
+ unsigned long __flags; \
+ unsigned int __ret; \
+ spin_lock_irqsave(lock, __flags); \
+ __ret = kfifo_in(fifo, buf, n); \
+ spin_unlock_irqrestore(lock, __flags); \
+ __ret; \
+})
+
+/* alias for kfifo_in_spinlocked, will be removed in a future release */
+#define kfifo_in_locked(fifo, buf, n, lock) \
+ kfifo_in_spinlocked(fifo, buf, n, lock)
+
+/**
+ * kfifo_out - get data from the fifo
+ * @fifo: address of the fifo to be used
+ * @buf: pointer to the storage buffer
+ * @n: max. number of elements to get
+ *
+ * This macro get some data from the fifo and return the numbers of elements
+ * copied.
+ *
+ * Note that with only one concurrent reader and one concurrent
+ * writer, you don't need extra locking to use these macro.
+ */
+#define kfifo_out(fifo, buf, n) \
+__kfifo_uint_must_check_helper( \
+({ \
+ typeof((fifo) + 1) __tmp = (fifo); \
+ typeof((buf) + 1) __buf = (buf); \
+ unsigned long __n = (n); \
+ const size_t __recsize = sizeof(*__tmp->rectype); \
+ struct __kfifo *__kfifo = &__tmp->kfifo; \
+ if (0) { \
+ typeof(__tmp->ptr) __dummy = NULL; \
+ __buf = __dummy; \
+ } \
+ (__recsize) ?\
+ __kfifo_out_r(__kfifo, __buf, __n, __recsize) : \
+ __kfifo_out(__kfifo, __buf, __n); \
+}) \
+)
+
+/**
+ * kfifo_out_spinlocked - get data from the fifo using a spinlock for locking
+ * @fifo: address of the fifo to be used
+ * @buf: pointer to the storage buffer
+ * @n: max. number of elements to get
+ * @lock: pointer to the spinlock to use for locking
+ *
+ * This macro get the data from the fifo and return the numbers of elements
+ * copied.
+ */
+#define kfifo_out_spinlocked(fifo, buf, n, lock) \
+__kfifo_uint_must_check_helper( \
+({ \
+ unsigned long __flags; \
+ unsigned int __ret; \
+ spin_lock_irqsave(lock, __flags); \
+ __ret = kfifo_out(fifo, buf, n); \
+ spin_unlock_irqrestore(lock, __flags); \
+ __ret; \
+}) \
+)
+
+/* alias for kfifo_out_spinlocked, will be removed in a future release */
+#define kfifo_out_locked(fifo, buf, n, lock) \
+ kfifo_out_spinlocked(fifo, buf, n, lock)
+
+/**
+ * kfifo_from_user - puts some data from user space into the fifo
+ * @fifo: address of the fifo to be used
+ * @from: pointer to the data to be added
+ * @len: the length of the data to be added
+ * @copied: pointer to output variable to store the number of copied bytes
+ *
+ * This macro copies at most @len bytes from the @from into the
+ * fifo, depending of the available space and returns -EFAULT/0.
+ *
+ * Note that with only one concurrent reader and one concurrent
+ * writer, you don't need extra locking to use these macro.
+ */
+#define kfifo_from_user(fifo, from, len, copied) \
+__kfifo_uint_must_check_helper( \
+({ \
+ typeof((fifo) + 1) __tmp = (fifo); \
+ const void __user *__from = (from); \
+ unsigned int __len = (len); \
+ unsigned int *__copied = (copied); \
+ const size_t __recsize = sizeof(*__tmp->rectype); \
+ struct __kfifo *__kfifo = &__tmp->kfifo; \
+ (__recsize) ? \
+ __kfifo_from_user_r(__kfifo, __from, __len, __copied, __recsize) : \
+ __kfifo_from_user(__kfifo, __from, __len, __copied); \
+}) \
+)
+
+/**
+ * kfifo_to_user - copies data from the fifo into user space
+ * @fifo: address of the fifo to be used
+ * @to: where the data must be copied
+ * @len: the size of the destination buffer
+ * @copied: pointer to output variable to store the number of copied bytes
+ *
+ * This macro copies at most @len bytes from the fifo into the
+ * @to buffer and returns -EFAULT/0.
+ *
+ * Note that with only one concurrent reader and one concurrent
+ * writer, you don't need extra locking to use these macro.
+ */
+#define kfifo_to_user(fifo, to, len, copied) \
+__kfifo_uint_must_check_helper( \
+({ \
+ typeof((fifo) + 1) __tmp = (fifo); \
+ void __user *__to = (to); \
+ unsigned int __len = (len); \
+ unsigned int *__copied = (copied); \
+ const size_t __recsize = sizeof(*__tmp->rectype); \
+ struct __kfifo *__kfifo = &__tmp->kfifo; \
+ (__recsize) ? \
+ __kfifo_to_user_r(__kfifo, __to, __len, __copied, __recsize) : \
+ __kfifo_to_user(__kfifo, __to, __len, __copied); \
+}) \
+)
+
+/**
+ * kfifo_dma_in_prepare - setup a scatterlist for DMA input
+ * @fifo: address of the fifo to be used
+ * @sgl: pointer to the scatterlist array
+ * @nents: number of entries in the scatterlist array
+ * @len: number of elements to transfer
+ *
+ * This macro fills a scatterlist for DMA input.
+ * It returns the number entries in the scatterlist array.
+ *
+ * Note that with only one concurrent reader and one concurrent
+ * writer, you don't need extra locking to use these macros.
+ */
+#define kfifo_dma_in_prepare(fifo, sgl, nents, len) \
+({ \
+ typeof((fifo) + 1) __tmp = (fifo); \
+ struct scatterlist *__sgl = (sgl); \
+ int __nents = (nents); \
+ unsigned int __len = (len); \
+ const size_t __recsize = sizeof(*__tmp->rectype); \
+ struct __kfifo *__kfifo = &__tmp->kfifo; \
+ (__recsize) ? \
+ __kfifo_dma_in_prepare_r(__kfifo, __sgl, __nents, __len, __recsize) : \
+ __kfifo_dma_in_prepare(__kfifo, __sgl, __nents, __len); \
+})
+
+/**
+ * kfifo_dma_in_finish - finish a DMA IN operation
+ * @fifo: address of the fifo to be used
+ * @len: number of bytes to received
+ *
+ * This macro finish a DMA IN operation. The in counter will be updated by
+ * the len parameter. No error checking will be done.
+ *
+ * Note that with only one concurrent reader and one concurrent
+ * writer, you don't need extra locking to use these macros.
+ */
+#define kfifo_dma_in_finish(fifo, len) \
+(void)({ \
+ typeof((fifo) + 1) __tmp = (fifo); \
+ unsigned int __len = (len); \
+ const size_t __recsize = sizeof(*__tmp->rectype); \
+ struct __kfifo *__kfifo = &__tmp->kfifo; \
+ if (__recsize) \
+ __kfifo_dma_in_finish_r(__kfifo, __len, __recsize); \
+ else \
+ __kfifo->in += __len / sizeof(*__tmp->type); \
+})
+
+/**
+ * kfifo_dma_out_prepare - setup a scatterlist for DMA output
+ * @fifo: address of the fifo to be used
+ * @sgl: pointer to the scatterlist array
+ * @nents: number of entries in the scatterlist array
+ * @len: number of elements to transfer
+ *
+ * This macro fills a scatterlist for DMA output which at most @len bytes
+ * to transfer.
+ * It returns the number entries in the scatterlist array.
+ * A zero means there is no space available and the scatterlist is not filled.
+ *
+ * Note that with only one concurrent reader and one concurrent
+ * writer, you don't need extra locking to use these macros.
+ */
+#define kfifo_dma_out_prepare(fifo, sgl, nents, len) \
+({ \
+ typeof((fifo) + 1) __tmp = (fifo); \
+ struct scatterlist *__sgl = (sgl); \
+ int __nents = (nents); \
+ unsigned int __len = (len); \
+ const size_t __recsize = sizeof(*__tmp->rectype); \
+ struct __kfifo *__kfifo = &__tmp->kfifo; \
+ (__recsize) ? \
+ __kfifo_dma_out_prepare_r(__kfifo, __sgl, __nents, __len, __recsize) : \
+ __kfifo_dma_out_prepare(__kfifo, __sgl, __nents, __len); \
+})
+
+/**
+ * kfifo_dma_out_finish - finish a DMA OUT operation
+ * @fifo: address of the fifo to be used
+ * @len: number of bytes transferd
+ *
+ * This macro finish a DMA OUT operation. The out counter will be updated by
+ * the len parameter. No error checking will be done.
+ *
+ * Note that with only one concurrent reader and one concurrent
+ * writer, you don't need extra locking to use these macros.
+ */
+#define kfifo_dma_out_finish(fifo, len) \
+(void)({ \
+ typeof((fifo) + 1) __tmp = (fifo); \
+ unsigned int __len = (len); \
+ const size_t __recsize = sizeof(*__tmp->rectype); \
+ struct __kfifo *__kfifo = &__tmp->kfifo; \
+ if (__recsize) \
+ __kfifo_dma_out_finish_r(__kfifo, __recsize); \
+ else \
+ __kfifo->out += __len / sizeof(*__tmp->type); \
+})
+
+/**
+ * kfifo_out_peek - gets some data from the fifo
+ * @fifo: address of the fifo to be used
+ * @buf: pointer to the storage buffer
+ * @n: max. number of elements to get
+ *
+ * This macro get the data from the fifo and return the numbers of elements
+ * copied. The data is not removed from the fifo.
+ *
+ * Note that with only one concurrent reader and one concurrent
+ * writer, you don't need extra locking to use these macro.
+ */
+#define kfifo_out_peek(fifo, buf, n) \
+__kfifo_uint_must_check_helper( \
+({ \
+ typeof((fifo) + 1) __tmp = (fifo); \
+ typeof((buf) + 1) __buf = (buf); \
+ unsigned long __n = (n); \
+ const size_t __recsize = sizeof(*__tmp->rectype); \
+ struct __kfifo *__kfifo = &__tmp->kfifo; \
+ if (0) { \
+ typeof(__tmp->ptr) __dummy __attribute__ ((unused)) = NULL; \
+ __buf = __dummy; \
+ } \
+ (__recsize) ? \
+ __kfifo_out_peek_r(__kfifo, __buf, __n, __recsize) : \
+ __kfifo_out_peek(__kfifo, __buf, __n); \
+}) \
+)
+
+extern int __kfifo_alloc(struct __kfifo *fifo, unsigned int size,
+ size_t esize, gfp_t gfp_mask);
+
+extern void __kfifo_free(struct __kfifo *fifo);
+
+extern int __kfifo_init(struct __kfifo *fifo, void *buffer,
+ unsigned int size, size_t esize);
+
+extern unsigned int __kfifo_in(struct __kfifo *fifo,
+ const void *buf, unsigned int len);
+
+extern unsigned int __kfifo_out(struct __kfifo *fifo,
+ void *buf, unsigned int len);
+
+extern int __kfifo_from_user(struct __kfifo *fifo,
+ const void __user *from, unsigned long len, unsigned int *copied);
+
+extern int __kfifo_to_user(struct __kfifo *fifo,
+ void __user *to, unsigned long len, unsigned int *copied);
+
+extern unsigned int __kfifo_dma_in_prepare(struct __kfifo *fifo,
+ struct scatterlist *sgl, int nents, unsigned int len);
+
+extern unsigned int __kfifo_dma_out_prepare(struct __kfifo *fifo,
+ struct scatterlist *sgl, int nents, unsigned int len);
+
+extern unsigned int __kfifo_out_peek(struct __kfifo *fifo,
+ void *buf, unsigned int len);
+
+extern unsigned int __kfifo_in_r(struct __kfifo *fifo,
+ const void *buf, unsigned int len, size_t recsize);
+
+extern unsigned int __kfifo_out_r(struct __kfifo *fifo,
+ void *buf, unsigned int len, size_t recsize);
+
+extern int __kfifo_from_user_r(struct __kfifo *fifo,
+ const void __user *from, unsigned long len, unsigned int *copied,
+ size_t recsize);
+
+extern int __kfifo_to_user_r(struct __kfifo *fifo, void __user *to,
+ unsigned long len, unsigned int *copied, size_t recsize);
+
+extern unsigned int __kfifo_dma_in_prepare_r(struct __kfifo *fifo,
+ struct scatterlist *sgl, int nents, unsigned int len, size_t recsize);
+
+extern void __kfifo_dma_in_finish_r(struct __kfifo *fifo,
+ unsigned int len, size_t recsize);
+
+extern unsigned int __kfifo_dma_out_prepare_r(struct __kfifo *fifo,
+ struct scatterlist *sgl, int nents, unsigned int len, size_t recsize);
+
+extern void __kfifo_dma_out_finish_r(struct __kfifo *fifo, size_t recsize);
+
+extern unsigned int __kfifo_len_r(struct __kfifo *fifo, size_t recsize);
+
+extern void __kfifo_skip_r(struct __kfifo *fifo, size_t recsize);
+
+extern unsigned int __kfifo_out_peek_r(struct __kfifo *fifo,
+ void *buf, unsigned int len, size_t recsize);
+
+extern unsigned int __kfifo_max_r(unsigned int len, size_t recsize);
+
+#endif
+#endif /* (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36)) */
--
1.7.1
^ permalink raw reply related
* Re: [rt2x00-users] Linksys WUSB600N v1 disconnecting from AP
From: Aleksandar Milivojevic @ 2011-01-06 16:31 UTC (permalink / raw)
To: Wolfgang Kufner
Cc: Luis Correia, Luis R. Rodriguez, linux-wireless, users,
Helmut Schaa
In-Reply-To: <AANLkTi=-raYOK7p2e+3B2vRG2L+wJ6TApHj4LHd2NP53@mail.gmail.com>
Playing with it a bit more this morning. Looks like the connection
from wireless adapter to my AP drops periodically. Sometimes it
recovers (sometimes after several attempts), sometimes it does not.
Seems to be very random:
# egrep 'authent|associat' /var/log/debug
Jan 6 08:00:54 toporko kernel: [ 47.570810] wlan0: authenticate
with 00:1e:52:79:e9:ff (try 1)
Jan 6 08:00:54 toporko kernel: [ 47.571321] wlan0: authenticated
Jan 6 08:00:56 toporko kernel: [ 49.174175] wlan0: associate with
00:1e:52:79:e9:ff (try 1)
Jan 6 08:00:56 toporko kernel: [ 49.175536] wlan0: associated
Jan 6 08:06:01 toporko kernel: [ 354.230874] wlan0: authenticate
with 00:1e:52:79:e9:ff (try 1)
Jan 6 08:06:01 toporko kernel: [ 354.231364] wlan0: authenticated
Jan 6 08:06:01 toporko kernel: [ 354.236066] wlan0: associate with
00:1e:52:79:e9:ff (try 1)
Jan 6 08:06:01 toporko kernel: [ 354.236865] wlan0: associated
Jan 6 08:09:36 toporko kernel: [ 569.868923] wlan0: authenticate
with 00:1e:52:79:e9:ff (try 1)
Jan 6 08:09:36 toporko kernel: [ 569.869416] wlan0: authenticated
Jan 6 08:09:36 toporko kernel: [ 569.873736] wlan0: associate with
00:1e:52:79:e9:ff (try 1)
Jan 6 08:09:36 toporko kernel: [ 569.874507] wlan0: associated
Jan 6 08:09:46 toporko kernel: [ 579.233563] wlan0: authenticate
with 00:1e:52:79:e9:ff (try 1)
Jan 6 08:09:46 toporko kernel: [ 579.235574] wlan0: authenticated
Jan 6 08:09:46 toporko kernel: [ 579.240737] wlan0: associate with
00:1e:52:79:e9:ff (try 1)
Jan 6 08:09:46 toporko kernel: [ 579.241518] wlan0: associated
Jan 6 08:09:57 toporko kernel: [ 590.830933] wlan0: authenticate
with 00:1e:52:79:e9:ff (try 1)
Jan 6 08:09:57 toporko kernel: [ 590.831435] wlan0: authenticated
Jan 6 08:09:57 toporko kernel: [ 590.839102] wlan0: associate with
00:1e:52:79:e9:ff (try 1)
Jan 6 08:09:57 toporko kernel: [ 590.839881] wlan0: associated
Jan 6 08:21:29 toporko kernel: [ 1282.823289] wlan0: authenticate
with 00:1e:52:79:e9:ff (try 1)
Jan 6 08:21:29 toporko kernel: [ 1282.823783] wlan0: authenticated
Jan 6 08:21:29 toporko kernel: [ 1282.828990] wlan0: associate with
00:1e:52:79:e9:ff (try 1)
Jan 6 08:21:29 toporko kernel: [ 1282.830132] wlan0: associated
Jan 6 08:25:30 toporko kernel: [ 1523.433931] wlan0: authenticate
with 00:1e:52:79:e9:ff (try 1)
Jan 6 08:25:30 toporko kernel: [ 1523.434930] wlan0: authenticated
Jan 6 08:25:30 toporko kernel: [ 1523.439868] wlan0: associate with
00:1e:52:79:e9:ff (try 1)
Jan 6 08:25:30 toporko kernel: [ 1523.440652] wlan0: associated
So far, it managed to re-connect every time. Though, I'm rather sure
if I leave it long enough, the last night's case of connection dropped
completely would repeat sooner or later (even last night, there were
some connect/disconnect events before connection was dropped
permanently).
The AP reports signal from wireless card between -70 and -75dB, noise
at -96dB, and speed at 120mbps (with occasional drop to 45mbps).
These numbers sound about OK for the location (on the other side of my
apartment, few walls in between). For comparison, if I position my
MacBook at same location (right next to my Linux box), AP reports
signal from its AirPort card at about -60dB and speed in about 100mbps
range and no drops.
^ permalink raw reply
* [RFC v2] cfg80211: Add HT BSS attributes
From: Sujith @ 2011-01-06 8:28 UTC (permalink / raw)
To: Johannes Berg; +Cc: Jouni.Malinen, linux-wireless
From: Sujith Manoharan <Sujith.Manoharan@atheros.com>
Add two new per-BSS attributes to allow configuration of
HT capabilites and operational parameters by hostapd.
Signed-off-by: Sujith Manoharan <Sujith.Manoharan@atheros.com>
---
v2: Initialize values and set the parameters in managed mode also.
include/linux/nl80211.h | 6 ++++++
include/net/cfg80211.h | 6 ++++++
include/net/mac80211.h | 4 ++++
net/mac80211/cfg.c | 15 +++++++++++++++
net/mac80211/driver-trace.h | 4 ++++
net/mac80211/ieee80211_i.h | 9 ++++++---
net/mac80211/mlme.c | 10 +++++++---
net/wireless/nl80211.c | 8 ++++++++
8 files changed, 56 insertions(+), 6 deletions(-)
diff --git a/include/linux/nl80211.h b/include/linux/nl80211.h
index 2b89b71..94c7dde 100644
--- a/include/linux/nl80211.h
+++ b/include/linux/nl80211.h
@@ -881,6 +881,9 @@ enum nl80211_commands {
* @NL80211_ATTR_MESH_SETUP: Optional mesh setup parameters. These cannot be
* changed once the mesh is active.
*
+ * @NL80211_ATTR_BSS_HT_CAPAB: HT Capabilities for a BSS.
+ * @NL80211_ATTR_BSS_HT_PARAM: Current operational HT parameters.
+ *
* @NL80211_ATTR_MAX: highest attribute number currently defined
* @__NL80211_ATTR_AFTER_LAST: internal use
*/
@@ -1068,6 +1071,9 @@ enum nl80211_attrs {
NL80211_ATTR_WIPHY_ANTENNA_AVAIL_TX,
NL80211_ATTR_WIPHY_ANTENNA_AVAIL_RX,
+ NL80211_ATTR_BSS_HT_CAPAB,
+ NL80211_ATTR_BSS_HT_PARAM,
+
/* add attributes here, update the policy in nl80211.c */
__NL80211_ATTR_AFTER_LAST,
diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h
index bcc9f44..67a2351 100644
--- a/include/net/cfg80211.h
+++ b/include/net/cfg80211.h
@@ -607,6 +607,10 @@ struct mpath_info {
* @ap_isolate: do not forward packets between connected stations
* @ht_opmode: HT Operation mode
* (u16 = opmode, -1 = do not change)
+ * @ht_capab: HT capabilities
+ * (u16 = capabilties, -1 = do not change)
+ * @ht_param: HT Operating parameters
+ * (u8 = parameters, -1 = do not change)
*/
struct bss_parameters {
int use_cts_prot;
@@ -616,6 +620,8 @@ struct bss_parameters {
u8 basic_rates_len;
int ap_isolate;
int ht_opmode;
+ int ht_capab;
+ int ht_param;
};
/*
diff --git a/include/net/mac80211.h b/include/net/mac80211.h
index 5b3fd5a..a7efd18 100644
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -227,6 +227,8 @@ enum ieee80211_bss_change {
* example.
* @ht_operation_mode: HT operation mode (like in &struct ieee80211_ht_info).
* This field is only valid when the channel type is one of the HT types.
+ * @ht_capab: HT capabilities (as in &struct ieee80211_ht_cap).
+ * @ht_param: Operational HT parameters (as in &struct ieee80211_ht_info).
* @cqm_rssi_thold: Connection quality monitor RSSI threshold, a zero value
* implies disabled
* @cqm_rssi_hyst: Connection quality monitor RSSI hysteresis
@@ -261,6 +263,8 @@ struct ieee80211_bss_conf {
u32 basic_rates;
int mcast_rate[IEEE80211_NUM_BANDS];
u16 ht_operation_mode;
+ u16 ht_capab;
+ u8 ht_param;
s32 cqm_rssi_thold;
u32 cqm_rssi_hyst;
enum nl80211_channel_type channel_type;
diff --git a/net/mac80211/cfg.c b/net/mac80211/cfg.c
index 4bc8a92..f10c92b 100644
--- a/net/mac80211/cfg.c
+++ b/net/mac80211/cfg.c
@@ -1172,6 +1172,21 @@ static int ieee80211_change_bss(struct wiphy *wiphy,
changed |= BSS_CHANGED_HT;
}
+ if (params->ht_capab >= 0) {
+ struct ieee80211_local *local = wiphy_priv(wiphy);
+ struct ieee80211_supported_band *sband =
+ wiphy->bands[local->oper_channel->band];
+
+ sdata->vif.bss_conf.ht_capab =
+ (u16) (params->ht_capab & sband->ht_cap.cap);
+ changed |= BSS_CHANGED_HT;
+ }
+
+ if (params->ht_param >= 0) {
+ sdata->vif.bss_conf.ht_param = (u8) params->ht_param;
+ changed |= BSS_CHANGED_HT;
+ }
+
ieee80211_bss_info_change_notify(sdata, changed);
return 0;
diff --git a/net/mac80211/driver-trace.h b/net/mac80211/driver-trace.h
index 49c8421..1b34cb7 100644
--- a/net/mac80211/driver-trace.h
+++ b/net/mac80211/driver-trace.h
@@ -255,6 +255,8 @@ TRACE_EVENT(drv_bss_info_changed,
__field(u32, changed)
__field(bool, enable_beacon)
__field(u16, ht_operation_mode)
+ __field(u16, ht_capab)
+ __field(u8, ht_param)
),
TP_fast_assign(
@@ -273,6 +275,8 @@ TRACE_EVENT(drv_bss_info_changed,
__entry->basic_rates = info->basic_rates;
__entry->enable_beacon = info->enable_beacon;
__entry->ht_operation_mode = info->ht_operation_mode;
+ __entry->ht_capab = info->ht_capab;
+ __entry->ht_param = info->ht_param;
),
TP_printk(
diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h
index c47d7c0..228f569 100644
--- a/net/mac80211/ieee80211_i.h
+++ b/net/mac80211/ieee80211_i.h
@@ -549,10 +549,13 @@ struct ieee80211_sub_if_data {
char name[IFNAMSIZ];
/*
- * keep track of whether the HT opmode (stored in
- * vif.bss_info.ht_operation_mode) is valid.
+ * Keeps track of the validity of HT information, namely,
+ *
+ * vif.bss_info.ht_operation_mode,
+ * vif.bss_info.ht_capab,
+ * vif.bss_info.ht_param
*/
- bool ht_opmode_valid;
+ bool ht_state_valid;
/* to detect idle changes */
bool old_idle;
diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c
index 45fbb9e..66cde6a 100644
--- a/net/mac80211/mlme.c
+++ b/net/mac80211/mlme.c
@@ -225,12 +225,16 @@ static u32 ieee80211_enable_ht(struct ieee80211_sub_if_data *sdata,
ht_opmode = le16_to_cpu(hti->operation_mode);
/* if bss configuration changed store the new one */
- if (sdata->ht_opmode_valid != enable_ht ||
+ if (sdata->ht_state_valid != enable_ht ||
sdata->vif.bss_conf.ht_operation_mode != ht_opmode ||
+ sdata->vif.bss_conf.ht_capab != ap_ht_cap_flags ||
+ sdata->vif.bss_conf.ht_param != hti->ht_param ||
prev_chantype != channel_type) {
changed |= BSS_CHANGED_HT;
sdata->vif.bss_conf.ht_operation_mode = ht_opmode;
- sdata->ht_opmode_valid = enable_ht;
+ sdata->vif.bss_conf.ht_capab = ap_ht_cap_flags;
+ sdata->vif.bss_conf.ht_param = hti->ht_param;
+ sdata->ht_state_valid = enable_ht;
}
return changed;
@@ -986,7 +990,7 @@ static void ieee80211_set_disassoc(struct ieee80211_sub_if_data *sdata,
WARN_ON(!ieee80211_set_channel_type(local, sdata, NL80211_CHAN_NO_HT));
/* on the next assoc, re-program HT parameters */
- sdata->ht_opmode_valid = false;
+ sdata->ht_state_valid = false;
local->power_constr_level = 0;
diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c
index 9b62710..125612c 100644
--- a/net/wireless/nl80211.c
+++ b/net/wireless/nl80211.c
@@ -2576,6 +2576,8 @@ static int nl80211_set_bss(struct sk_buff *skb, struct genl_info *info)
params.use_short_slot_time = -1;
params.ap_isolate = -1;
params.ht_opmode = -1;
+ params.ht_capab = -1;
+ params.ht_param = -1;
if (info->attrs[NL80211_ATTR_BSS_CTS_PROT])
params.use_cts_prot =
@@ -2597,6 +2599,12 @@ static int nl80211_set_bss(struct sk_buff *skb, struct genl_info *info)
if (info->attrs[NL80211_ATTR_BSS_HT_OPMODE])
params.ht_opmode =
nla_get_u16(info->attrs[NL80211_ATTR_BSS_HT_OPMODE]);
+ if (info->attrs[NL80211_ATTR_BSS_HT_CAPAB])
+ params.ht_capab =
+ nla_get_u16(info->attrs[NL80211_ATTR_BSS_HT_CAPAB]);
+ if (info->attrs[NL80211_ATTR_BSS_HT_PARAM])
+ params.ht_param =
+ nla_get_u8(info->attrs[NL80211_ATTR_BSS_HT_PARAM]);
if (!rdev->ops->change_bss)
return -EOPNOTSUPP;
--
1.7.3.4
^ permalink raw reply related
* Re: [rt2x00-users] Linksys WUSB600N v1 disconnecting from AP
From: Aleksandar Milivojevic @ 2011-01-06 7:09 UTC (permalink / raw)
To: Wolfgang Kufner
Cc: Luis Correia, Luis R. Rodriguez, linux-wireless, users,
Helmut Schaa
In-Reply-To: <AANLkTimaWy33vYaM=bCPd0VooyR9QVw99YB1fSOj42Fo@mail.gmail.com>
Some good news, and some bad news.
First off, the logs included in this email are relatively verbose. So
if anybody knows the moderator of rt2x00 group, this will need
approval to get posted as email is likely going to end up longer than
the limit of 40kB.
After selecting only rt2x00 drivers, compat-wireless compiled, giving
me updated rt2x00, cfg80211 and mac80211 drivers. Using them,
'country 98' stuff was gone and everything was working great and
blazing fast. However, after less then 10 minutes, the connection to
my AP was dropped again. Looking at log files, there is a lot of
switching of regulatory domains and adjustments of which frequencies
are allowed. However, these don't seem to have be an issue, as
connection to AP was fully functional for many minutes after
regulatory domain stuff was set, and subsequent logs relating to
setting regulatory domains are triggered by re-connection attempts to
AP only after the connection failed (basically, going back and forth
from "world" to US as connection attempts were being made). I
included all logs just in case. The logs also claim the beacon was
found on 5745 MHz (Ch 149), and I don't see that frequency reported as
disabled anywhere in the logs.
I've collected logs from both Linux side, and from the AP (Apple
Airport Extreme). Here's what was logged on Linux side (Ubuntu logged
normal and debug messages into two different files):
Initially, everything looks nice:
Jan 5 20:51:30 toporko kernel: [ 20.909139] cfg80211: Calling CRDA
to update world regulatory domain
Jan 5 20:51:30 toporko kernel: [ 20.978919] cfg80211: World
regulatory domain updated:
Jan 5 20:51:30 toporko kernel: [ 20.978927] cfg80211:
(start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
Jan 5 20:51:30 toporko kernel: [ 20.978933] cfg80211: (2402000
KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
Jan 5 20:51:30 toporko kernel: [ 20.978938] cfg80211: (2457000
KHz - 2482000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
Jan 5 20:51:30 toporko kernel: [ 20.978942] cfg80211: (2474000
KHz - 2494000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
Jan 5 20:51:30 toporko kernel: [ 20.978946] cfg80211: (5170000
KHz - 5250000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
Jan 5 20:51:30 toporko kernel: [ 20.978951] cfg80211: (5735000
KHz - 5835000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
Jan 5 20:51:30 toporko kernel: [ 20.978979] cfg80211: Calling CRDA
for country: US
Jan 5 20:51:30 toporko kernel: [ 21.062261] cfg80211: Regulatory
domain changed to country: US
Jan 5 20:51:30 toporko kernel: [ 21.062268] cfg80211:
(start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
Jan 5 20:51:30 toporko kernel: [ 21.062273] cfg80211: (2402000
KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2700 mBm)
Jan 5 20:51:30 toporko kernel: [ 21.062277] cfg80211: (5170000
KHz - 5250000 KHz @ 40000 KHz), (300 mBi, 1700 mBm)
Jan 5 20:51:30 toporko kernel: [ 21.062281] cfg80211: (5250000
KHz - 5330000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
Jan 5 20:51:30 toporko kernel: [ 21.062286] cfg80211: (5490000
KHz - 5600000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
Jan 5 20:51:30 toporko kernel: [ 21.062290] cfg80211: (5650000
KHz - 5710000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
Jan 5 20:51:30 toporko kernel: [ 21.062294] cfg80211: (5735000
KHz - 5835000 KHz @ 40000 KHz), (300 mBi, 3000 mBm)
20:52:00 corresponds to the time when first association event is
logged by AP (see logs from AP below):
Jan 5 20:52:00 toporko kernel: [ 51.238753]
ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready
Jan 5 20:52:00 toporko kernel: [ 51.240874] cfg80211: Calling CRDA
for country: US
Jan 5 20:52:00 toporko kernel: [ 51.249676] cfg80211: Regulatory
domain changed to country: US
Jan 5 20:52:00 toporko kernel: [ 51.249679] cfg80211:
(start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
Jan 5 20:52:00 toporko kernel: [ 51.249683] cfg80211: (2402000
KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2700 mBm)
Jan 5 20:52:00 toporko kernel: [ 51.249688] cfg80211: (5170000
KHz - 5250000 KHz @ 40000 KHz), (300 mBi, 1700 mBm)
Jan 5 20:52:00 toporko kernel: [ 51.249692] cfg80211: (5250000
KHz - 5330000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:00 toporko kernel: [ 51.249696] cfg80211: (5490000
KHz - 5600000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:00 toporko kernel: [ 51.249701] cfg80211: (5650000
KHz - 5710000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:00 toporko kernel: [ 51.249705] cfg80211: (5735000
KHz - 5835000 KHz @ 40000 KHz), (300 mBi, 3000 mBm)
At 20:52:22, AP logs and disassociation event, shortly followed by an
association event. Linux side has to say:
Jan 5 20:52:22 toporko kernel: [ 72.946432] cfg80211: Calling CRDA
to update world regulatory domain
Jan 5 20:52:22 toporko kernel: [ 72.956781] cfg80211: World
regulatory domain updated:
Jan 5 20:52:22 toporko kernel: [ 72.956784] cfg80211:
(start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
Jan 5 20:52:22 toporko kernel: [ 72.956788] cfg80211: (2402000
KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:22 toporko kernel: [ 72.956793] cfg80211: (2457000
KHz - 2482000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:22 toporko kernel: [ 72.956797] cfg80211: (2474000
KHz - 2494000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:22 toporko kernel: [ 72.956801] cfg80211: (5170000
KHz - 5250000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:22 toporko kernel: [ 72.956806] cfg80211: (5735000
KHz - 5835000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:22 toporko kernel: [ 72.956837] cfg80211: Calling CRDA
for country: US
Jan 5 20:52:22 toporko kernel: [ 72.977063] cfg80211: Regulatory
domain changed to country: US
Jan 5 20:52:22 toporko kernel: [ 72.977066] cfg80211:
(start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
Jan 5 20:52:22 toporko kernel: [ 72.977070] cfg80211: (2402000
KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2700 mBm)
Jan 5 20:52:22 toporko kernel: [ 72.977075] cfg80211: (5170000
KHz - 5250000 KHz @ 40000 KHz), (300 mBi, 1700 mBm)
Jan 5 20:52:22 toporko kernel: [ 72.977079] cfg80211: (5250000
KHz - 5330000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:22 toporko kernel: [ 72.977084] cfg80211: (5490000
KHz - 5600000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:22 toporko kernel: [ 72.977088] cfg80211: (5650000
KHz - 5710000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:22 toporko kernel: [ 72.977092] cfg80211: (5735000
KHz - 5835000 KHz @ 40000 KHz), (300 mBi, 3000 mBm)
Jan 5 20:52:25 toporko kernel: [ 75.927369] cfg80211: Calling CRDA
for country: US
Jan 5 20:52:25 toporko kernel: [ 75.954521] cfg80211: Regulatory
domain changed to country: US
Jan 5 20:52:25 toporko kernel: [ 75.954524] cfg80211:
(start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
Jan 5 20:52:25 toporko kernel: [ 75.954528] cfg80211: (2402000
KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2700 mBm)
Jan 5 20:52:25 toporko kernel: [ 75.954533] cfg80211: (5170000
KHz - 5250000 KHz @ 40000 KHz), (300 mBi, 1700 mBm)
Jan 5 20:52:25 toporko kernel: [ 75.954537] cfg80211: (5250000
KHz - 5330000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:25 toporko kernel: [ 75.954542] cfg80211: (5490000
KHz - 5600000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:25 toporko kernel: [ 75.954546] cfg80211: (5650000
KHz - 5710000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:25 toporko kernel: [ 75.954551] cfg80211: (5735000
KHz - 5835000 KHz @ 40000 KHz), (300 mBi, 3000 mBm)
At this point, everything works fine for about 7-8 minutes, the
following lines start repeating over and over again in the
/var/log/messages (the pattern is one switch to "world" followed by
two messages of switching to US). At the same time, the AP also
starts logging a lot of disassociation/association events.
Jan 5 21:00:15 toporko kernel: [ 545.128569] cfg80211: Calling CRDA
to update world regulatory domain
Jan 5 21:00:15 toporko kernel: [ 545.139964] cfg80211: World
regulatory domain updated:
Jan 5 21:00:15 toporko kernel: [ 545.139966] cfg80211:
(start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
Jan 5 21:00:15 toporko kernel: [ 545.139971] cfg80211: (2402000
KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
Jan 5 21:00:15 toporko kernel: [ 545.139975] cfg80211: (2457000
KHz - 2482000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
Jan 5 21:00:15 toporko kernel: [ 545.139979] cfg80211: (2474000
KHz - 2494000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
Jan 5 21:00:15 toporko kernel: [ 545.139983] cfg80211: (5170000
KHz - 5250000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
Jan 5 21:00:15 toporko kernel: [ 545.139988] cfg80211: (5735000
KHz - 5835000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
Jan 5 21:00:15 toporko kernel: [ 545.140424] cfg80211: Calling CRDA
for country: US
Jan 5 21:00:15 toporko kernel: [ 545.162143] cfg80211: Regulatory
domain changed to country: US
Jan 5 21:00:15 toporko kernel: [ 545.162146] cfg80211:
(start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
Jan 5 21:00:15 toporko kernel: [ 545.162151] cfg80211: (2402000
KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2700 mBm)
Jan 5 21:00:15 toporko kernel: [ 545.162156] cfg80211: (5170000
KHz - 5250000 KHz @ 40000 KHz), (300 mBi, 1700 mBm)
Jan 5 21:00:15 toporko kernel: [ 545.162160] cfg80211: (5250000
KHz - 5330000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
Jan 5 21:00:15 toporko kernel: [ 545.162165] cfg80211: (5490000
KHz - 5600000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
Jan 5 21:00:15 toporko kernel: [ 545.162170] cfg80211: (5650000
KHz - 5710000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
Jan 5 21:00:15 toporko kernel: [ 545.162174] cfg80211: (5735000
KHz - 5835000 KHz @ 40000 KHz), (300 mBi, 3000 mBm)
Jan 5 21:00:19 toporko kernel: [ 549.886738] cfg80211: Calling CRDA
for country: US
Jan 5 21:00:19 toporko kernel: [ 549.899715] cfg80211: Regulatory
domain changed to country: US
Jan 5 21:00:19 toporko kernel: [ 549.899718] cfg80211:
(start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
Jan 5 21:00:19 toporko kernel: [ 549.899723] cfg80211: (2402000
KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2700 mBm)
Jan 5 21:00:19 toporko kernel: [ 549.899728] cfg80211: (5170000
KHz - 5250000 KHz @ 40000 KHz), (300 mBi, 1700 mBm)
Jan 5 21:00:19 toporko kernel: [ 549.899732] cfg80211: (5250000
KHz - 5330000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
Jan 5 21:00:19 toporko kernel: [ 549.899737] cfg80211: (5490000
KHz - 5600000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
Jan 5 21:00:19 toporko kernel: [ 549.899741] cfg80211: (5650000
KHz - 5710000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
Jan 5 21:00:19 toporko kernel: [ 549.899745] cfg80211: (5735000
KHz - 5835000 KHz @ 40000 KHz), (300 mBi, 3000 mBm)
Around 21:12, the Linux side gives up.
File /var/log/debug had much more detailed info and likely much more
noise. I'll include it last. First, here is how things looked like
from the AP's perspective. The logs from the AP indicate a lot of
association/disassociation events from WUSB600N (it's MAC address is
00:1c:10:ea:2a:cb).
This is initial connection to the AP:
Jan 05 20:52:01 Severity:5 Associated with station 00:1c:10:ea:2a:cb
Jan 05 20:52:02 Severity:5 Installed unicast CCMP key for
supplicant 00:1c:10:ea:2a:cb
Then after about 20 seconds, there's and disassociate event, however
connection is re-established few seconds later:
Jan 05 20:52:22 Severity:5 Disassociated with station 00:1c:10:ea:2a:cb
Jan 05 20:52:24 Severity:5 Rotated TKIP group key.
Jan 05 20:52:25 Severity:5 Associated with station 00:1c:10:ea:2a:cb
Jan 05 20:52:25 Severity:5 Installed unicast CCMP key for
supplicant 00:1c:10:ea:2a:cb
Then there's nothing in the logs for about next 7-8 minutes. At this
point, there's bunch of disassociate/associate events logged by AP:
Jan 05 21:00:15 Severity:5 Disassociated with station 00:1c:10:ea:2a:cb
Jan 05 21:00:17 Severity:5 Rotated TKIP group key.
Jan 05 21:00:19 Severity:5 Associated with station 00:1c:10:ea:2a:cb
Jan 05 21:00:22 Severity:5 Installed unicast CCMP key for
supplicant 00:1c:10:ea:2a:cb
Jan 05 21:03:38 Severity:5 Disassociated with station 00:1c:10:ea:2a:cb
Jan 05 21:03:39 Severity:5 Rotated TKIP group key.
Jan 05 21:03:42 Severity:5 Associated with station 00:1c:10:ea:2a:cb
Jan 05 21:03:45 Severity:5 Installed unicast CCMP key for
supplicant 00:1c:10:ea:2a:cb
Jan 05 21:03:51 Severity:5 Disassociated with station 00:1c:10:ea:2a:cb
Jan 05 21:03:52 Severity:5 Rotated TKIP group key.
Jan 05 21:03:55 Severity:5 Associated with station 00:1c:10:ea:2a:cb
Jan 05 21:03:55 Severity:5 Installed unicast CCMP key for
supplicant 00:1c:10:ea:2a:cb
Jan 05 21:06:04 Severity:5 Disassociated with station 00:1c:10:ea:2a:cb
Jan 05 21:06:05 Severity:5 Rotated TKIP group key.
Jan 05 21:06:08 Severity:5 Associated with station 00:1c:10:ea:2a:cb
Jan 05 21:06:11 Severity:5 Installed unicast CCMP key for
supplicant 00:1c:10:ea:2a:cb
Jan 05 21:06:48 Severity:5 Disassociated with station 00:1c:10:ea:2a:cb
Jan 05 21:06:48 Severity:5 Rotated TKIP group key.
Jan 05 21:06:53 Severity:5 Associated with station 00:1c:10:ea:2a:cb
Jan 05 21:06:53 Severity:5 Installed unicast CCMP key for
supplicant 00:1c:10:ea:2a:cb
Jan 05 21:08:46 Severity:5 Disassociated with station 00:1c:10:ea:2a:cb
Jan 05 21:08:47 Severity:5 Rotated TKIP group key.
Jan 05 21:08:51 Severity:5 Associated with station 00:1c:10:ea:2a:cb
Jan 05 21:08:51 Severity:5 Installed unicast CCMP key for
supplicant 00:1c:10:ea:2a:cb
Then all is quiet in the logs on AP side, and after some additional
time, AP also gives up:
Jan 05 21:17:26 Severity:5 Idle timeout for station 00:1c:10:ea:2a:cb
Jan 05 21:17:26 Severity:5 Disassociating with station
00:1c:10:ea:2a:cb (reserved 4).
Jan 05 21:17:26 Severity:5 Disassociated with station 00:1c:10:ea:2a:cb
Jan 05 21:17:26 Severity:5 Rotated TKIP group key.
Finally, here is what Linux side logged in its /var/log/debug. It's
rather verbose and long. I noticed some frequencies being disabled
over and over that don't look like they should have been disabled.
First section corresponds to initialization, before first actual
connection to AP seem to have been made:
Jan 5 20:51:30 toporko kernel: [ 20.909354] cfg80211: Pending
regulatory request, waiting for it to be processed...
Jan 5 20:51:30 toporko kernel: [ 21.650908] cfg80211: Updating
information on frequency 2412 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:51:30 toporko kernel: [ 21.650916] cfg80211: 2402000 KHz -
2472000 KHz @ KHz), (300 mBi, 2700 mBm)
Jan 5 20:51:30 toporko kernel: [ 21.650920] cfg80211: Updating
information on frequency 2417 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:51:30 toporko kernel: [ 21.650925] cfg80211: 2402000 KHz -
2472000 KHz @ KHz), (300 mBi, 2700 mBm)
Jan 5 20:51:30 toporko kernel: [ 21.650929] cfg80211: Updating
information on frequency 2422 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:51:30 toporko kernel: [ 21.650933] cfg80211: 2402000 KHz -
2472000 KHz @ KHz), (300 mBi, 2700 mBm)
Jan 5 20:51:30 toporko kernel: [ 21.650937] cfg80211: Updating
information on frequency 2427 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:51:30 toporko kernel: [ 21.650941] cfg80211: 2402000 KHz -
2472000 KHz @ KHz), (300 mBi, 2700 mBm)
Jan 5 20:51:30 toporko kernel: [ 21.650945] cfg80211: Updating
information on frequency 2432 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:51:30 toporko kernel: [ 21.650950] cfg80211: 2402000 KHz -
2472000 KHz @ KHz), (300 mBi, 2700 mBm)
Jan 5 20:51:30 toporko kernel: [ 21.650953] cfg80211: Updating
information on frequency 2437 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:51:30 toporko kernel: [ 21.650958] cfg80211: 2402000 KHz -
2472000 KHz @ KHz), (300 mBi, 2700 mBm)
Jan 5 20:51:30 toporko kernel: [ 21.650962] cfg80211: Updating
information on frequency 2442 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:51:30 toporko kernel: [ 21.650966] cfg80211: 2402000 KHz -
2472000 KHz @ KHz), (300 mBi, 2700 mBm)
Jan 5 20:51:30 toporko kernel: [ 21.650970] cfg80211: Updating
information on frequency 2447 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:51:30 toporko kernel: [ 21.650974] cfg80211: 2402000 KHz -
2472000 KHz @ KHz), (300 mBi, 2700 mBm)
Jan 5 20:51:30 toporko kernel: [ 21.650978] cfg80211: Updating
information on frequency 2452 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:51:30 toporko kernel: [ 21.650982] cfg80211: 2402000 KHz -
2472000 KHz @ KHz), (300 mBi, 2700 mBm)
Jan 5 20:51:30 toporko kernel: [ 21.650986] cfg80211: Updating
information on frequency 2457 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:51:30 toporko kernel: [ 21.650991] cfg80211: 2402000 KHz -
2472000 KHz @ KHz), (300 mBi, 2700 mBm)
Jan 5 20:51:30 toporko kernel: [ 21.650994] cfg80211: Updating
information on frequency 2462 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:51:30 toporko kernel: [ 21.650999] cfg80211: 2402000 KHz -
2472000 KHz @ KHz), (300 mBi, 2700 mBm)
Jan 5 20:51:30 toporko kernel: [ 21.651003] cfg80211: Disabling freq 2467 MHz
Jan 5 20:51:30 toporko kernel: [ 21.651005] cfg80211: Disabling freq 2472 MHz
Jan 5 20:51:30 toporko kernel: [ 21.651008] cfg80211: Disabling freq 2484 MHz
Jan 5 20:51:30 toporko kernel: [ 21.651011] cfg80211: Updating
information on frequency 5180 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:51:30 toporko kernel: [ 21.651016] cfg80211: 5170000 KHz -
5250000 KHz @ KHz), (300 mBi, 1700 mBm)
Jan 5 20:51:30 toporko kernel: [ 21.651020] cfg80211: Updating
information on frequency 5190 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:51:30 toporko kernel: [ 21.651024] cfg80211: 5170000 KHz -
5250000 KHz @ KHz), (300 mBi, 1700 mBm)
Jan 5 20:51:30 toporko kernel: [ 21.651028] cfg80211: Updating
information on frequency 5200 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:51:30 toporko kernel: [ 21.651032] cfg80211: 5170000 KHz -
5250000 KHz @ KHz), (300 mBi, 1700 mBm)
Jan 5 20:51:30 toporko kernel: [ 21.651036] cfg80211: Updating
information on frequency 5220 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:51:30 toporko kernel: [ 21.651041] cfg80211: 5170000 KHz -
5250000 KHz @ KHz), (300 mBi, 1700 mBm)
Jan 5 20:51:30 toporko kernel: [ 21.651044] cfg80211: Updating
information on frequency 5230 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:51:30 toporko kernel: [ 21.651049] cfg80211: 5170000 KHz -
5250000 KHz @ KHz), (300 mBi, 1700 mBm)
Jan 5 20:51:30 toporko kernel: [ 21.651053] cfg80211: Updating
information on frequency 5240 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:51:30 toporko kernel: [ 21.651057] cfg80211: 5170000 KHz -
5250000 KHz @ KHz), (300 mBi, 1700 mBm)
Jan 5 20:51:30 toporko kernel: [ 21.651061] cfg80211: Updating
information on frequency 5260 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:51:30 toporko kernel: [ 21.651065] cfg80211: 5250000 KHz -
5330000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:51:30 toporko kernel: [ 21.651069] cfg80211: Updating
information on frequency 5270 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:51:30 toporko kernel: [ 21.651074] cfg80211: 5250000 KHz -
5330000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:51:30 toporko kernel: [ 21.651077] cfg80211: Updating
information on frequency 5280 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:51:30 toporko kernel: [ 21.651082] cfg80211: 5250000 KHz -
5330000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:51:30 toporko kernel: [ 21.651085] cfg80211: Updating
information on frequency 5300 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:51:30 toporko kernel: [ 21.651090] cfg80211: 5250000 KHz -
5330000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:51:30 toporko kernel: [ 21.651094] cfg80211: Updating
information on frequency 5310 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:51:30 toporko kernel: [ 21.651098] cfg80211: 5250000 KHz -
5330000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:51:30 toporko kernel: [ 21.651102] cfg80211: Updating
information on frequency 5320 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:51:30 toporko kernel: [ 21.651106] cfg80211: 5250000 KHz -
5330000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:51:30 toporko kernel: [ 21.651110] cfg80211: Updating
information on frequency 5500 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:51:30 toporko kernel: [ 21.651115] cfg80211: 5490000 KHz -
5600000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:51:30 toporko kernel: [ 21.651118] cfg80211: Updating
information on frequency 5510 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:51:30 toporko kernel: [ 21.651123] cfg80211: 5490000 KHz -
5600000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:51:30 toporko kernel: [ 21.651127] cfg80211: Updating
information on frequency 5520 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:51:30 toporko kernel: [ 21.651131] cfg80211: 5490000 KHz -
5600000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:51:30 toporko kernel: [ 21.651135] cfg80211: Updating
information on frequency 5540 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:51:30 toporko kernel: [ 21.651139] cfg80211: 5490000 KHz -
5600000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:51:30 toporko kernel: [ 21.651143] cfg80211: Updating
information on frequency 5550 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:51:30 toporko kernel: [ 21.651148] cfg80211: 5490000 KHz -
5600000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:51:30 toporko kernel: [ 21.651151] cfg80211: Updating
information on frequency 5560 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:51:30 toporko kernel: [ 21.651156] cfg80211: 5490000 KHz -
5600000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:51:30 toporko kernel: [ 21.651159] cfg80211: Updating
information on frequency 5580 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:51:30 toporko kernel: [ 21.651164] cfg80211: 5490000 KHz -
5600000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:51:30 toporko kernel: [ 21.651168] cfg80211: Updating
information on frequency 5590 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:51:30 toporko kernel: [ 21.651172] cfg80211: 5490000 KHz -
5600000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:51:30 toporko kernel: [ 21.651175] cfg80211: Disabling freq 5600 MHz
Jan 5 20:51:30 toporko kernel: [ 21.651178] cfg80211: Disabling freq 5620 MHz
Jan 5 20:51:30 toporko kernel: [ 21.651181] cfg80211: Disabling freq 5630 MHz
Jan 5 20:51:30 toporko kernel: [ 21.651183] cfg80211: Disabling freq 5640 MHz
Jan 5 20:51:30 toporko kernel: [ 21.651187] cfg80211: Updating
information on frequency 5660 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:51:30 toporko kernel: [ 21.651191] cfg80211: 5650000 KHz -
5710000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:51:30 toporko kernel: [ 21.651195] cfg80211: Updating
information on frequency 5670 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:51:30 toporko kernel: [ 21.651199] cfg80211: 5650000 KHz -
5710000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:51:30 toporko kernel: [ 21.651203] cfg80211: Updating
information on frequency 5680 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:51:30 toporko kernel: [ 21.651208] cfg80211: 5650000 KHz -
5710000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:51:30 toporko kernel: [ 21.651211] cfg80211: Updating
information on frequency 5700 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:51:30 toporko kernel: [ 21.651216] cfg80211: 5650000 KHz -
5710000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:51:30 toporko kernel: [ 21.651220] cfg80211: Updating
information on frequency 5745 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:51:30 toporko kernel: [ 21.651224] cfg80211: 5735000 KHz -
5835000 KHz @ KHz), (300 mBi, 3000 mBm)
Jan 5 20:51:30 toporko kernel: [ 21.651228] cfg80211: Updating
information on frequency 5755 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:51:30 toporko kernel: [ 21.651232] cfg80211: 5735000 KHz -
5835000 KHz @ KHz), (300 mBi, 3000 mBm)
Jan 5 20:51:30 toporko kernel: [ 21.651236] cfg80211: Updating
information on frequency 5765 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:51:30 toporko kernel: [ 21.651241] cfg80211: 5735000 KHz -
5835000 KHz @ KHz), (300 mBi, 3000 mBm)
Jan 5 20:51:30 toporko kernel: [ 21.651244] cfg80211: Updating
information on frequency 5785 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:51:30 toporko kernel: [ 21.651249] cfg80211: 5735000 KHz -
5835000 KHz @ KHz), (300 mBi, 3000 mBm)
Jan 5 20:51:30 toporko kernel: [ 21.651253] cfg80211: Updating
information on frequency 5795 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:51:30 toporko kernel: [ 21.651257] cfg80211: 5735000 KHz -
5835000 KHz @ KHz), (300 mBi, 3000 mBm)
Jan 5 20:51:30 toporko kernel: [ 21.651261] cfg80211: Updating
information on frequency 5805 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:51:30 toporko kernel: [ 21.651265] cfg80211: 5735000 KHz -
5835000 KHz @ KHz), (300 mBi, 3000 mBm)
Jan 5 20:51:30 toporko kernel: [ 21.651269] cfg80211: Updating
information on frequency 5825 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:51:30 toporko kernel: [ 21.651274] cfg80211: 5735000 KHz -
5835000 KHz @ KHz), (300 mBi, 3000 mBm)
Jan 5 20:51:30 toporko kernel: [ 21.651277] cfg80211: Disabling freq 5835 MHz
Jan 5 20:51:30 toporko kernel: [ 21.651279] cfg80211: Disabling freq 5845 MHz
Jan 5 20:51:30 toporko kernel: [ 21.651282] cfg80211: Disabling freq 5855 MHz
Jan 5 20:51:30 toporko kernel: [ 21.651285] cfg80211: Disabling freq 5865 MHz
Jan 5 20:51:30 toporko kernel: [ 21.651287] cfg80211: Disabling freq 5920 MHz
Jan 5 20:51:30 toporko kernel: [ 21.651290] cfg80211: Disabling freq 5940 MHz
Jan 5 20:51:30 toporko kernel: [ 21.651292] cfg80211: Disabling freq 5960 MHz
Jan 5 20:51:30 toporko kernel: [ 21.651295] cfg80211: Disabling freq 5980 MHz
Jan 5 20:51:30 toporko kernel: [ 21.651298] cfg80211: Disabling freq 6040 MHz
Jan 5 20:51:30 toporko kernel: [ 21.651300] cfg80211: Disabling freq 6060 MHz
Jan 5 20:51:30 toporko kernel: [ 21.651303] cfg80211: Disabling freq 6080 MHz
Jan 5 20:51:30 toporko kernel: [ 21.867812] ieee80211 phy0:
Selected rate control algorithm 'minstrel_ht'
Jan 5 20:51:30 toporko kernel: [ 21.869759] Registered led device:
rt2800usb-phy0::radio
Jan 5 20:51:30 toporko kernel: [ 21.869969] Registered led device:
rt2800usb-phy0::assoc
Jan 5 20:51:30 toporko kernel: [ 21.870157] Registered led device:
rt2800usb-phy0::quality
Jan 5 20:51:34 toporko kernel: [ 25.276905] cfg80211: Found new
beacon on frequency: 5745 MHz (Ch 149) on phy0
Then there's nothing network related until around the time AP logged
first association event:
Jan 5 20:51:58 toporko kernel: [ 49.602189] wlan0: authenticate
with 00:1e:52:79:e9:ff (try 1)
Jan 5 20:51:58 toporko kernel: [ 49.602709] wlan0: authenticated
Jan 5 20:52:00 toporko kernel: [ 51.208576] wlan0: associate with
00:1e:52:79:e9:ff (try 1)
Jan 5 20:52:00 toporko kernel: [ 51.209332] wlan0: RX AssocResp
from 00:1e:52:79:e9:ff (capab=0x511 status=0 aid=2)
Jan 5 20:52:00 toporko kernel: [ 51.209338] wlan0: associated
Jan 5 20:52:00 toporko kernel: [ 51.249270] cfg80211: Updating
information on frequency 2412 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:00 toporko kernel: [ 51.249278] cfg80211: 2402000 KHz -
2472000 KHz @ KHz), (300 mBi, 2700 mBm)
Jan 5 20:52:00 toporko kernel: [ 51.249283] cfg80211: Updating
information on frequency 2417 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:00 toporko kernel: [ 51.249287] cfg80211: 2402000 KHz -
2472000 KHz @ KHz), (300 mBi, 2700 mBm)
Jan 5 20:52:00 toporko kernel: [ 51.249291] cfg80211: Updating
information on frequency 2422 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:00 toporko kernel: [ 51.249296] cfg80211: 2402000 KHz -
2472000 KHz @ KHz), (300 mBi, 2700 mBm)
Jan 5 20:52:00 toporko kernel: [ 51.249299] cfg80211: Updating
information on frequency 2427 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:00 toporko kernel: [ 51.249304] cfg80211: 2402000 KHz -
2472000 KHz @ KHz), (300 mBi, 2700 mBm)
Jan 5 20:52:00 toporko kernel: [ 51.249308] cfg80211: Updating
information on frequency 2432 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:00 toporko kernel: [ 51.249312] cfg80211: 2402000 KHz -
2472000 KHz @ KHz), (300 mBi, 2700 mBm)
Jan 5 20:52:00 toporko kernel: [ 51.249316] cfg80211: Updating
information on frequency 2437 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:00 toporko kernel: [ 51.249320] cfg80211: 2402000 KHz -
2472000 KHz @ KHz), (300 mBi, 2700 mBm)
Jan 5 20:52:00 toporko kernel: [ 51.249324] cfg80211: Updating
information on frequency 2442 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:00 toporko kernel: [ 51.249328] cfg80211: 2402000 KHz -
2472000 KHz @ KHz), (300 mBi, 2700 mBm)
Jan 5 20:52:00 toporko kernel: [ 51.249332] cfg80211: Updating
information on frequency 2447 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:00 toporko kernel: [ 51.249337] cfg80211: 2402000 KHz -
2472000 KHz @ KHz), (300 mBi, 2700 mBm)
Jan 5 20:52:00 toporko kernel: [ 51.249340] cfg80211: Updating
information on frequency 2452 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:00 toporko kernel: [ 51.249345] cfg80211: 2402000 KHz -
2472000 KHz @ KHz), (300 mBi, 2700 mBm)
Jan 5 20:52:00 toporko kernel: [ 51.249348] cfg80211: Updating
information on frequency 2457 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:00 toporko kernel: [ 51.249353] cfg80211: 2402000 KHz -
2472000 KHz @ KHz), (300 mBi, 2700 mBm)
Jan 5 20:52:00 toporko kernel: [ 51.249357] cfg80211: Updating
information on frequency 2462 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:00 toporko kernel: [ 51.249361] cfg80211: 2402000 KHz -
2472000 KHz @ KHz), (300 mBi, 2700 mBm)
Jan 5 20:52:00 toporko kernel: [ 51.249365] cfg80211: Disabling freq 2467 MHz
Jan 5 20:52:00 toporko kernel: [ 51.249367] cfg80211: Disabling freq 2472 MHz
Jan 5 20:52:00 toporko kernel: [ 51.249370] cfg80211: Disabling freq 2484 MHz
Jan 5 20:52:00 toporko kernel: [ 51.249374] cfg80211: Updating
information on frequency 5180 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:00 toporko kernel: [ 51.249378] cfg80211: 5170000 KHz -
5250000 KHz @ KHz), (300 mBi, 1700 mBm)
Jan 5 20:52:00 toporko kernel: [ 51.249382] cfg80211: Updating
information on frequency 5190 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:00 toporko kernel: [ 51.249386] cfg80211: 5170000 KHz -
5250000 KHz @ KHz), (300 mBi, 1700 mBm)
Jan 5 20:52:00 toporko kernel: [ 51.249390] cfg80211: Updating
information on frequency 5200 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:00 toporko kernel: [ 51.249394] cfg80211: 5170000 KHz -
5250000 KHz @ KHz), (300 mBi, 1700 mBm)
Jan 5 20:52:00 toporko kernel: [ 51.249398] cfg80211: Updating
information on frequency 5220 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:00 toporko kernel: [ 51.249402] cfg80211: 5170000 KHz -
5250000 KHz @ KHz), (300 mBi, 1700 mBm)
Jan 5 20:52:00 toporko kernel: [ 51.249406] cfg80211: Updating
information on frequency 5230 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:00 toporko kernel: [ 51.249411] cfg80211: 5170000 KHz -
5250000 KHz @ KHz), (300 mBi, 1700 mBm)
Jan 5 20:52:00 toporko kernel: [ 51.249414] cfg80211: Updating
information on frequency 5240 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:00 toporko kernel: [ 51.249419] cfg80211: 5170000 KHz -
5250000 KHz @ KHz), (300 mBi, 1700 mBm)
Jan 5 20:52:00 toporko kernel: [ 51.249423] cfg80211: Updating
information on frequency 5260 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:00 toporko kernel: [ 51.249427] cfg80211: 5250000 KHz -
5330000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:00 toporko kernel: [ 51.249431] cfg80211: Updating
information on frequency 5270 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:00 toporko kernel: [ 51.249435] cfg80211: 5250000 KHz -
5330000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:00 toporko kernel: [ 51.249439] cfg80211: Updating
information on frequency 5280 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:00 toporko kernel: [ 51.249443] cfg80211: 5250000 KHz -
5330000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:00 toporko kernel: [ 51.249447] cfg80211: Updating
information on frequency 5300 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:00 toporko kernel: [ 51.249452] cfg80211: 5250000 KHz -
5330000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:00 toporko kernel: [ 51.249455] cfg80211: Updating
information on frequency 5310 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:00 toporko kernel: [ 51.249460] cfg80211: 5250000 KHz -
5330000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:00 toporko kernel: [ 51.249463] cfg80211: Updating
information on frequency 5320 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:00 toporko kernel: [ 51.249468] cfg80211: 5250000 KHz -
5330000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:00 toporko kernel: [ 51.249472] cfg80211: Updating
information on frequency 5500 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:00 toporko kernel: [ 51.249476] cfg80211: 5490000 KHz -
5600000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:00 toporko kernel: [ 51.249480] cfg80211: Updating
information on frequency 5510 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:00 toporko kernel: [ 51.249484] cfg80211: 5490000 KHz -
5600000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:00 toporko kernel: [ 51.249488] cfg80211: Updating
information on frequency 5520 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:00 toporko kernel: [ 51.249492] cfg80211: 5490000 KHz -
5600000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:00 toporko kernel: [ 51.249496] cfg80211: Updating
information on frequency 5540 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:00 toporko kernel: [ 51.249501] cfg80211: 5490000 KHz -
5600000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:00 toporko kernel: [ 51.249504] cfg80211: Updating
information on frequency 5550 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:00 toporko kernel: [ 51.249509] cfg80211: 5490000 KHz -
5600000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:00 toporko kernel: [ 51.249513] cfg80211: Updating
information on frequency 5560 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:00 toporko kernel: [ 51.249517] cfg80211: 5490000 KHz -
5600000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:00 toporko kernel: [ 51.249521] cfg80211: Updating
information on frequency 5580 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:00 toporko kernel: [ 51.249525] cfg80211: 5490000 KHz -
5600000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:00 toporko kernel: [ 51.249529] cfg80211: Updating
information on frequency 5590 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:00 toporko kernel: [ 51.249533] cfg80211: 5490000 KHz -
5600000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:00 toporko kernel: [ 51.249537] cfg80211: Disabling freq 5600 MHz
Jan 5 20:52:00 toporko kernel: [ 51.249539] cfg80211: Disabling freq 5620 MHz
Jan 5 20:52:00 toporko kernel: [ 51.249542] cfg80211: Disabling freq 5630 MHz
Jan 5 20:52:00 toporko kernel: [ 51.249544] cfg80211: Disabling freq 5640 MHz
Jan 5 20:52:00 toporko kernel: [ 51.249548] cfg80211: Updating
information on frequency 5660 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:00 toporko kernel: [ 51.249552] cfg80211: 5650000 KHz -
5710000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:00 toporko kernel: [ 51.249556] cfg80211: Updating
information on frequency 5670 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:00 toporko kernel: [ 51.249560] cfg80211: 5650000 KHz -
5710000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:00 toporko kernel: [ 51.249564] cfg80211: Updating
information on frequency 5680 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:00 toporko kernel: [ 51.249568] cfg80211: 5650000 KHz -
5710000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:00 toporko kernel: [ 51.249572] cfg80211: Updating
information on frequency 5700 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:00 toporko kernel: [ 51.249577] cfg80211: 5650000 KHz -
5710000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:00 toporko kernel: [ 51.249580] cfg80211: Updating
information on frequency 5745 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:00 toporko kernel: [ 51.249585] cfg80211: 5735000 KHz -
5835000 KHz @ KHz), (300 mBi, 3000 mBm)
Jan 5 20:52:00 toporko kernel: [ 51.249589] cfg80211: Updating
information on frequency 5755 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:00 toporko kernel: [ 51.249593] cfg80211: 5735000 KHz -
5835000 KHz @ KHz), (300 mBi, 3000 mBm)
Jan 5 20:52:00 toporko kernel: [ 51.249597] cfg80211: Updating
information on frequency 5765 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:00 toporko kernel: [ 51.249601] cfg80211: 5735000 KHz -
5835000 KHz @ KHz), (300 mBi, 3000 mBm)
Jan 5 20:52:00 toporko kernel: [ 51.249605] cfg80211: Updating
information on frequency 5785 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:00 toporko kernel: [ 51.249609] cfg80211: 5735000 KHz -
5835000 KHz @ KHz), (300 mBi, 3000 mBm)
Jan 5 20:52:00 toporko kernel: [ 51.249613] cfg80211: Updating
information on frequency 5795 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:00 toporko kernel: [ 51.249618] cfg80211: 5735000 KHz -
5835000 KHz @ KHz), (300 mBi, 3000 mBm)
Jan 5 20:52:00 toporko kernel: [ 51.249621] cfg80211: Updating
information on frequency 5805 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:00 toporko kernel: [ 51.249626] cfg80211: 5735000 KHz -
5835000 KHz @ KHz), (300 mBi, 3000 mBm)
Jan 5 20:52:00 toporko kernel: [ 51.249630] cfg80211: Updating
information on frequency 5825 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:00 toporko kernel: [ 51.249634] cfg80211: 5735000 KHz -
5835000 KHz @ KHz), (300 mBi, 3000 mBm)
Jan 5 20:52:00 toporko kernel: [ 51.249637] cfg80211: Disabling freq 5835 MHz
Jan 5 20:52:00 toporko kernel: [ 51.249640] cfg80211: Disabling freq 5845 MHz
Jan 5 20:52:00 toporko kernel: [ 51.249642] cfg80211: Disabling freq 5855 MHz
Jan 5 20:52:00 toporko kernel: [ 51.249645] cfg80211: Disabling freq 5865 MHz
Jan 5 20:52:00 toporko kernel: [ 51.249648] cfg80211: Disabling freq 5920 MHz
Jan 5 20:52:00 toporko kernel: [ 51.249650] cfg80211: Disabling freq 5940 MHz
Jan 5 20:52:00 toporko kernel: [ 51.249653] cfg80211: Disabling freq 5960 MHz
Jan 5 20:52:00 toporko kernel: [ 51.249655] cfg80211: Disabling freq 5980 MHz
Jan 5 20:52:00 toporko kernel: [ 51.249658] cfg80211: Disabling freq 6040 MHz
Jan 5 20:52:00 toporko kernel: [ 51.249660] cfg80211: Disabling freq 6060 MHz
Jan 5 20:52:00 toporko kernel: [ 51.249663] cfg80211: Disabling freq 6080 MHz
At this point, there was a short failure in connectivity between Linux
side and AP, however both sides recovered from it within seconds:
Jan 5 20:52:21 toporko kernel: [ 71.316029] ieee80211 phy0: wlan0:
No probe response from AP 00:1e:52:79:e9:ff after 500ms,
disconnecting.
Jan 5 20:52:22 toporko kernel: [ 72.946413] cfg80211: All devices
are disconnected, going to restore regulatory settings
Jan 5 20:52:22 toporko kernel: [ 72.946423] cfg80211: Restoring
regulatory settings while preserving user preference for: US
Jan 5 20:52:22 toporko kernel: [ 72.956465] cfg80211: Updating
information on frequency 2412 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:22 toporko kernel: [ 72.956474] cfg80211: 2402000 KHz -
2472000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:22 toporko kernel: [ 72.956478] cfg80211: Updating
information on frequency 2417 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:22 toporko kernel: [ 72.956483] cfg80211: 2402000 KHz -
2472000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:22 toporko kernel: [ 72.956486] cfg80211: Updating
information on frequency 2422 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:22 toporko kernel: [ 72.956491] cfg80211: 2402000 KHz -
2472000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:22 toporko kernel: [ 72.956494] cfg80211: Updating
information on frequency 2427 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:22 toporko kernel: [ 72.956499] cfg80211: 2402000 KHz -
2472000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:22 toporko kernel: [ 72.956503] cfg80211: Updating
information on frequency 2432 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:22 toporko kernel: [ 72.956507] cfg80211: 2402000 KHz -
2472000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:22 toporko kernel: [ 72.956511] cfg80211: Updating
information on frequency 2437 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:22 toporko kernel: [ 72.956515] cfg80211: 2402000 KHz -
2472000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:22 toporko kernel: [ 72.956519] cfg80211: Updating
information on frequency 2442 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:22 toporko kernel: [ 72.956523] cfg80211: 2402000 KHz -
2472000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:22 toporko kernel: [ 72.956527] cfg80211: Updating
information on frequency 2447 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:22 toporko kernel: [ 72.956531] cfg80211: 2402000 KHz -
2472000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:22 toporko kernel: [ 72.956535] cfg80211: Updating
information on frequency 2452 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:22 toporko kernel: [ 72.956539] cfg80211: 2402000 KHz -
2472000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:22 toporko kernel: [ 72.956543] cfg80211: Updating
information on frequency 2457 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:22 toporko kernel: [ 72.956548] cfg80211: 2402000 KHz -
2472000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:22 toporko kernel: [ 72.956551] cfg80211: Updating
information on frequency 2462 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:22 toporko kernel: [ 72.956556] cfg80211: 2402000 KHz -
2472000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:22 toporko kernel: [ 72.956559] cfg80211: Updating
information on frequency 2467 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:22 toporko kernel: [ 72.956564] cfg80211: 2457000 KHz -
2482000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:22 toporko kernel: [ 72.956568] cfg80211: Updating
information on frequency 2472 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:22 toporko kernel: [ 72.956572] cfg80211: 2457000 KHz -
2482000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:22 toporko kernel: [ 72.956576] cfg80211: Updating
information on frequency 2484 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:22 toporko kernel: [ 72.956580] cfg80211: 2474000 KHz -
2494000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:22 toporko kernel: [ 72.956584] cfg80211: Updating
information on frequency 5180 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:22 toporko kernel: [ 72.956589] cfg80211: 5170000 KHz -
5250000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:22 toporko kernel: [ 72.956592] cfg80211: Updating
information on frequency 5190 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:22 toporko kernel: [ 72.956597] cfg80211: 5170000 KHz -
5250000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:22 toporko kernel: [ 72.956601] cfg80211: Updating
information on frequency 5200 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:22 toporko kernel: [ 72.956605] cfg80211: 5170000 KHz -
5250000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:22 toporko kernel: [ 72.956609] cfg80211: Updating
information on frequency 5220 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:22 toporko kernel: [ 72.956613] cfg80211: 5170000 KHz -
5250000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:22 toporko kernel: [ 72.956617] cfg80211: Updating
information on frequency 5230 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:22 toporko kernel: [ 72.956621] cfg80211: 5170000 KHz -
5250000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:22 toporko kernel: [ 72.956625] cfg80211: Updating
information on frequency 5240 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:22 toporko kernel: [ 72.956629] cfg80211: 5170000 KHz -
5250000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:22 toporko kernel: [ 72.956633] cfg80211: Disabling freq 5260 MHz
Jan 5 20:52:22 toporko kernel: [ 72.956636] cfg80211: Disabling freq 5270 MHz
Jan 5 20:52:22 toporko kernel: [ 72.956638] cfg80211: Disabling freq 5280 MHz
Jan 5 20:52:22 toporko kernel: [ 72.956641] cfg80211: Disabling freq 5300 MHz
Jan 5 20:52:22 toporko kernel: [ 72.956643] cfg80211: Disabling freq 5310 MHz
Jan 5 20:52:22 toporko kernel: [ 72.956646] cfg80211: Disabling freq 5320 MHz
Jan 5 20:52:22 toporko kernel: [ 72.956649] cfg80211: Disabling freq 5500 MHz
Jan 5 20:52:22 toporko kernel: [ 72.956651] cfg80211: Disabling freq 5510 MHz
Jan 5 20:52:22 toporko kernel: [ 72.956654] cfg80211: Disabling freq 5520 MHz
Jan 5 20:52:22 toporko kernel: [ 72.956656] cfg80211: Disabling freq 5540 MHz
Jan 5 20:52:22 toporko kernel: [ 72.956659] cfg80211: Disabling freq 5550 MHz
Jan 5 20:52:22 toporko kernel: [ 72.956662] cfg80211: Disabling freq 5560 MHz
Jan 5 20:52:22 toporko kernel: [ 72.956664] cfg80211: Disabling freq 5580 MHz
Jan 5 20:52:22 toporko kernel: [ 72.956667] cfg80211: Disabling freq 5590 MHz
Jan 5 20:52:22 toporko kernel: [ 72.956669] cfg80211: Disabling freq 5600 MHz
Jan 5 20:52:22 toporko kernel: [ 72.956672] cfg80211: Disabling freq 5620 MHz
Jan 5 20:52:22 toporko kernel: [ 72.956674] cfg80211: Disabling freq 5630 MHz
Jan 5 20:52:22 toporko kernel: [ 72.956677] cfg80211: Disabling freq 5640 MHz
Jan 5 20:52:22 toporko kernel: [ 72.956680] cfg80211: Disabling freq 5660 MHz
Jan 5 20:52:22 toporko kernel: [ 72.956682] cfg80211: Disabling freq 5670 MHz
Jan 5 20:52:22 toporko kernel: [ 72.956685] cfg80211: Disabling freq 5680 MHz
Jan 5 20:52:22 toporko kernel: [ 72.956687] cfg80211: Disabling freq 5700 MHz
Jan 5 20:52:22 toporko kernel: [ 72.956691] cfg80211: Updating
information on frequency 5745 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:22 toporko kernel: [ 72.956695] cfg80211: 5735000 KHz -
5835000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:22 toporko kernel: [ 72.956699] cfg80211: Updating
information on frequency 5755 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:22 toporko kernel: [ 72.956703] cfg80211: 5735000 KHz -
5835000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:22 toporko kernel: [ 72.956707] cfg80211: Updating
information on frequency 5765 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:22 toporko kernel: [ 72.956711] cfg80211: 5735000 KHz -
5835000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:22 toporko kernel: [ 72.956715] cfg80211: Updating
information on frequency 5785 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:22 toporko kernel: [ 72.956719] cfg80211: 5735000 KHz -
5835000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:22 toporko kernel: [ 72.956723] cfg80211: Updating
information on frequency 5795 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:22 toporko kernel: [ 72.956728] cfg80211: 5735000 KHz -
5835000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:22 toporko kernel: [ 72.956731] cfg80211: Updating
information on frequency 5805 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:22 toporko kernel: [ 72.956736] cfg80211: 5735000 KHz -
5835000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:22 toporko kernel: [ 72.956740] cfg80211: Updating
information on frequency 5825 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:22 toporko kernel: [ 72.956744] cfg80211: 5735000 KHz -
5835000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:22 toporko kernel: [ 72.956747] cfg80211: Disabling freq 5835 MHz
Jan 5 20:52:22 toporko kernel: [ 72.956750] cfg80211: Disabling freq 5845 MHz
Jan 5 20:52:22 toporko kernel: [ 72.956752] cfg80211: Disabling freq 5855 MHz
Jan 5 20:52:22 toporko kernel: [ 72.956755] cfg80211: Disabling freq 5865 MHz
Jan 5 20:52:22 toporko kernel: [ 72.956757] cfg80211: Disabling freq 5920 MHz
Jan 5 20:52:22 toporko kernel: [ 72.956760] cfg80211: Disabling freq 5940 MHz
Jan 5 20:52:22 toporko kernel: [ 72.956763] cfg80211: Disabling freq 5960 MHz
Jan 5 20:52:22 toporko kernel: [ 72.956765] cfg80211: Disabling freq 5980 MHz
Jan 5 20:52:22 toporko kernel: [ 72.956768] cfg80211: Disabling freq 6040 MHz
Jan 5 20:52:22 toporko kernel: [ 72.956770] cfg80211: Disabling freq 6060 MHz
Jan 5 20:52:22 toporko kernel: [ 72.956773] cfg80211: Disabling freq 6080 MHz
Jan 5 20:52:22 toporko kernel: [ 72.976646] cfg80211: Updating
information on frequency 2412 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:22 toporko kernel: [ 72.976654] cfg80211: 2402000 KHz -
2472000 KHz @ KHz), (300 mBi, 2700 mBm)
Jan 5 20:52:22 toporko kernel: [ 72.976659] cfg80211: Updating
information on frequency 2417 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:22 toporko kernel: [ 72.976663] cfg80211: 2402000 KHz -
2472000 KHz @ KHz), (300 mBi, 2700 mBm)
Jan 5 20:52:22 toporko kernel: [ 72.976667] cfg80211: Updating
information on frequency 2422 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:22 toporko kernel: [ 72.976671] cfg80211: 2402000 KHz -
2472000 KHz @ KHz), (300 mBi, 2700 mBm)
Jan 5 20:52:22 toporko kernel: [ 72.976675] cfg80211: Updating
information on frequency 2427 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:22 toporko kernel: [ 72.976694] cfg80211: 2402000 KHz -
2472000 KHz @ KHz), (300 mBi, 2700 mBm)
Jan 5 20:52:22 toporko kernel: [ 72.976698] cfg80211: Updating
information on frequency 2432 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:22 toporko kernel: [ 72.976702] cfg80211: 2402000 KHz -
2472000 KHz @ KHz), (300 mBi, 2700 mBm)
Jan 5 20:52:22 toporko kernel: [ 72.976706] cfg80211: Updating
information on frequency 2437 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:22 toporko kernel: [ 72.976710] cfg80211: 2402000 KHz -
2472000 KHz @ KHz), (300 mBi, 2700 mBm)
Jan 5 20:52:22 toporko kernel: [ 72.976714] cfg80211: Updating
information on frequency 2442 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:22 toporko kernel: [ 72.976718] cfg80211: 2402000 KHz -
2472000 KHz @ KHz), (300 mBi, 2700 mBm)
Jan 5 20:52:22 toporko kernel: [ 72.976722] cfg80211: Updating
information on frequency 2447 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:22 toporko kernel: [ 72.976726] cfg80211: 2402000 KHz -
2472000 KHz @ KHz), (300 mBi, 2700 mBm)
Jan 5 20:52:22 toporko kernel: [ 72.976730] cfg80211: Updating
information on frequency 2452 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:22 toporko kernel: [ 72.976734] cfg80211: 2402000 KHz -
2472000 KHz @ KHz), (300 mBi, 2700 mBm)
Jan 5 20:52:22 toporko kernel: [ 72.976738] cfg80211: Updating
information on frequency 2457 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:22 toporko kernel: [ 72.976743] cfg80211: 2402000 KHz -
2472000 KHz @ KHz), (300 mBi, 2700 mBm)
Jan 5 20:52:22 toporko kernel: [ 72.976746] cfg80211: Updating
information on frequency 2462 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:22 toporko kernel: [ 72.976751] cfg80211: 2402000 KHz -
2472000 KHz @ KHz), (300 mBi, 2700 mBm)
Jan 5 20:52:22 toporko kernel: [ 72.976754] cfg80211: Disabling freq 2467 MHz
Jan 5 20:52:22 toporko kernel: [ 72.976757] cfg80211: Disabling freq 2472 MHz
Jan 5 20:52:22 toporko kernel: [ 72.976760] cfg80211: Disabling freq 2484 MHz
Jan 5 20:52:22 toporko kernel: [ 72.976763] cfg80211: Updating
information on frequency 5180 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:22 toporko kernel: [ 72.976768] cfg80211: 5170000 KHz -
5250000 KHz @ KHz), (300 mBi, 1700 mBm)
Jan 5 20:52:22 toporko kernel: [ 72.976771] cfg80211: Updating
information on frequency 5190 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:22 toporko kernel: [ 72.976776] cfg80211: 5170000 KHz -
5250000 KHz @ KHz), (300 mBi, 1700 mBm)
Jan 5 20:52:22 toporko kernel: [ 72.976779] cfg80211: Updating
information on frequency 5200 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:22 toporko kernel: [ 72.976784] cfg80211: 5170000 KHz -
5250000 KHz @ KHz), (300 mBi, 1700 mBm)
Jan 5 20:52:22 toporko kernel: [ 72.976788] cfg80211: Updating
information on frequency 5220 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:22 toporko kernel: [ 72.976792] cfg80211: 5170000 KHz -
5250000 KHz @ KHz), (300 mBi, 1700 mBm)
Jan 5 20:52:22 toporko kernel: [ 72.976796] cfg80211: Updating
information on frequency 5230 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:22 toporko kernel: [ 72.976800] cfg80211: 5170000 KHz -
5250000 KHz @ KHz), (300 mBi, 1700 mBm)
Jan 5 20:52:22 toporko kernel: [ 72.976804] cfg80211: Updating
information on frequency 5240 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:22 toporko kernel: [ 72.976808] cfg80211: 5170000 KHz -
5250000 KHz @ KHz), (300 mBi, 1700 mBm)
Jan 5 20:52:22 toporko kernel: [ 72.976812] cfg80211: Updating
information on frequency 5260 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:22 toporko kernel: [ 72.976816] cfg80211: 5250000 KHz -
5330000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:22 toporko kernel: [ 72.976820] cfg80211: Updating
information on frequency 5270 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:22 toporko kernel: [ 72.976824] cfg80211: 5250000 KHz -
5330000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:22 toporko kernel: [ 72.976828] cfg80211: Updating
information on frequency 5280 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:22 toporko kernel: [ 72.976833] cfg80211: 5250000 KHz -
5330000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:22 toporko kernel: [ 72.976836] cfg80211: Updating
information on frequency 5300 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:22 toporko kernel: [ 72.976841] cfg80211: 5250000 KHz -
5330000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:22 toporko kernel: [ 72.976844] cfg80211: Updating
information on frequency 5310 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:22 toporko kernel: [ 72.976849] cfg80211: 5250000 KHz -
5330000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:22 toporko kernel: [ 72.976852] cfg80211: Updating
information on frequency 5320 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:22 toporko kernel: [ 72.976857] cfg80211: 5250000 KHz -
5330000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:22 toporko kernel: [ 72.976860] cfg80211: Updating
information on frequency 5500 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:22 toporko kernel: [ 72.976865] cfg80211: 5490000 KHz -
5600000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:22 toporko kernel: [ 72.976869] cfg80211: Updating
information on frequency 5510 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:22 toporko kernel: [ 72.976873] cfg80211: 5490000 KHz -
5600000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:22 toporko kernel: [ 72.976877] cfg80211: Updating
information on frequency 5520 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:22 toporko kernel: [ 72.976881] cfg80211: 5490000 KHz -
5600000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:22 toporko kernel: [ 72.976885] cfg80211: Updating
information on frequency 5540 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:22 toporko kernel: [ 72.976889] cfg80211: 5490000 KHz -
5600000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:22 toporko kernel: [ 72.976893] cfg80211: Updating
information on frequency 5550 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:22 toporko kernel: [ 72.976897] cfg80211: 5490000 KHz -
5600000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:22 toporko kernel: [ 72.976901] cfg80211: Updating
information on frequency 5560 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:22 toporko kernel: [ 72.976905] cfg80211: 5490000 KHz -
5600000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:22 toporko kernel: [ 72.976909] cfg80211: Updating
information on frequency 5580 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:22 toporko kernel: [ 72.976914] cfg80211: 5490000 KHz -
5600000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:22 toporko kernel: [ 72.976917] cfg80211: Updating
information on frequency 5590 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:22 toporko kernel: [ 72.976922] cfg80211: 5490000 KHz -
5600000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:22 toporko kernel: [ 72.976925] cfg80211: Disabling freq 5600 MHz
Jan 5 20:52:22 toporko kernel: [ 72.976928] cfg80211: Disabling freq 5620 MHz
Jan 5 20:52:22 toporko kernel: [ 72.976930] cfg80211: Disabling freq 5630 MHz
Jan 5 20:52:22 toporko kernel: [ 72.976933] cfg80211: Disabling freq 5640 MHz
Jan 5 20:52:22 toporko kernel: [ 72.976936] cfg80211: Updating
information on frequency 5660 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:22 toporko kernel: [ 72.976940] cfg80211: 5650000 KHz -
5710000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:22 toporko kernel: [ 72.976944] cfg80211: Updating
information on frequency 5670 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:22 toporko kernel: [ 72.976948] cfg80211: 5650000 KHz -
5710000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:22 toporko kernel: [ 72.976952] cfg80211: Updating
information on frequency 5680 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:22 toporko kernel: [ 72.976957] cfg80211: 5650000 KHz -
5710000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:22 toporko kernel: [ 72.976960] cfg80211: Updating
information on frequency 5700 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:22 toporko kernel: [ 72.976965] cfg80211: 5650000 KHz -
5710000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:22 toporko kernel: [ 72.976968] cfg80211: Updating
information on frequency 5745 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:22 toporko kernel: [ 72.976973] cfg80211: 5735000 KHz -
5835000 KHz @ KHz), (300 mBi, 3000 mBm)
Jan 5 20:52:22 toporko kernel: [ 72.976977] cfg80211: Updating
information on frequency 5755 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:22 toporko kernel: [ 72.976981] cfg80211: 5735000 KHz -
5835000 KHz @ KHz), (300 mBi, 3000 mBm)
Jan 5 20:52:22 toporko kernel: [ 72.976985] cfg80211: Updating
information on frequency 5765 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:22 toporko kernel: [ 72.976989] cfg80211: 5735000 KHz -
5835000 KHz @ KHz), (300 mBi, 3000 mBm)
Jan 5 20:52:22 toporko kernel: [ 72.976993] cfg80211: Updating
information on frequency 5785 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:22 toporko kernel: [ 72.976997] cfg80211: 5735000 KHz -
5835000 KHz @ KHz), (300 mBi, 3000 mBm)
Jan 5 20:52:22 toporko kernel: [ 72.977001] cfg80211: Updating
information on frequency 5795 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:22 toporko kernel: [ 72.977005] cfg80211: 5735000 KHz -
5835000 KHz @ KHz), (300 mBi, 3000 mBm)
Jan 5 20:52:22 toporko kernel: [ 72.977009] cfg80211: Updating
information on frequency 5805 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:22 toporko kernel: [ 72.977013] cfg80211: 5735000 KHz -
5835000 KHz @ KHz), (300 mBi, 3000 mBm)
Jan 5 20:52:22 toporko kernel: [ 72.977017] cfg80211: Updating
information on frequency 5825 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:22 toporko kernel: [ 72.977021] cfg80211: 5735000 KHz -
5835000 KHz @ KHz), (300 mBi, 3000 mBm)
Jan 5 20:52:22 toporko kernel: [ 72.977025] cfg80211: Disabling freq 5835 MHz
Jan 5 20:52:22 toporko kernel: [ 72.977027] cfg80211: Disabling freq 5845 MHz
Jan 5 20:52:22 toporko kernel: [ 72.977030] cfg80211: Disabling freq 5855 MHz
Jan 5 20:52:22 toporko kernel: [ 72.977032] cfg80211: Disabling freq 5865 MHz
Jan 5 20:52:22 toporko kernel: [ 72.977035] cfg80211: Disabling freq 5920 MHz
Jan 5 20:52:22 toporko kernel: [ 72.977037] cfg80211: Disabling freq 5940 MHz
Jan 5 20:52:22 toporko kernel: [ 72.977040] cfg80211: Disabling freq 5960 MHz
Jan 5 20:52:22 toporko kernel: [ 72.977043] cfg80211: Disabling freq 5980 MHz
Jan 5 20:52:22 toporko kernel: [ 72.977045] cfg80211: Disabling freq 6040 MHz
Jan 5 20:52:22 toporko kernel: [ 72.977048] cfg80211: Disabling freq 6060 MHz
Jan 5 20:52:22 toporko kernel: [ 72.977050] cfg80211: Disabling freq 6080 MHz
Jan 5 20:52:25 toporko kernel: [ 75.891565] wlan0: authenticate
with 00:1e:52:79:e9:ff (try 1)
Jan 5 20:52:25 toporko kernel: [ 75.892454] wlan0: authenticated
Jan 5 20:52:25 toporko kernel: [ 75.897183] wlan0: associate with
00:1e:52:79:e9:ff (try 1)
Jan 5 20:52:25 toporko kernel: [ 75.897948] wlan0: RX AssocResp
from 00:1e:52:79:e9:ff (capab=0x511 status=0 aid=2)
Jan 5 20:52:25 toporko kernel: [ 75.897955] wlan0: associated
Jan 5 20:52:25 toporko kernel: [ 75.954104] cfg80211: Updating
information on frequency 2412 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:25 toporko kernel: [ 75.954113] cfg80211: 2402000 KHz -
2472000 KHz @ KHz), (300 mBi, 2700 mBm)
Jan 5 20:52:25 toporko kernel: [ 75.954118] cfg80211: Updating
information on frequency 2417 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:25 toporko kernel: [ 75.954122] cfg80211: 2402000 KHz -
2472000 KHz @ KHz), (300 mBi, 2700 mBm)
Jan 5 20:52:25 toporko kernel: [ 75.954126] cfg80211: Updating
information on frequency 2422 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:25 toporko kernel: [ 75.954131] cfg80211: 2402000 KHz -
2472000 KHz @ KHz), (300 mBi, 2700 mBm)
Jan 5 20:52:25 toporko kernel: [ 75.954135] cfg80211: Updating
information on frequency 2427 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:25 toporko kernel: [ 75.954139] cfg80211: 2402000 KHz -
2472000 KHz @ KHz), (300 mBi, 2700 mBm)
Jan 5 20:52:25 toporko kernel: [ 75.954143] cfg80211: Updating
information on frequency 2432 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:25 toporko kernel: [ 75.954148] cfg80211: 2402000 KHz -
2472000 KHz @ KHz), (300 mBi, 2700 mBm)
Jan 5 20:52:25 toporko kernel: [ 75.954151] cfg80211: Updating
information on frequency 2437 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:25 toporko kernel: [ 75.954156] cfg80211: 2402000 KHz -
2472000 KHz @ KHz), (300 mBi, 2700 mBm)
Jan 5 20:52:25 toporko kernel: [ 75.954160] cfg80211: Updating
information on frequency 2442 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:25 toporko kernel: [ 75.954164] cfg80211: 2402000 KHz -
2472000 KHz @ KHz), (300 mBi, 2700 mBm)
Jan 5 20:52:25 toporko kernel: [ 75.954168] cfg80211: Updating
information on frequency 2447 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:25 toporko kernel: [ 75.954173] cfg80211: 2402000 KHz -
2472000 KHz @ KHz), (300 mBi, 2700 mBm)
Jan 5 20:52:25 toporko kernel: [ 75.954176] cfg80211: Updating
information on frequency 2452 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:25 toporko kernel: [ 75.954181] cfg80211: 2402000 KHz -
2472000 KHz @ KHz), (300 mBi, 2700 mBm)
Jan 5 20:52:25 toporko kernel: [ 75.954185] cfg80211: Updating
information on frequency 2457 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:25 toporko kernel: [ 75.954189] cfg80211: 2402000 KHz -
2472000 KHz @ KHz), (300 mBi, 2700 mBm)
Jan 5 20:52:25 toporko kernel: [ 75.954193] cfg80211: Updating
information on frequency 2462 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:25 toporko kernel: [ 75.954198] cfg80211: 2402000 KHz -
2472000 KHz @ KHz), (300 mBi, 2700 mBm)
Jan 5 20:52:25 toporko kernel: [ 75.954202] cfg80211: Disabling freq 2467 MHz
Jan 5 20:52:25 toporko kernel: [ 75.954204] cfg80211: Disabling freq 2472 MHz
Jan 5 20:52:25 toporko kernel: [ 75.954207] cfg80211: Disabling freq 2484 MHz
Jan 5 20:52:25 toporko kernel: [ 75.954211] cfg80211: Updating
information on frequency 5180 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:25 toporko kernel: [ 75.954215] cfg80211: 5170000 KHz -
5250000 KHz @ KHz), (300 mBi, 1700 mBm)
Jan 5 20:52:25 toporko kernel: [ 75.954219] cfg80211: Updating
information on frequency 5190 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:25 toporko kernel: [ 75.954224] cfg80211: 5170000 KHz -
5250000 KHz @ KHz), (300 mBi, 1700 mBm)
Jan 5 20:52:25 toporko kernel: [ 75.954228] cfg80211: Updating
information on frequency 5200 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:25 toporko kernel: [ 75.954232] cfg80211: 5170000 KHz -
5250000 KHz @ KHz), (300 mBi, 1700 mBm)
Jan 5 20:52:25 toporko kernel: [ 75.954236] cfg80211: Updating
information on frequency 5220 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:25 toporko kernel: [ 75.954240] cfg80211: 5170000 KHz -
5250000 KHz @ KHz), (300 mBi, 1700 mBm)
Jan 5 20:52:25 toporko kernel: [ 75.954244] cfg80211: Updating
information on frequency 5230 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:25 toporko kernel: [ 75.954249] cfg80211: 5170000 KHz -
5250000 KHz @ KHz), (300 mBi, 1700 mBm)
Jan 5 20:52:25 toporko kernel: [ 75.954253] cfg80211: Updating
information on frequency 5240 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:25 toporko kernel: [ 75.954257] cfg80211: 5170000 KHz -
5250000 KHz @ KHz), (300 mBi, 1700 mBm)
Jan 5 20:52:25 toporko kernel: [ 75.954261] cfg80211: Updating
information on frequency 5260 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:25 toporko kernel: [ 75.954266] cfg80211: 5250000 KHz -
5330000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:25 toporko kernel: [ 75.954269] cfg80211: Updating
information on frequency 5270 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:25 toporko kernel: [ 75.954274] cfg80211: 5250000 KHz -
5330000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:25 toporko kernel: [ 75.954278] cfg80211: Updating
information on frequency 5280 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:25 toporko kernel: [ 75.954282] cfg80211: 5250000 KHz -
5330000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:25 toporko kernel: [ 75.954286] cfg80211: Updating
information on frequency 5300 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:25 toporko kernel: [ 75.954291] cfg80211: 5250000 KHz -
5330000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:25 toporko kernel: [ 75.954295] cfg80211: Updating
information on frequency 5310 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:25 toporko kernel: [ 75.954299] cfg80211: 5250000 KHz -
5330000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:25 toporko kernel: [ 75.954303] cfg80211: Updating
information on frequency 5320 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:25 toporko kernel: [ 75.954307] cfg80211: 5250000 KHz -
5330000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:25 toporko kernel: [ 75.954311] cfg80211: Updating
information on frequency 5500 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:25 toporko kernel: [ 75.954316] cfg80211: 5490000 KHz -
5600000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:25 toporko kernel: [ 75.954320] cfg80211: Updating
information on frequency 5510 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:25 toporko kernel: [ 75.954324] cfg80211: 5490000 KHz -
5600000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:25 toporko kernel: [ 75.954328] cfg80211: Updating
information on frequency 5520 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:25 toporko kernel: [ 75.954333] cfg80211: 5490000 KHz -
5600000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:25 toporko kernel: [ 75.954337] cfg80211: Updating
information on frequency 5540 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:25 toporko kernel: [ 75.954341] cfg80211: 5490000 KHz -
5600000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:25 toporko kernel: [ 75.954345] cfg80211: Updating
information on frequency 5550 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:25 toporko kernel: [ 75.954349] cfg80211: 5490000 KHz -
5600000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:25 toporko kernel: [ 75.954353] cfg80211: Updating
information on frequency 5560 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:25 toporko kernel: [ 75.954358] cfg80211: 5490000 KHz -
5600000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:25 toporko kernel: [ 75.954362] cfg80211: Updating
information on frequency 5580 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:25 toporko kernel: [ 75.954366] cfg80211: 5490000 KHz -
5600000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:25 toporko kernel: [ 75.954370] cfg80211: Updating
information on frequency 5590 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:25 toporko kernel: [ 75.954375] cfg80211: 5490000 KHz -
5600000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:25 toporko kernel: [ 75.954378] cfg80211: Disabling freq 5600 MHz
Jan 5 20:52:25 toporko kernel: [ 75.954381] cfg80211: Disabling freq 5620 MHz
Jan 5 20:52:25 toporko kernel: [ 75.954383] cfg80211: Disabling freq 5630 MHz
Jan 5 20:52:25 toporko kernel: [ 75.954386] cfg80211: Disabling freq 5640 MHz
Jan 5 20:52:25 toporko kernel: [ 75.954389] cfg80211: Updating
information on frequency 5660 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:25 toporko kernel: [ 75.954394] cfg80211: 5650000 KHz -
5710000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:25 toporko kernel: [ 75.954398] cfg80211: Updating
information on frequency 5670 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:25 toporko kernel: [ 75.954402] cfg80211: 5650000 KHz -
5710000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:25 toporko kernel: [ 75.954406] cfg80211: Updating
information on frequency 5680 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:25 toporko kernel: [ 75.954411] cfg80211: 5650000 KHz -
5710000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:25 toporko kernel: [ 75.954414] cfg80211: Updating
information on frequency 5700 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:25 toporko kernel: [ 75.954419] cfg80211: 5650000 KHz -
5710000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 20:52:25 toporko kernel: [ 75.954423] cfg80211: Updating
information on frequency 5745 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:25 toporko kernel: [ 75.954427] cfg80211: 5735000 KHz -
5835000 KHz @ KHz), (300 mBi, 3000 mBm)
Jan 5 20:52:25 toporko kernel: [ 75.954431] cfg80211: Updating
information on frequency 5755 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:25 toporko kernel: [ 75.954436] cfg80211: 5735000 KHz -
5835000 KHz @ KHz), (300 mBi, 3000 mBm)
Jan 5 20:52:25 toporko kernel: [ 75.954440] cfg80211: Updating
information on frequency 5765 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:25 toporko kernel: [ 75.954444] cfg80211: 5735000 KHz -
5835000 KHz @ KHz), (300 mBi, 3000 mBm)
Jan 5 20:52:25 toporko kernel: [ 75.954448] cfg80211: Updating
information on frequency 5785 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:25 toporko kernel: [ 75.954453] cfg80211: 5735000 KHz -
5835000 KHz @ KHz), (300 mBi, 3000 mBm)
Jan 5 20:52:25 toporko kernel: [ 75.954456] cfg80211: Updating
information on frequency 5795 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:25 toporko kernel: [ 75.954461] cfg80211: 5735000 KHz -
5835000 KHz @ KHz), (300 mBi, 3000 mBm)
Jan 5 20:52:25 toporko kernel: [ 75.954465] cfg80211: Updating
information on frequency 5805 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:25 toporko kernel: [ 75.954469] cfg80211: 5735000 KHz -
5835000 KHz @ KHz), (300 mBi, 3000 mBm)
Jan 5 20:52:25 toporko kernel: [ 75.954473] cfg80211: Updating
information on frequency 5825 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 20:52:25 toporko kernel: [ 75.954478] cfg80211: 5735000 KHz -
5835000 KHz @ KHz), (300 mBi, 3000 mBm)
Jan 5 20:52:25 toporko kernel: [ 75.954481] cfg80211: Disabling freq 5835 MHz
Jan 5 20:52:25 toporko kernel: [ 75.954484] cfg80211: Disabling freq 5845 MHz
Jan 5 20:52:25 toporko kernel: [ 75.954486] cfg80211: Disabling freq 5855 MHz
Jan 5 20:52:25 toporko kernel: [ 75.954489] cfg80211: Disabling freq 5865 MHz
Jan 5 20:52:25 toporko kernel: [ 75.954492] cfg80211: Disabling freq 5920 MHz
Jan 5 20:52:25 toporko kernel: [ 75.954494] cfg80211: Disabling freq 5940 MHz
Jan 5 20:52:25 toporko kernel: [ 75.954497] cfg80211: Disabling freq 5960 MHz
Jan 5 20:52:25 toporko kernel: [ 75.954500] cfg80211: Disabling freq 5980 MHz
Jan 5 20:52:25 toporko kernel: [ 75.954502] cfg80211: Disabling freq 6040 MHz
Jan 5 20:52:25 toporko kernel: [ 75.954505] cfg80211: Disabling freq 6060 MHz
Jan 5 20:52:25 toporko kernel: [ 75.954508] cfg80211: Disabling freq 6080 MHz
Then things go quiet in the debug file until 21:00, at which point
everything goes downhill:
Jan 5 21:00:13 toporko kernel: [ 543.500035] ieee80211 phy0: wlan0:
No probe response from AP 00:1e:52:79:e9:ff after 500ms,
disconnecting.
Jan 5 21:00:15 toporko kernel: [ 545.128547] cfg80211: All devices
are disconnected, going to restore regulatory settings
Jan 5 21:00:15 toporko kernel: [ 545.128560] cfg80211: Restoring
regulatory settings while preserving user preference for: US
Jan 5 21:00:15 toporko kernel: [ 545.139620] cfg80211: Updating
information on frequency 2412 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:15 toporko kernel: [ 545.139629] cfg80211: 2402000 KHz -
2472000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 21:00:15 toporko kernel: [ 545.139633] cfg80211: Updating
information on frequency 2417 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:15 toporko kernel: [ 545.139638] cfg80211: 2402000 KHz -
2472000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 21:00:15 toporko kernel: [ 545.139642] cfg80211: Updating
information on frequency 2422 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:15 toporko kernel: [ 545.139646] cfg80211: 2402000 KHz -
2472000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 21:00:15 toporko kernel: [ 545.139650] cfg80211: Updating
information on frequency 2427 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:15 toporko kernel: [ 545.139655] cfg80211: 2402000 KHz -
2472000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 21:00:15 toporko kernel: [ 545.139658] cfg80211: Updating
information on frequency 2432 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:15 toporko kernel: [ 545.139663] cfg80211: 2402000 KHz -
2472000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 21:00:15 toporko kernel: [ 545.139666] cfg80211: Updating
information on frequency 2437 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:15 toporko kernel: [ 545.139671] cfg80211: 2402000 KHz -
2472000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 21:00:15 toporko kernel: [ 545.139675] cfg80211: Updating
information on frequency 2442 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:15 toporko kernel: [ 545.139679] cfg80211: 2402000 KHz -
2472000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 21:00:15 toporko kernel: [ 545.139683] cfg80211: Updating
information on frequency 2447 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:15 toporko kernel: [ 545.139687] cfg80211: 2402000 KHz -
2472000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 21:00:15 toporko kernel: [ 545.139691] cfg80211: Updating
information on frequency 2452 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:15 toporko kernel: [ 545.139695] cfg80211: 2402000 KHz -
2472000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 21:00:15 toporko kernel: [ 545.139699] cfg80211: Updating
information on frequency 2457 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:15 toporko kernel: [ 545.139704] cfg80211: 2402000 KHz -
2472000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 21:00:15 toporko kernel: [ 545.139707] cfg80211: Updating
information on frequency 2462 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:15 toporko kernel: [ 545.139712] cfg80211: 2402000 KHz -
2472000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 21:00:15 toporko kernel: [ 545.139715] cfg80211: Updating
information on frequency 2467 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:15 toporko kernel: [ 545.139720] cfg80211: 2457000 KHz -
2482000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 21:00:15 toporko kernel: [ 545.139724] cfg80211: Updating
information on frequency 2472 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:15 toporko kernel: [ 545.139728] cfg80211: 2457000 KHz -
2482000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 21:00:15 toporko kernel: [ 545.139732] cfg80211: Updating
information on frequency 2484 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:15 toporko kernel: [ 545.139736] cfg80211: 2474000 KHz -
2494000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 21:00:15 toporko kernel: [ 545.139740] cfg80211: Updating
information on frequency 5180 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:15 toporko kernel: [ 545.139745] cfg80211: 5170000 KHz -
5250000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 21:00:15 toporko kernel: [ 545.139749] cfg80211: Updating
information on frequency 5190 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:15 toporko kernel: [ 545.139753] cfg80211: 5170000 KHz -
5250000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 21:00:15 toporko kernel: [ 545.139757] cfg80211: Updating
information on frequency 5200 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:15 toporko kernel: [ 545.139761] cfg80211: 5170000 KHz -
5250000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 21:00:15 toporko kernel: [ 545.139765] cfg80211: Updating
information on frequency 5220 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:15 toporko kernel: [ 545.139770] cfg80211: 5170000 KHz -
5250000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 21:00:15 toporko kernel: [ 545.139773] cfg80211: Updating
information on frequency 5230 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:15 toporko kernel: [ 545.139778] cfg80211: 5170000 KHz -
5250000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 21:00:15 toporko kernel: [ 545.139781] cfg80211: Updating
information on frequency 5240 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:15 toporko kernel: [ 545.139786] cfg80211: 5170000 KHz -
5250000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 21:00:15 toporko kernel: [ 545.139790] cfg80211: Disabling freq 5260 MHz
Jan 5 21:00:15 toporko kernel: [ 545.139792] cfg80211: Disabling freq 5270 MHz
Jan 5 21:00:15 toporko kernel: [ 545.139795] cfg80211: Disabling freq 5280 MHz
Jan 5 21:00:15 toporko kernel: [ 545.139798] cfg80211: Disabling freq 5300 MHz
Jan 5 21:00:15 toporko kernel: [ 545.139800] cfg80211: Disabling freq 5310 MHz
Jan 5 21:00:15 toporko kernel: [ 545.139803] cfg80211: Disabling freq 5320 MHz
Jan 5 21:00:15 toporko kernel: [ 545.139806] cfg80211: Disabling freq 5500 MHz
Jan 5 21:00:15 toporko kernel: [ 545.139808] cfg80211: Disabling freq 5510 MHz
Jan 5 21:00:15 toporko kernel: [ 545.139811] cfg80211: Disabling freq 5520 MHz
Jan 5 21:00:15 toporko kernel: [ 545.139813] cfg80211: Disabling freq 5540 MHz
Jan 5 21:00:15 toporko kernel: [ 545.139816] cfg80211: Disabling freq 5550 MHz
Jan 5 21:00:15 toporko kernel: [ 545.139819] cfg80211: Disabling freq 5560 MHz
Jan 5 21:00:15 toporko kernel: [ 545.139821] cfg80211: Disabling freq 5580 MHz
Jan 5 21:00:15 toporko kernel: [ 545.139824] cfg80211: Disabling freq 5590 MHz
Jan 5 21:00:15 toporko kernel: [ 545.139827] cfg80211: Disabling freq 5600 MHz
Jan 5 21:00:15 toporko kernel: [ 545.139829] cfg80211: Disabling freq 5620 MHz
Jan 5 21:00:15 toporko kernel: [ 545.139832] cfg80211: Disabling freq 5630 MHz
Jan 5 21:00:15 toporko kernel: [ 545.139834] cfg80211: Disabling freq 5640 MHz
Jan 5 21:00:15 toporko kernel: [ 545.139837] cfg80211: Disabling freq 5660 MHz
Jan 5 21:00:15 toporko kernel: [ 545.139840] cfg80211: Disabling freq 5670 MHz
Jan 5 21:00:15 toporko kernel: [ 545.139842] cfg80211: Disabling freq 5680 MHz
Jan 5 21:00:15 toporko kernel: [ 545.139845] cfg80211: Disabling freq 5700 MHz
Jan 5 21:00:15 toporko kernel: [ 545.139848] cfg80211: Updating
information on frequency 5745 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:15 toporko kernel: [ 545.139853] cfg80211: 5735000 KHz -
5835000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 21:00:15 toporko kernel: [ 545.139856] cfg80211: Updating
information on frequency 5755 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:15 toporko kernel: [ 545.139861] cfg80211: 5735000 KHz -
5835000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 21:00:15 toporko kernel: [ 545.139865] cfg80211: Updating
information on frequency 5765 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:15 toporko kernel: [ 545.139869] cfg80211: 5735000 KHz -
5835000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 21:00:15 toporko kernel: [ 545.139873] cfg80211: Updating
information on frequency 5785 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:15 toporko kernel: [ 545.139877] cfg80211: 5735000 KHz -
5835000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 21:00:15 toporko kernel: [ 545.139881] cfg80211: Updating
information on frequency 5795 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:15 toporko kernel: [ 545.139885] cfg80211: 5735000 KHz -
5835000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 21:00:15 toporko kernel: [ 545.139889] cfg80211: Updating
information on frequency 5805 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:15 toporko kernel: [ 545.139893] cfg80211: 5735000 KHz -
5835000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 21:00:15 toporko kernel: [ 545.139897] cfg80211: Updating
information on frequency 5825 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:15 toporko kernel: [ 545.139926] cfg80211: 5735000 KHz -
5835000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 21:00:15 toporko kernel: [ 545.139930] cfg80211: Disabling freq 5835 MHz
Jan 5 21:00:15 toporko kernel: [ 545.139933] cfg80211: Disabling freq 5845 MHz
Jan 5 21:00:15 toporko kernel: [ 545.139936] cfg80211: Disabling freq 5855 MHz
Jan 5 21:00:15 toporko kernel: [ 545.139938] cfg80211: Disabling freq 5865 MHz
Jan 5 21:00:15 toporko kernel: [ 545.139941] cfg80211: Disabling freq 5920 MHz
Jan 5 21:00:15 toporko kernel: [ 545.139943] cfg80211: Disabling freq 5940 MHz
Jan 5 21:00:15 toporko kernel: [ 545.139945] cfg80211: Disabling freq 5960 MHz
Jan 5 21:00:15 toporko kernel: [ 545.139948] cfg80211: Disabling freq 5980 MHz
Jan 5 21:00:15 toporko kernel: [ 545.139950] cfg80211: Disabling freq 6040 MHz
Jan 5 21:00:15 toporko kernel: [ 545.139953] cfg80211: Disabling freq 6060 MHz
Jan 5 21:00:15 toporko kernel: [ 545.139955] cfg80211: Disabling freq 6080 MHz
Jan 5 21:00:15 toporko kernel: [ 545.161716] cfg80211: Updating
information on frequency 2412 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:15 toporko kernel: [ 545.161726] cfg80211: 2402000 KHz -
2472000 KHz @ KHz), (300 mBi, 2700 mBm)
Jan 5 21:00:15 toporko kernel: [ 545.161730] cfg80211: Updating
information on frequency 2417 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:15 toporko kernel: [ 545.161735] cfg80211: 2402000 KHz -
2472000 KHz @ KHz), (300 mBi, 2700 mBm)
Jan 5 21:00:15 toporko kernel: [ 545.161739] cfg80211: Updating
information on frequency 2422 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:15 toporko kernel: [ 545.161744] cfg80211: 2402000 KHz -
2472000 KHz @ KHz), (300 mBi, 2700 mBm)
Jan 5 21:00:15 toporko kernel: [ 545.161748] cfg80211: Updating
information on frequency 2427 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:15 toporko kernel: [ 545.161752] cfg80211: 2402000 KHz -
2472000 KHz @ KHz), (300 mBi, 2700 mBm)
Jan 5 21:00:15 toporko kernel: [ 545.161756] cfg80211: Updating
information on frequency 2432 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:15 toporko kernel: [ 545.161761] cfg80211: 2402000 KHz -
2472000 KHz @ KHz), (300 mBi, 2700 mBm)
Jan 5 21:00:15 toporko kernel: [ 545.161765] cfg80211: Updating
information on frequency 2437 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:15 toporko kernel: [ 545.161769] cfg80211: 2402000 KHz -
2472000 KHz @ KHz), (300 mBi, 2700 mBm)
Jan 5 21:00:15 toporko kernel: [ 545.161773] cfg80211: Updating
information on frequency 2442 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:15 toporko kernel: [ 545.161778] cfg80211: 2402000 KHz -
2472000 KHz @ KHz), (300 mBi, 2700 mBm)
Jan 5 21:00:15 toporko kernel: [ 545.161782] cfg80211: Updating
information on frequency 2447 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:15 toporko kernel: [ 545.161787] cfg80211: 2402000 KHz -
2472000 KHz @ KHz), (300 mBi, 2700 mBm)
Jan 5 21:00:15 toporko kernel: [ 545.161791] cfg80211: Updating
information on frequency 2452 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:15 toporko kernel: [ 545.161795] cfg80211: 2402000 KHz -
2472000 KHz @ KHz), (300 mBi, 2700 mBm)
Jan 5 21:00:15 toporko kernel: [ 545.161799] cfg80211: Updating
information on frequency 2457 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:15 toporko kernel: [ 545.161804] cfg80211: 2402000 KHz -
2472000 KHz @ KHz), (300 mBi, 2700 mBm)
Jan 5 21:00:15 toporko kernel: [ 545.161808] cfg80211: Updating
information on frequency 2462 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:15 toporko kernel: [ 545.161812] cfg80211: 2402000 KHz -
2472000 KHz @ KHz), (300 mBi, 2700 mBm)
Jan 5 21:00:15 toporko kernel: [ 545.161816] cfg80211: Disabling freq 2467 MHz
Jan 5 21:00:15 toporko kernel: [ 545.161819] cfg80211: Disabling freq 2472 MHz
Jan 5 21:00:15 toporko kernel: [ 545.161822] cfg80211: Disabling freq 2484 MHz
Jan 5 21:00:15 toporko kernel: [ 545.161825] cfg80211: Updating
information on frequency 5180 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:15 toporko kernel: [ 545.161830] cfg80211: 5170000 KHz -
5250000 KHz @ KHz), (300 mBi, 1700 mBm)
Jan 5 21:00:15 toporko kernel: [ 545.161834] cfg80211: Updating
information on frequency 5190 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:15 toporko kernel: [ 545.161839] cfg80211: 5170000 KHz -
5250000 KHz @ KHz), (300 mBi, 1700 mBm)
Jan 5 21:00:15 toporko kernel: [ 545.161843] cfg80211: Updating
information on frequency 5200 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:15 toporko kernel: [ 545.161847] cfg80211: 5170000 KHz -
5250000 KHz @ KHz), (300 mBi, 1700 mBm)
Jan 5 21:00:15 toporko kernel: [ 545.161851] cfg80211: Updating
information on frequency 5220 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:15 toporko kernel: [ 545.161856] cfg80211: 5170000 KHz -
5250000 KHz @ KHz), (300 mBi, 1700 mBm)
Jan 5 21:00:15 toporko kernel: [ 545.161860] cfg80211: Updating
information on frequency 5230 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:15 toporko kernel: [ 545.161865] cfg80211: 5170000 KHz -
5250000 KHz @ KHz), (300 mBi, 1700 mBm)
Jan 5 21:00:15 toporko kernel: [ 545.161868] cfg80211: Updating
information on frequency 5240 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:15 toporko kernel: [ 545.161873] cfg80211: 5170000 KHz -
5250000 KHz @ KHz), (300 mBi, 1700 mBm)
Jan 5 21:00:15 toporko kernel: [ 545.161877] cfg80211: Updating
information on frequency 5260 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:15 toporko kernel: [ 545.161882] cfg80211: 5250000 KHz -
5330000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 21:00:15 toporko kernel: [ 545.161886] cfg80211: Updating
information on frequency 5270 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:15 toporko kernel: [ 545.161890] cfg80211: 5250000 KHz -
5330000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 21:00:15 toporko kernel: [ 545.161894] cfg80211: Updating
information on frequency 5280 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:15 toporko kernel: [ 545.161899] cfg80211: 5250000 KHz -
5330000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 21:00:15 toporko kernel: [ 545.161903] cfg80211: Updating
information on frequency 5300 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:15 toporko kernel: [ 545.161908] cfg80211: 5250000 KHz -
5330000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 21:00:15 toporko kernel: [ 545.161912] cfg80211: Updating
information on frequency 5310 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:15 toporko kernel: [ 545.161916] cfg80211: 5250000 KHz -
5330000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 21:00:15 toporko kernel: [ 545.161920] cfg80211: Updating
information on frequency 5320 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:15 toporko kernel: [ 545.161925] cfg80211: 5250000 KHz -
5330000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 21:00:15 toporko kernel: [ 545.161929] cfg80211: Updating
information on frequency 5500 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:15 toporko kernel: [ 545.161933] cfg80211: 5490000 KHz -
5600000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 21:00:15 toporko kernel: [ 545.161937] cfg80211: Updating
information on frequency 5510 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:15 toporko kernel: [ 545.161942] cfg80211: 5490000 KHz -
5600000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 21:00:15 toporko kernel: [ 545.161946] cfg80211: Updating
information on frequency 5520 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:15 toporko kernel: [ 545.161951] cfg80211: 5490000 KHz -
5600000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 21:00:15 toporko kernel: [ 545.161955] cfg80211: Updating
information on frequency 5540 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:15 toporko kernel: [ 545.161959] cfg80211: 5490000 KHz -
5600000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 21:00:15 toporko kernel: [ 545.161963] cfg80211: Updating
information on frequency 5550 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:15 toporko kernel: [ 545.161968] cfg80211: 5490000 KHz -
5600000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 21:00:15 toporko kernel: [ 545.161972] cfg80211: Updating
information on frequency 5560 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:15 toporko kernel: [ 545.161977] cfg80211: 5490000 KHz -
5600000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 21:00:15 toporko kernel: [ 545.161980] cfg80211: Updating
information on frequency 5580 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:15 toporko kernel: [ 545.161985] cfg80211: 5490000 KHz -
5600000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 21:00:15 toporko kernel: [ 545.161989] cfg80211: Updating
information on frequency 5590 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:15 toporko kernel: [ 545.161994] cfg80211: 5490000 KHz -
5600000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 21:00:15 toporko kernel: [ 545.161997] cfg80211: Disabling freq 5600 MHz
Jan 5 21:00:15 toporko kernel: [ 545.162000] cfg80211: Disabling freq 5620 MHz
Jan 5 21:00:15 toporko kernel: [ 545.162003] cfg80211: Disabling freq 5630 MHz
Jan 5 21:00:15 toporko kernel: [ 545.162005] cfg80211: Disabling freq 5640 MHz
Jan 5 21:00:15 toporko kernel: [ 545.162009] cfg80211: Updating
information on frequency 5660 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:15 toporko kernel: [ 545.162013] cfg80211: 5650000 KHz -
5710000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 21:00:15 toporko kernel: [ 545.162017] cfg80211: Updating
information on frequency 5670 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:15 toporko kernel: [ 545.162022] cfg80211: 5650000 KHz -
5710000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 21:00:15 toporko kernel: [ 545.162026] cfg80211: Updating
information on frequency 5680 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:15 toporko kernel: [ 545.162031] cfg80211: 5650000 KHz -
5710000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 21:00:15 toporko kernel: [ 545.162035] cfg80211: Updating
information on frequency 5700 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:15 toporko kernel: [ 545.162039] cfg80211: 5650000 KHz -
5710000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 21:00:15 toporko kernel: [ 545.162043] cfg80211: Updating
information on frequency 5745 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:15 toporko kernel: [ 545.162048] cfg80211: 5735000 KHz -
5835000 KHz @ KHz), (300 mBi, 3000 mBm)
Jan 5 21:00:15 toporko kernel: [ 545.162052] cfg80211: Updating
information on frequency 5755 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:15 toporko kernel: [ 545.162057] cfg80211: 5735000 KHz -
5835000 KHz @ KHz), (300 mBi, 3000 mBm)
Jan 5 21:00:15 toporko kernel: [ 545.162061] cfg80211: Updating
information on frequency 5765 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:15 toporko kernel: [ 545.162065] cfg80211: 5735000 KHz -
5835000 KHz @ KHz), (300 mBi, 3000 mBm)
Jan 5 21:00:15 toporko kernel: [ 545.162069] cfg80211: Updating
information on frequency 5785 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:15 toporko kernel: [ 545.162074] cfg80211: 5735000 KHz -
5835000 KHz @ KHz), (300 mBi, 3000 mBm)
Jan 5 21:00:15 toporko kernel: [ 545.162078] cfg80211: Updating
information on frequency 5795 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:15 toporko kernel: [ 545.162082] cfg80211: 5735000 KHz -
5835000 KHz @ KHz), (300 mBi, 3000 mBm)
Jan 5 21:00:15 toporko kernel: [ 545.162086] cfg80211: Updating
information on frequency 5805 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:15 toporko kernel: [ 545.162091] cfg80211: 5735000 KHz -
5835000 KHz @ KHz), (300 mBi, 3000 mBm)
Jan 5 21:00:15 toporko kernel: [ 545.162095] cfg80211: Updating
information on frequency 5825 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:15 toporko kernel: [ 545.162100] cfg80211: 5735000 KHz -
5835000 KHz @ KHz), (300 mBi, 3000 mBm)
Jan 5 21:00:15 toporko kernel: [ 545.162103] cfg80211: Disabling freq 5835 MHz
Jan 5 21:00:15 toporko kernel: [ 545.162106] cfg80211: Disabling freq 5845 MHz
Jan 5 21:00:15 toporko kernel: [ 545.162109] cfg80211: Disabling freq 5855 MHz
Jan 5 21:00:15 toporko kernel: [ 545.162111] cfg80211: Disabling freq 5865 MHz
Jan 5 21:00:15 toporko kernel: [ 545.162114] cfg80211: Disabling freq 5920 MHz
Jan 5 21:00:15 toporko kernel: [ 545.162117] cfg80211: Disabling freq 5940 MHz
Jan 5 21:00:15 toporko kernel: [ 545.162119] cfg80211: Disabling freq 5960 MHz
Jan 5 21:00:15 toporko kernel: [ 545.162122] cfg80211: Disabling freq 5980 MHz
Jan 5 21:00:15 toporko kernel: [ 545.162125] cfg80211: Disabling freq 6040 MHz
Jan 5 21:00:15 toporko kernel: [ 545.162128] cfg80211: Disabling freq 6060 MHz
Jan 5 21:00:15 toporko kernel: [ 545.162130] cfg80211: Disabling freq 6080 MHz
Jan 5 21:00:19 toporko kernel: [ 549.851375] wlan0: authenticate
with 00:1e:52:79:e9:ff (try 1)
Jan 5 21:00:19 toporko kernel: [ 549.852340] wlan0: authenticated
Jan 5 21:00:19 toporko kernel: [ 549.857876] wlan0: associate with
00:1e:52:79:e9:ff (try 1)
Jan 5 21:00:19 toporko kernel: [ 549.858652] wlan0: RX AssocResp
from 00:1e:52:79:e9:ff (capab=0x511 status=0 aid=2)
Jan 5 21:00:19 toporko kernel: [ 549.858659] wlan0: associated
Jan 5 21:00:19 toporko kernel: [ 549.899302] cfg80211: Updating
information on frequency 2412 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:19 toporko kernel: [ 549.899311] cfg80211: 2402000 KHz -
2472000 KHz @ KHz), (300 mBi, 2700 mBm)
Jan 5 21:00:19 toporko kernel: [ 549.899315] cfg80211: Updating
information on frequency 2417 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:19 toporko kernel: [ 549.899320] cfg80211: 2402000 KHz -
2472000 KHz @ KHz), (300 mBi, 2700 mBm)
Jan 5 21:00:19 toporko kernel: [ 549.899324] cfg80211: Updating
information on frequency 2422 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:19 toporko kernel: [ 549.899328] cfg80211: 2402000 KHz -
2472000 KHz @ KHz), (300 mBi, 2700 mBm)
Jan 5 21:00:19 toporko kernel: [ 549.899332] cfg80211: Updating
information on frequency 2427 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:19 toporko kernel: [ 549.899337] cfg80211: 2402000 KHz -
2472000 KHz @ KHz), (300 mBi, 2700 mBm)
Jan 5 21:00:19 toporko kernel: [ 549.899340] cfg80211: Updating
information on frequency 2432 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:19 toporko kernel: [ 549.899345] cfg80211: 2402000 KHz -
2472000 KHz @ KHz), (300 mBi, 2700 mBm)
Jan 5 21:00:19 toporko kernel: [ 549.899349] cfg80211: Updating
information on frequency 2437 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:19 toporko kernel: [ 549.899353] cfg80211: 2402000 KHz -
2472000 KHz @ KHz), (300 mBi, 2700 mBm)
Jan 5 21:00:19 toporko kernel: [ 549.899357] cfg80211: Updating
information on frequency 2442 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:19 toporko kernel: [ 549.899361] cfg80211: 2402000 KHz -
2472000 KHz @ KHz), (300 mBi, 2700 mBm)
Jan 5 21:00:19 toporko kernel: [ 549.899365] cfg80211: Updating
information on frequency 2447 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:19 toporko kernel: [ 549.899370] cfg80211: 2402000 KHz -
2472000 KHz @ KHz), (300 mBi, 2700 mBm)
Jan 5 21:00:19 toporko kernel: [ 549.899373] cfg80211: Updating
information on frequency 2452 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:19 toporko kernel: [ 549.899378] cfg80211: 2402000 KHz -
2472000 KHz @ KHz), (300 mBi, 2700 mBm)
Jan 5 21:00:19 toporko kernel: [ 549.899382] cfg80211: Updating
information on frequency 2457 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:19 toporko kernel: [ 549.899386] cfg80211: 2402000 KHz -
2472000 KHz @ KHz), (300 mBi, 2700 mBm)
Jan 5 21:00:19 toporko kernel: [ 549.899390] cfg80211: Updating
information on frequency 2462 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:19 toporko kernel: [ 549.899395] cfg80211: 2402000 KHz -
2472000 KHz @ KHz), (300 mBi, 2700 mBm)
Jan 5 21:00:19 toporko kernel: [ 549.899398] cfg80211: Disabling freq 2467 MHz
Jan 5 21:00:19 toporko kernel: [ 549.899401] cfg80211: Disabling freq 2472 MHz
Jan 5 21:00:19 toporko kernel: [ 549.899404] cfg80211: Disabling freq 2484 MHz
Jan 5 21:00:19 toporko kernel: [ 549.899408] cfg80211: Updating
information on frequency 5180 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:19 toporko kernel: [ 549.899412] cfg80211: 5170000 KHz -
5250000 KHz @ KHz), (300 mBi, 1700 mBm)
Jan 5 21:00:19 toporko kernel: [ 549.899416] cfg80211: Updating
information on frequency 5190 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:19 toporko kernel: [ 549.899420] cfg80211: 5170000 KHz -
5250000 KHz @ KHz), (300 mBi, 1700 mBm)
Jan 5 21:00:19 toporko kernel: [ 549.899424] cfg80211: Updating
information on frequency 5200 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:19 toporko kernel: [ 549.899429] cfg80211: 5170000 KHz -
5250000 KHz @ KHz), (300 mBi, 1700 mBm)
Jan 5 21:00:19 toporko kernel: [ 549.899432] cfg80211: Updating
information on frequency 5220 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:19 toporko kernel: [ 549.899437] cfg80211: 5170000 KHz -
5250000 KHz @ KHz), (300 mBi, 1700 mBm)
Jan 5 21:00:19 toporko kernel: [ 549.899441] cfg80211: Updating
information on frequency 5230 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:19 toporko kernel: [ 549.899445] cfg80211: 5170000 KHz -
5250000 KHz @ KHz), (300 mBi, 1700 mBm)
Jan 5 21:00:19 toporko kernel: [ 549.899449] cfg80211: Updating
information on frequency 5240 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:19 toporko kernel: [ 549.899453] cfg80211: 5170000 KHz -
5250000 KHz @ KHz), (300 mBi, 1700 mBm)
Jan 5 21:00:19 toporko kernel: [ 549.899457] cfg80211: Updating
information on frequency 5260 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:19 toporko kernel: [ 549.899462] cfg80211: 5250000 KHz -
5330000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 21:00:19 toporko kernel: [ 549.899466] cfg80211: Updating
information on frequency 5270 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:19 toporko kernel: [ 549.899470] cfg80211: 5250000 KHz -
5330000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 21:00:19 toporko kernel: [ 549.899474] cfg80211: Updating
information on frequency 5280 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:19 toporko kernel: [ 549.899478] cfg80211: 5250000 KHz -
5330000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 21:00:19 toporko kernel: [ 549.899482] cfg80211: Updating
information on frequency 5300 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:19 toporko kernel: [ 549.899487] cfg80211: 5250000 KHz -
5330000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 21:00:19 toporko kernel: [ 549.899491] cfg80211: Updating
information on frequency 5310 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:19 toporko kernel: [ 549.899495] cfg80211: 5250000 KHz -
5330000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 21:00:19 toporko kernel: [ 549.899499] cfg80211: Updating
information on frequency 5320 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:19 toporko kernel: [ 549.899503] cfg80211: 5250000 KHz -
5330000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 21:00:19 toporko kernel: [ 549.899507] cfg80211: Updating
information on frequency 5500 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:19 toporko kernel: [ 549.899512] cfg80211: 5490000 KHz -
5600000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 21:00:19 toporko kernel: [ 549.899515] cfg80211: Updating
information on frequency 5510 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:19 toporko kernel: [ 549.899520] cfg80211: 5490000 KHz -
5600000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 21:00:19 toporko kernel: [ 549.899524] cfg80211: Updating
information on frequency 5520 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:19 toporko kernel: [ 549.899528] cfg80211: 5490000 KHz -
5600000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 21:00:19 toporko kernel: [ 549.899532] cfg80211: Updating
information on frequency 5540 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:19 toporko kernel: [ 549.899537] cfg80211: 5490000 KHz -
5600000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 21:00:19 toporko kernel: [ 549.899540] cfg80211: Updating
information on frequency 5550 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:19 toporko kernel: [ 549.899545] cfg80211: 5490000 KHz -
5600000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 21:00:19 toporko kernel: [ 549.899549] cfg80211: Updating
information on frequency 5560 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:19 toporko kernel: [ 549.899553] cfg80211: 5490000 KHz -
5600000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 21:00:19 toporko kernel: [ 549.899557] cfg80211: Updating
information on frequency 5580 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:19 toporko kernel: [ 549.899561] cfg80211: 5490000 KHz -
5600000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 21:00:19 toporko kernel: [ 549.899565] cfg80211: Updating
information on frequency 5590 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:19 toporko kernel: [ 549.899570] cfg80211: 5490000 KHz -
5600000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 21:00:19 toporko kernel: [ 549.899573] cfg80211: Disabling freq 5600 MHz
Jan 5 21:00:19 toporko kernel: [ 549.899576] cfg80211: Disabling freq 5620 MHz
Jan 5 21:00:19 toporko kernel: [ 549.899579] cfg80211: Disabling freq 5630 MHz
Jan 5 21:00:19 toporko kernel: [ 549.899581] cfg80211: Disabling freq 5640 MHz
Jan 5 21:00:19 toporko kernel: [ 549.899584] cfg80211: Updating
information on frequency 5660 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:19 toporko kernel: [ 549.899589] cfg80211: 5650000 KHz -
5710000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 21:00:19 toporko kernel: [ 549.899593] cfg80211: Updating
information on frequency 5670 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:19 toporko kernel: [ 549.899597] cfg80211: 5650000 KHz -
5710000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 21:00:19 toporko kernel: [ 549.899601] cfg80211: Updating
information on frequency 5680 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:19 toporko kernel: [ 549.899606] cfg80211: 5650000 KHz -
5710000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 21:00:19 toporko kernel: [ 549.899609] cfg80211: Updating
information on frequency 5700 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:19 toporko kernel: [ 549.899614] cfg80211: 5650000 KHz -
5710000 KHz @ KHz), (300 mBi, 2000 mBm)
Jan 5 21:00:19 toporko kernel: [ 549.899618] cfg80211: Updating
information on frequency 5745 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:19 toporko kernel: [ 549.899622] cfg80211: 5735000 KHz -
5835000 KHz @ KHz), (300 mBi, 3000 mBm)
Jan 5 21:00:19 toporko kernel: [ 549.899626] cfg80211: Updating
information on frequency 5755 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:19 toporko kernel: [ 549.899631] cfg80211: 5735000 KHz -
5835000 KHz @ KHz), (300 mBi, 3000 mBm)
Jan 5 21:00:19 toporko kernel: [ 549.899634] cfg80211: Updating
information on frequency 5765 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:19 toporko kernel: [ 549.899639] cfg80211: 5735000 KHz -
5835000 KHz @ KHz), (300 mBi, 3000 mBm)
Jan 5 21:00:19 toporko kernel: [ 549.899643] cfg80211: Updating
information on frequency 5785 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:19 toporko kernel: [ 549.899647] cfg80211: 5735000 KHz -
5835000 KHz @ KHz), (300 mBi, 3000 mBm)
Jan 5 21:00:19 toporko kernel: [ 549.899651] cfg80211: Updating
information on frequency 5795 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:19 toporko kernel: [ 549.899656] cfg80211: 5735000 KHz -
5835000 KHz @ KHz), (300 mBi, 3000 mBm)
Jan 5 21:00:19 toporko kernel: [ 549.899659] cfg80211: Updating
information on frequency 5805 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:19 toporko kernel: [ 549.899664] cfg80211: 5735000 KHz -
5835000 KHz @ KHz), (300 mBi, 3000 mBm)
Jan 5 21:00:19 toporko kernel: [ 549.899668] cfg80211: Updating
information on frequency 5825 MHz for 20 a MHz width channel with
regulatory rule:
Jan 5 21:00:19 toporko kernel: [ 549.899672] cfg80211: 5735000 KHz -
5835000 KHz @ KHz), (300 mBi, 3000 mBm)
Jan 5 21:00:19 toporko kernel: [ 549.899675] cfg80211: Disabling freq 5835 MHz
Jan 5 21:00:19 toporko kernel: [ 549.899678] cfg80211: Disabling freq 5845 MHz
Jan 5 21:00:19 toporko kernel: [ 549.899681] cfg80211: Disabling freq 5855 MHz
Jan 5 21:00:19 toporko kernel: [ 549.899684] cfg80211: Disabling freq 5865 MHz
Jan 5 21:00:19 toporko kernel: [ 549.899686] cfg80211: Disabling freq 5920 MHz
Jan 5 21:00:19 toporko kernel: [ 549.899689] cfg80211: Disabling freq 5940 MHz
Jan 5 21:00:19 toporko kernel: [ 549.899692] cfg80211: Disabling freq 5960 MHz
Jan 5 21:00:19 toporko kernel: [ 549.899694] cfg80211: Disabling freq 5980 MHz
Jan 5 21:00:19 toporko kernel: [ 549.899697] cfg80211: Disabling freq 6040 MHz
Jan 5 21:00:19 toporko kernel: [ 549.899700] cfg80211: Disabling freq 6060 MHz
Jan 5 21:00:19 toporko kernel: [ 549.899703] cfg80211: Disabling freq 6080 MHz
Jan 5 21:03:36 toporko kernel: [ 746.504034] ieee80211 phy0: wlan0:
No probe response from AP 00:1e:52:79:e9:ff after 500ms,
disconnecting.
And this stuff repeats over and over again in the debug log, until
finally these lines are logged:
Jan 5 21:12:33 toporko kernel: [ 1283.152098] wlan0: authenticate
with 00:1e:52:79:e9:ff (try 1)
Jan 5 21:12:33 toporko kernel: [ 1283.352027] wlan0: authenticate
with 00:1e:52:79:e9:ff (try 2)
Jan 5 21:12:33 toporko kernel: [ 1283.552026] wlan0: authenticate
with 00:1e:52:79:e9:ff (try 3)
Jan 5 21:12:33 toporko kernel: [ 1283.752028] wlan0: authentication
with 00:1e:52:79:e9:ff timed out
^ permalink raw reply
* Re: [rt2x00-users] Linksys WUSB600N v1 disconnecting from AP
From: Aleksandar Milivojevic @ 2011-01-06 4:11 UTC (permalink / raw)
To: Wolfgang Kufner; +Cc: Luis Correia, Luis R. Rodriguez, linux-wireless, users
In-Reply-To: <AANLkTimdEcj4k09ZyHQTXnbaeNj4CCrAm=mRTw+R5j6L@mail.gmail.com>
On Wed, Jan 5, 2011 at 2:32 AM, Wolfgang Kufner
<wolfgang.kufner@gmail.com> wrote:
> Hi Aleksandar,
>
> On Wed, Jan 5, 2011 at 7:57 AM, Aleksandar Milivojevic
> <alex@milivojevic.org> wrote:
>> On Tue, Jan 4, 2011 at 2:31 PM, Wolfgang Kufner
>> <wolfgang.kufner@gmail.com> wrote:
>>> Maybe a fix for this issue is already in compat-wireless.
>>
>> Might be. I'll try compiling linux-next and see if it helps (could be
>> few days, I need to setup this box for the task first).
>>
>
> There is no need to compile linux-next. Just compile the latest
> bleeding edge compat-wireless tarball from
> http://wireless.kernel.org/en/users/Download. It is only 4MB in size
> and reflects the latest on the linux-next.git tree and takes only a
> few minutes to compile.
Ah, thanks. That makes it much easier and faster :-)
Doing "make" worked, however "make install" failed with:
make -C /lib/modules/2.6.35-24-generic/build
M=/home/alex/compat-wireless-2010-12-26 modules
make[1]: Entering directory `/usr/src/linux-headers-2.6.35-24-generic'
CC [M] /home/alex/compat-wireless-2010-12-26/drivers/net/wireless/rtlwifi/base.o
/home/alex/compat-wireless-2010-12-26/drivers/net/wireless/rtlwifi/base.c:
In function ‘_rtl_init_deferred_work’:
/home/alex/compat-wireless-2010-12-26/drivers/net/wireless/rtlwifi/base.c:229:
error: implicit declaration of function ‘alloc_workqueue’
/home/alex/compat-wireless-2010-12-26/drivers/net/wireless/rtlwifi/base.c:229:
warning: assignment makes pointer from integer without a cast
make[4]: *** [/home/alex/compat-wireless-2010-12-26/drivers/net/wireless/rtlwifi/base.o]
Error 1
make[3]: *** [/home/alex/compat-wireless-2010-12-26/drivers/net/wireless/rtlwifi]
Error 2
make[2]: *** [/home/alex/compat-wireless-2010-12-26/drivers/net/wireless]
Error 2
make[1]: *** [_module_/home/alex/compat-wireless-2010-12-26] Error 2
make[1]: Leaving directory `/usr/src/linux-headers-2.6.35-24-generic'
make: *** [modules] Error 2
I'll try selecting only subset of drivers, and see if I'll have better luck.
^ permalink raw reply
* [PATCH 4/5] ath9k: Ensure xmit makes progress.
From: greearb @ 2011-01-06 0:15 UTC (permalink / raw)
To: linux-wireless; +Cc: ath9k-devel, Ben Greear
In-Reply-To: <1294272919-7068-1-git-send-email-greearb@candelatech.com>
From: Ben Greear <greearb@candelatech.com>
If the txq->axq_q is empty, the code was breaking out
of the tx_processq logic without checking to see if it should
transmit other queued AMPDU frames (txq->axq_acq).
This patches ensures ath_txq_schedule is called.
This needs review.
Signed-off-by: Ben Greear <greearb@candelatech.com>
---
:100644 100644 c769037... 2248e47... M drivers/net/wireless/ath/ath9k/xmit.c
drivers/net/wireless/ath/ath9k/xmit.c | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/drivers/net/wireless/ath/ath9k/xmit.c b/drivers/net/wireless/ath/ath9k/xmit.c
index c769037..2248e47 100644
--- a/drivers/net/wireless/ath/ath9k/xmit.c
+++ b/drivers/net/wireless/ath/ath9k/xmit.c
@@ -1999,6 +1999,8 @@ static void ath_tx_processq(struct ath_softc *sc, struct ath_txq *txq)
spin_lock_bh(&txq->axq_lock);
if (list_empty(&txq->axq_q)) {
txq->axq_link = NULL;
+ if (sc->sc_flags & SC_OP_TXAGGR)
+ ath_txq_schedule(sc, txq);
spin_unlock_bh(&txq->axq_lock);
break;
}
--
1.7.2.3
^ permalink raw reply related
* [PATCH 2/5] ath9k: Add more information to debugfs xmit file.
From: greearb @ 2011-01-06 0:15 UTC (permalink / raw)
To: linux-wireless; +Cc: ath9k-devel, Ben Greear
In-Reply-To: <1294272919-7068-1-git-send-email-greearb@candelatech.com>
From: Ben Greear <greearb@candelatech.com>
Should help debug strange tx lockup type issues.
Signed-off-by: Ben Greear <greearb@candelatech.com>
---
:100644 100644 5075faa... 577bc5a... M drivers/net/wireless/ath/ath9k/debug.c
:100644 100644 1e5078b... cd2db3f... M drivers/net/wireless/ath/ath9k/debug.h
:100644 100644 e3d2ebf... 1fcc1a5... M drivers/net/wireless/ath/ath9k/mac.c
:100644 100644 332d1fe... c769037... M drivers/net/wireless/ath/ath9k/xmit.c
drivers/net/wireless/ath/ath9k/debug.c | 29 +++++++++++++++++++++++++++--
drivers/net/wireless/ath/ath9k/debug.h | 6 ++++++
drivers/net/wireless/ath/ath9k/mac.c | 8 ++++++++
drivers/net/wireless/ath/ath9k/xmit.c | 1 +
4 files changed, 42 insertions(+), 2 deletions(-)
diff --git a/drivers/net/wireless/ath/ath9k/debug.c b/drivers/net/wireless/ath/ath9k/debug.c
index 5075faa..577bc5a 100644
--- a/drivers/net/wireless/ath/ath9k/debug.c
+++ b/drivers/net/wireless/ath/ath9k/debug.c
@@ -599,13 +599,25 @@ do { \
(unsigned int)(sc->tx.txq[WME_AC_VO].elem)); \
} while(0)
+#define PRQLE(str, elem) \
+do { \
+ len += snprintf(buf + len, size - len, \
+ "%s%13i%11i%10i%10i\n", str, \
+ list_empty(&sc->tx.txq[WME_AC_BE].elem), \
+ list_empty(&sc->tx.txq[WME_AC_BK].elem), \
+ list_empty(&sc->tx.txq[WME_AC_VI].elem), \
+ list_empty(&sc->tx.txq[WME_AC_VO].elem)); \
+} while (0)
+
static ssize_t read_file_xmit(struct file *file, char __user *user_buf,
size_t count, loff_t *ppos)
{
struct ath_softc *sc = file->private_data;
char *buf;
- unsigned int len = 0, size = 2048;
+ unsigned int len = 0, size = 4000;
+ int i;
ssize_t retval = 0;
+ char tmp[32];
buf = kzalloc(size, GFP_KERNEL);
if (buf == NULL)
@@ -628,13 +640,26 @@ static ssize_t read_file_xmit(struct file *file, char __user *user_buf,
PR("DELIM Underrun: ", delim_underrun);
PR("TX-Pkts-All: ", tx_pkts_all);
PR("TX-Bytes-All: ", tx_bytes_all);
+ PR("hw-put-tx-buf: ", puttxbuf);
+ PR("hw-tx-start: ", txstart);
+ PR("hw-tx-proc-desc: ", txprocdesc);
PRX("axq-qnum: ", axq_qnum);
PRX("axq-depth: ", axq_depth);
+ PRX("axq-ampdu_depth: ", axq_ampdu_depth);
PRX("axq-stopped ", stopped);
PRX("tx-in-progress ", axq_tx_inprogress);
PRX("pending-frames ", pending_frames);
-
+ PRX("txq_headidx: ", txq_headidx);
+ PRX("txq_tailidx: ", txq_headidx);
+
+ PRQLE("axq_q empty: ", axq_q);
+ PRQLE("axq_acq empty: ", axq_acq);
+ PRQLE("txq_fifo_pending: ", txq_fifo_pending);
+ for (i = 0; i < ATH_TXFIFO_DEPTH; i++) {
+ snprintf(tmp, sizeof(tmp) - 1, "txq_fifo[%i] empty: ", i);
+ PRQLE(tmp, txq_fifo[i]);
+ }
if (len > size)
len = size;
diff --git a/drivers/net/wireless/ath/ath9k/debug.h b/drivers/net/wireless/ath/ath9k/debug.h
index 1e5078b..cd2db3f 100644
--- a/drivers/net/wireless/ath/ath9k/debug.h
+++ b/drivers/net/wireless/ath/ath9k/debug.h
@@ -102,6 +102,9 @@ struct ath_interrupt_stats {
* @desc_cfg_err: Descriptor configuration errors
* @data_urn: TX data underrun errors
* @delim_urn: TX delimiter underrun errors
+ * @puttxbuf: Number of times hardware was given txbuf to write.
+ * @txstart: Number of times hardware was told to start tx.
+ * @txprocdesc: Number of times tx descriptor was processed
*/
struct ath_tx_stats {
u32 tx_pkts_all;
@@ -119,6 +122,9 @@ struct ath_tx_stats {
u32 desc_cfg_err;
u32 data_underrun;
u32 delim_underrun;
+ u32 puttxbuf;
+ u32 txstart;
+ u32 txprocdesc;
};
/**
diff --git a/drivers/net/wireless/ath/ath9k/mac.c b/drivers/net/wireless/ath/ath9k/mac.c
index e3d2ebf..1fcc1a5 100644
--- a/drivers/net/wireless/ath/ath9k/mac.c
+++ b/drivers/net/wireless/ath/ath9k/mac.c
@@ -16,6 +16,8 @@
#include "hw.h"
#include "hw-ops.h"
+#include "debug.h"
+#include "ath9k.h"
static void ath9k_hw_set_txq_interrupts(struct ath_hw *ah,
struct ath9k_tx_queue_info *qi)
@@ -50,12 +52,18 @@ EXPORT_SYMBOL(ath9k_hw_gettxbuf);
void ath9k_hw_puttxbuf(struct ath_hw *ah, u32 q, u32 txdp)
{
+ struct ath_wiphy *aphy = ah->hw->priv;
+ struct ath_softc *sc = aphy->sc;
+ TX_STAT_INC(q, puttxbuf);
REG_WRITE(ah, AR_QTXDP(q), txdp);
}
EXPORT_SYMBOL(ath9k_hw_puttxbuf);
void ath9k_hw_txstart(struct ath_hw *ah, u32 q)
{
+ struct ath_wiphy *aphy = ah->hw->priv;
+ struct ath_softc *sc = aphy->sc;
+ TX_STAT_INC(q, txstart);
ath_dbg(ath9k_hw_common(ah), ATH_DBG_QUEUE,
"Enable TXE on queue: %u\n", q);
REG_WRITE(ah, AR_Q_TXE, 1 << q);
diff --git a/drivers/net/wireless/ath/ath9k/xmit.c b/drivers/net/wireless/ath/ath9k/xmit.c
index 332d1fe..c769037 100644
--- a/drivers/net/wireless/ath/ath9k/xmit.c
+++ b/drivers/net/wireless/ath/ath9k/xmit.c
@@ -2033,6 +2033,7 @@ static void ath_tx_processq(struct ath_softc *sc, struct ath_txq *txq)
spin_unlock_bh(&txq->axq_lock);
break;
}
+ TX_STAT_INC(txq->axq_qnum, txprocdesc);
/*
* Remove ath_buf's of the same transmit unit from txq,
--
1.7.2.3
^ permalink raw reply related
* [PATCH 5/5] ath9k: Add counters to distinquish AMPDU enqueues.
From: greearb @ 2011-01-06 0:15 UTC (permalink / raw)
To: linux-wireless; +Cc: ath9k-devel, Ben Greear
In-Reply-To: <1294272919-7068-1-git-send-email-greearb@candelatech.com>
From: Ben Greear <greearb@candelatech.com>
Show counters for pkts sent directly to hardware and
those queued in software.
Signed-off-by: Ben Greear <greearb@candelatech.com>
---
:100644 100644 577bc5a... faf84e4... M drivers/net/wireless/ath/ath9k/debug.c
:100644 100644 cd2db3f... 980c9fa... M drivers/net/wireless/ath/ath9k/debug.h
:100644 100644 2248e47... 3aae523... M drivers/net/wireless/ath/ath9k/xmit.c
drivers/net/wireless/ath/ath9k/debug.c | 3 ++-
drivers/net/wireless/ath/ath9k/debug.h | 6 ++++--
drivers/net/wireless/ath/ath9k/xmit.c | 3 ++-
3 files changed, 8 insertions(+), 4 deletions(-)
diff --git a/drivers/net/wireless/ath/ath9k/debug.c b/drivers/net/wireless/ath/ath9k/debug.c
index 577bc5a..faf84e4 100644
--- a/drivers/net/wireless/ath/ath9k/debug.c
+++ b/drivers/net/wireless/ath/ath9k/debug.c
@@ -628,7 +628,8 @@ static ssize_t read_file_xmit(struct file *file, char __user *user_buf,
PR("MPDUs Queued: ", queued);
PR("MPDUs Completed: ", completed);
PR("Aggregates: ", a_aggr);
- PR("AMPDUs Queued: ", a_queued);
+ PR("AMPDUs Queued HW:", a_queued_hw);
+ PR("AMPDUs Queued SW:", a_queued_sw);
PR("AMPDUs Completed:", a_completed);
PR("AMPDUs Retried: ", a_retries);
PR("AMPDUs XRetried: ", a_xretries);
diff --git a/drivers/net/wireless/ath/ath9k/debug.h b/drivers/net/wireless/ath/ath9k/debug.h
index cd2db3f..980c9fa 100644
--- a/drivers/net/wireless/ath/ath9k/debug.h
+++ b/drivers/net/wireless/ath/ath9k/debug.h
@@ -89,7 +89,8 @@ struct ath_interrupt_stats {
* @queued: Total MPDUs (non-aggr) queued
* @completed: Total MPDUs (non-aggr) completed
* @a_aggr: Total no. of aggregates queued
- * @a_queued: Total AMPDUs queued
+ * @a_queued_hw: Total AMPDUs queued to hardware
+ * @a_queued_sw: Total AMPDUs queued to software queues
* @a_completed: Total AMPDUs completed
* @a_retries: No. of AMPDUs retried (SW)
* @a_xretries: No. of AMPDUs dropped due to xretries
@@ -112,7 +113,8 @@ struct ath_tx_stats {
u32 queued;
u32 completed;
u32 a_aggr;
- u32 a_queued;
+ u32 a_queued_hw;
+ u32 a_queued_sw;
u32 a_completed;
u32 a_retries;
u32 a_xretries;
diff --git a/drivers/net/wireless/ath/ath9k/xmit.c b/drivers/net/wireless/ath/ath9k/xmit.c
index 2248e47..3aae523 100644
--- a/drivers/net/wireless/ath/ath9k/xmit.c
+++ b/drivers/net/wireless/ath/ath9k/xmit.c
@@ -1335,7 +1335,6 @@ static void ath_tx_send_ampdu(struct ath_softc *sc, struct ath_atx_tid *tid,
struct list_head bf_head;
bf->bf_state.bf_type |= BUF_AMPDU;
- TX_STAT_INC(txctl->txq->axq_qnum, a_queued);
/*
* Do not queue to h/w when any of the following conditions is true:
@@ -1351,6 +1350,7 @@ static void ath_tx_send_ampdu(struct ath_softc *sc, struct ath_atx_tid *tid,
* Add this frame to software queue for scheduling later
* for aggregation.
*/
+ TX_STAT_INC(txctl->txq->axq_qnum, a_queued_sw);
list_add_tail(&bf->list, &tid->buf_q);
ath_tx_queue_tid(txctl->txq, tid);
return;
@@ -1364,6 +1364,7 @@ static void ath_tx_send_ampdu(struct ath_softc *sc, struct ath_atx_tid *tid,
ath_tx_addto_baw(sc, tid, fi->seqno);
/* Queue to h/w without aggregation */
+ TX_STAT_INC(txctl->txq->axq_qnum, a_queued_hw);
bf->bf_lastbf = bf;
ath_buf_set_rate(sc, bf, fi->framelen);
ath_tx_txqaddbuf(sc, txctl->txq, &bf_head);
--
1.7.2.3
^ permalink raw reply related
* [PATCH 3/5] ath9k: Remove un-used member from ath_node.
From: greearb @ 2011-01-06 0:15 UTC (permalink / raw)
To: linux-wireless; +Cc: ath9k-devel, Ben Greear
In-Reply-To: <1294272919-7068-1-git-send-email-greearb@candelatech.com>
From: Ben Greear <greearb@candelatech.com>
Signed-off-by: Ben Greear <greearb@candelatech.com>
---
:100644 100644 2c31f51... 8855539... M drivers/net/wireless/ath/ath9k/ath9k.h
drivers/net/wireless/ath/ath9k/ath9k.h | 1 -
1 files changed, 0 insertions(+), 1 deletions(-)
diff --git a/drivers/net/wireless/ath/ath9k/ath9k.h b/drivers/net/wireless/ath/ath9k/ath9k.h
index 2c31f51..8855539 100644
--- a/drivers/net/wireless/ath/ath9k/ath9k.h
+++ b/drivers/net/wireless/ath/ath9k/ath9k.h
@@ -342,7 +342,6 @@ struct ath_vif {
__le64 tsf_adjust; /* TSF adjustment for staggered beacons */
enum nl80211_iftype av_opmode;
struct ath_buf *av_bcbuf;
- struct ath_tx_control av_btxctl;
u8 bssid[ETH_ALEN]; /* current BSSID from config_interface */
};
--
1.7.2.3
^ permalink raw reply related
* [PATCH 1/5] ath9k: Initialize ah->hw
From: greearb @ 2011-01-06 0:15 UTC (permalink / raw)
To: linux-wireless; +Cc: ath9k-devel, Ben Greear
From: Ben Greear <greearb@candelatech.com>
Previous code left it NULL.
Signed-off-by: Ben Greear <greearb@candelatech.com>
---
:100644 100644 b0e5e716.. 9ca87de... M drivers/net/wireless/ath/ath9k/init.c
drivers/net/wireless/ath/ath9k/init.c | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/drivers/net/wireless/ath/ath9k/init.c b/drivers/net/wireless/ath/ath9k/init.c
index b0e5e716..9ca87de 100644
--- a/drivers/net/wireless/ath/ath9k/init.c
+++ b/drivers/net/wireless/ath/ath9k/init.c
@@ -536,6 +536,7 @@ static int ath9k_init_softc(u16 devid, struct ath_softc *sc, u16 subsysid,
if (!ah)
return -ENOMEM;
+ ah->hw = sc->hw;
ah->hw_version.devid = devid;
ah->hw_version.subsysid = subsysid;
sc->sc_ah = ah;
--
1.7.2.3
^ permalink raw reply related
* Re: [PATCH 1/4] compat-wireless: fix power managemnet backport
From: Luis R. Rodriguez @ 2011-01-05 23:21 UTC (permalink / raw)
To: Hauke Mehrtens
Cc: Luis Rodriguez, linux-wireless@vger.kernel.org,
mcgrof@infradead.org
In-Reply-To: <1293891981-22151-1-git-send-email-hauke@hauke-m.de>
On Sat, Jan 01, 2011 at 06:26:18AM -0800, Hauke Mehrtens wrote:
> Include backported power management support under the same condition as
> the new one is integrated.
>
> Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Applied and pushed all, thanks!
Luis
^ permalink raw reply
* Re: [PATCH 1/3] compat: backport pci_wake_from_d3
From: Luis R. Rodriguez @ 2011-01-05 23:20 UTC (permalink / raw)
To: Hauke Mehrtens
Cc: Luis Rodriguez, linux-wireless@vger.kernel.org,
mcgrof@infradead.org
In-Reply-To: <1293891815-22087-1-git-send-email-hauke@hauke-m.de>
On Sat, Jan 01, 2011 at 06:23:33AM -0800, Hauke Mehrtens wrote:
> This is needed by atl1c.
Applied and pushed, thanks!
Luis
^ permalink raw reply
* Re: [PATCH] mac80211: Push idle state to driver before stop
From: Luis R. Rodriguez @ 2011-01-05 22:57 UTC (permalink / raw)
To: Paul Stewart
Cc: Luis Rodriguez, Johannes Berg, Amod Bodas,
linux-wireless@vger.kernel.org
In-Reply-To: <20110105182617.GB10391@tux>
On Wed, Jan 5, 2011 at 10:26 AM, Luis R. Rodriguez
<lrodriguez@atheros.com> wrote:
> On Tue, Jan 04, 2011 at 02:29:53PM -0800, Paul Stewart wrote:
>> On Tue, Jan 4, 2011 at 10:19 AM, Paul Stewart <pstew@google.com> wrote:
>> > On Thu, Dec 16, 2010 at 9:44 AM, Luis R. Rodriguez
>> > <lrodriguez@atheros.com> wrote:
>> >> Try this:
>> >
>> > Happy new year. I've tried this patch, and the system continues to
>> > suspend and resume successfully (i.e, the fix from the earlier patches
>> > continues to alleviate the original problem), however the system
>> > continues to be "deaf" to beacons at resume time if the system
>> > suspends and resumes while associated. You don't need a ChromeOS
>> > system to reproduce this issue. Just associate to the network and
>> > suspend/resume. On resume the system believes it should be
>> > associated, but then the beacon loss timer kicks in and we
>> > disassociate, since we are never successful in receiving a response.
>>
>> Whoops. I didn't apply that change correctly. Actually, I think this
>> change works. I think I may have spotted a couple of unrelated
>> anomalies I'll trace down and address separately.
>
> Great, I think this patch got sucked up already, I'll check.
Indeed, John just sent this to David as part of the queued up patches
for 2.6.38.
Luis
^ permalink raw reply
* pull request: wireless-next-2.6 2011-01-05
From: John W. Linville @ 2011-01-05 21:51 UTC (permalink / raw)
To: davem; +Cc: linux-wireless, netdev
Dave,
Here is another big batch of updates intended for 2.6.38. It should
be the last big one, but I still have a few patches in the queue that meet
the posting date requirements and that might merit inclusion -- we'll
see...
Again, this is the usual batch of driver updates from all the major
players. Also, mac80211 gets a little action. The bluetooth team makes
a showing as well.
Please let me know if there are problems!
Thanks,
John
---
The following changes since commit dbbe68bb12b34f3e450da7a73c20e6fa1f85d63a:
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 (2011-01-04 11:57:25 -0800)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6.git for-davem
Akinobu Mita (1):
airo: use simple_write_to_buffer
Bob Copeland (2):
ath5k: fix cycle counter inconsistent locking
cfg80211: fix transposition of words in printk
Brian Prodoehl (1):
ath9k: fix spur mitigation no-spur case for AR9002
Bruno Randolf (6):
ath5k: Simplify powertable recalculation
ath5k: Separate powertable setup and writing
ath5k: Track current TX power separately from max TX power
ath5k: Remove ATH5K_INI_RFGAIN defines, use band instead
ath5k: Use helper function to get eeprom mode from channel
ath5k: Move mac80211 functions into new file
Chaoming Li (1):
rtlwifi: Fix large packet issue
Christian Lamparter (6):
carl9170: add missing return-value check
carl9170: reduce channel change delay
carl9170: fix usb pm suspend->resume woes
mac80211: ignore PSM bit of reordered frames
mac80211: serialize rx path workers
Revert "mac80211: temporarily disable reorder release timer"
Dan Carpenter (2):
ath9k: unlock on error path in ath9k_change_interface()
ath5k: ath5k_eeprom_mode_from_channel() returns signed
Felix Fietkau (1):
ath9k_hw: fix dma descriptor rx error bit parsing
Gertjan van Wingerde (3):
rt2x00: Remove intf->bssid field.
rt2x00: remove intf->mac field.
rt2x00: Fix pointer errors.
Gustavo F. Padovan (2):
Bluetooth: Don't accept ConfigReq if we aren't in the BT_CONFIG state
Bluetooth: Improve handling of HCI control channel in bind
Hauke Mehrtens (7):
wl1251: remove unnecessary import
wl12xx: remove unnecessary import
ssb: Use pci_is_pcie()
rt2x00: Use pci_is_pcie()
ath5k: Use pci_is_pcie()
ath9k: Use pci_is_pcie()
rtlwifi: Use pci_pcie_cap()
Helmut Schaa (4):
rt2x00: Remove superfluous assignment of mpdu_density
rt2x00: Simplify intf->delayed_flags locking
rt2x00: Remove unused interface spinlock
rt2x00: Fix comment about removed spinlock
Ismael Luceno (1):
rt2x00: Fix panic on frame padding for rt2800 usb devices
Joel A Fernandes (1):
mac80211: Fix mesh portal communication with other mesh nodes.
Johan Hedberg (9):
Bluetooth: Add Bluetooth Management interface definitions
Bluetooth: Add initial Bluetooth Management interface callbacks
Bluetooth: Make hci_send_to_sock usable for management control sockets
Bluetooth: Add error handling for managment command handlers
Bluetooth: Add read_version management command
Bluetooth: Add read_index_list management command
Bluetooth: Add read_info management command
Bluetooth: Add management events for controller addition & removal
Bluetooth: Fix __hci_request synchronization for hci_open_dev
Johannes Berg (7):
mac80211: cleanup select_queue
iwlagn: fix FH error
mac80211: add missing synchronize_rcu
mac80211: fix some key comments and code
mac80211: implement hardware offload for remain-on-channel
mac80211: implement off-channel TX using hw r-o-c offload
mac80211: remove stray extern
Johannes Stezenbach (2):
rt2x00: simplify txstatus_fifo handling
rt2x00: allow txstatus_fifo w/o txstatus_tasklet
John W. Linville (8):
rtl818x: move rtl8180 and rtl8187 to separate subdirectories
Merge branch 'master' of master.kernel.org:/.../padovan/bluetooth-next-2.6
Merge branch 'wireless-next-2.6' of git://git.kernel.org/.../iwlwifi/iwlwifi-2.6
Merge branch 'master' of git://git.kernel.org/.../linville/wireless-2.6
ath9k: qualify global modparam_nohwcrypt variable
ath5k: qualify global modparam_nohwcrypt variable
ath9k: correct MODULE_PARM_DESC parameters for force_new_ani
Merge branch 'master' of git://git.kernel.org/.../linville/wireless-next-2.6 into for-davem
Jussi Kivilinna (7):
rndis_wlan: scanning, workaround device returning incorrect bssid-list item count.
rndis_wlan: do not set default_key if not WEP key
rndis_wlan: turn radio off before interface is bring up
rndis_wlan: constify rndis_config_ops
rndis_wlan: remove unused variable from priv structure
rndis_wlan: add support for set_cqm_rssi_config
rndis_wlan: add support for set_power_mgmt
Larry Finger (1):
rtlwifi: rtl8192ce: Fix driver problem when radio switch off at module load
Luis R. Rodriguez (1):
ath9k: fix aphy / wiphy idle mismatch
Milton Miller (1):
mac80211: fix mesh forwarding when ratelimited too
Mohammed Shafi Shajakhan (4):
ath9k: Reset keycache on resume
ath9k: Few clean ups in beacon config parameters
Revert "ath9k: Parse DTIM period from mac80211"
ath9k : few rate control clean ups
Rafał Miłecki (7):
b43: use correct firmware for newer cores
b43: N-PHY: implement radio 2056 init steps
b43: N-PHY: add init tables for 2056 radio
b43: N-PHY: avoid PHY hangs for rev 3 and 4
b43: N-PHY: use correct channel tables for rev4+
b43: N-PHY: update 2056 radio on channel switch on rev3+
b43: N-PHY: enable support for PHYs rev 3 and higher
Rajkumar Manoharan (2):
ath9k: Fix warnings on card removal
ath9k: fix beacon restart on channel change
Senthil Balasubramanian (1):
ath9k: spin_lock_bh is not required within tasklet context.
Stanislaw Gruszka (2):
iwlagn: enable only rfkill interrupt when device is down
iwlagn: fix scan tx antenna setting on 5Ghz band
Sujith Manoharan (7):
ath9k_htc: Fix warning on device removal
ath9k_htc: Handle pending URBs properly
ath9k_htc: Move work cancellation outside of mutex
ath9k_htc: Handle FATAL events
ath9k_htc: Fix fast channel change
ath9k_htc: Move LED/RFKILL code to htc_drv_gpio.c
ath9k_htc: Fix packet injection
Tracey Dent (1):
Net: bluetooth: Makefile: Remove deprecated kbuild goal definitions
Vasanthakumar Thiagarajan (1):
ath9k_hw: Fix bug in eeprom data length validation for AR9485
Wey-Yi Guy (2):
iwlwifi: remove extra string
iwlwifi: remove reference to Gen2
roel kluin (1):
libertas: down_interruptible() can return -EINTR, not EINTR
MAINTAINERS | 4 +-
drivers/net/wireless/airo.c | 20 +-
drivers/net/wireless/ath/ath5k/Makefile | 1 +
drivers/net/wireless/ath/ath5k/ath5k.h | 8 +-
drivers/net/wireless/ath/ath5k/attach.c | 2 +-
drivers/net/wireless/ath/ath5k/base.c | 769 +-----
drivers/net/wireless/ath/ath5k/eeprom.c | 16 +
drivers/net/wireless/ath/ath5k/eeprom.h | 2 +
drivers/net/wireless/ath/ath5k/mac80211-ops.c | 774 +++++
drivers/net/wireless/ath/ath5k/phy.c | 152 +-
drivers/net/wireless/ath/ath5k/reset.c | 28 +-
drivers/net/wireless/ath/ath9k/ar9002_hw.c | 2 +-
drivers/net/wireless/ath/ath9k/ar9002_phy.c | 5 +-
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c | 4 +-
drivers/net/wireless/ath/ath9k/ar9003_mac.c | 11 +-
drivers/net/wireless/ath/ath9k/ath9k.h | 4 +-
drivers/net/wireless/ath/ath9k/beacon.c | 25 +-
drivers/net/wireless/ath/ath9k/eeprom.h | 2 -
drivers/net/wireless/ath/ath9k/hif_usb.c | 46 +-
drivers/net/wireless/ath/ath9k/hif_usb.h | 1 +
drivers/net/wireless/ath/ath9k/htc.h | 31 +-
drivers/net/wireless/ath/ath9k/htc_drv_gpio.c | 327 +++
drivers/net/wireless/ath/ath9k/htc_drv_init.c | 16 +-
drivers/net/wireless/ath/ath9k/htc_drv_main.c | 460 +---
drivers/net/wireless/ath/ath9k/hw.c | 4 +-
drivers/net/wireless/ath/ath9k/hw.h | 4 +
drivers/net/wireless/ath/ath9k/init.c | 13 +-
drivers/net/wireless/ath/ath9k/mac.c | 9 +-
drivers/net/wireless/ath/ath9k/main.c | 21 +-
drivers/net/wireless/ath/ath9k/pci.c | 13 +-
drivers/net/wireless/ath/ath9k/rc.c | 16 +-
drivers/net/wireless/ath/ath9k/rc.h | 3 -
drivers/net/wireless/ath/ath9k/recv.c | 3 +-
drivers/net/wireless/ath/ath9k/wmi.c | 20 +-
drivers/net/wireless/ath/ath9k/wmi.h | 3 +-
drivers/net/wireless/ath/carl9170/phy.c | 10 +-
drivers/net/wireless/ath/carl9170/usb.c | 53 +-
drivers/net/wireless/b43/main.c | 14 +-
drivers/net/wireless/b43/phy_n.c | 130 +-
drivers/net/wireless/b43/radio_2056.c | 3045 +++++++++++++++++++-
drivers/net/wireless/b43/radio_2056.h | 3 +
drivers/net/wireless/iwlwifi/iwl-6000.c | 7 +-
drivers/net/wireless/iwlwifi/iwl-agn-lib.c | 14 +-
drivers/net/wireless/iwlwifi/iwl-agn.c | 18 +-
drivers/net/wireless/iwlwifi/iwl-core.h | 1 -
drivers/net/wireless/iwlwifi/iwl-helpers.h | 6 +
drivers/net/wireless/iwlwifi/iwl-led.c | 2 +-
drivers/net/wireless/libertas/if_spi.c | 2 +-
drivers/net/wireless/rndis_wlan.c | 192 ++-
drivers/net/wireless/rt2x00/rt2800pci.c | 18 +-
drivers/net/wireless/rt2x00/rt2800usb.c | 16 +-
drivers/net/wireless/rt2x00/rt2x00.h | 25 +-
drivers/net/wireless/rt2x00/rt2x00config.c | 8 +-
drivers/net/wireless/rt2x00/rt2x00dev.c | 25 +-
drivers/net/wireless/rt2x00/rt2x00ht.c | 2 -
drivers/net/wireless/rt2x00/rt2x00mac.c | 35 +-
drivers/net/wireless/rt2x00/rt2x00pci.c | 2 +-
drivers/net/wireless/rtl818x/Makefile | 9 +-
drivers/net/wireless/rtl818x/rtl8180/Makefile | 5 +
.../rtl818x/{rtl8180_dev.c => rtl8180/dev.c} | 8 +-
.../{rtl8180_grf5101.c => rtl8180/grf5101.c} | 2 +-
.../{rtl8180_grf5101.h => rtl8180/grf5101.h} | 0
.../{rtl8180_max2820.c => rtl8180/max2820.c} | 2 +-
.../{rtl8180_max2820.h => rtl8180/max2820.h} | 0
.../net/wireless/rtl818x/{ => rtl8180}/rtl8180.h | 0
.../{rtl8180_rtl8225.c => rtl8180/rtl8225.c} | 2 +-
.../{rtl8180_rtl8225.h => rtl8180/rtl8225.h} | 0
.../rtl818x/{rtl8180_sa2400.c => rtl8180/sa2400.c} | 2 +-
.../rtl818x/{rtl8180_sa2400.h => rtl8180/sa2400.h} | 0
drivers/net/wireless/rtl818x/rtl8187/Makefile | 5 +
.../rtl818x/{rtl8187_dev.c => rtl8187/dev.c} | 6 +-
.../rtl818x/{rtl8187_leds.c => rtl8187/leds.c} | 2 +-
.../rtl818x/{rtl8187_leds.h => rtl8187/leds.h} | 0
.../rtl818x/{rtl8187_rfkill.c => rtl8187/rfkill.c} | 2 +-
.../rtl818x/{rtl8187_rfkill.h => rtl8187/rfkill.h} | 0
.../net/wireless/rtl818x/{ => rtl8187}/rtl8187.h | 2 +-
.../{rtl8187_rtl8225.c => rtl8187/rtl8225.c} | 2 +-
.../{rtl8187_rtl8225.h => rtl8187/rtl8225.h} | 0
drivers/net/wireless/rtlwifi/base.c | 12 +-
drivers/net/wireless/rtlwifi/pci.c | 20 +-
drivers/net/wireless/rtlwifi/rtl8192ce/hw.c | 11 -
drivers/net/wireless/wl1251/boot.c | 1 -
drivers/net/wireless/wl12xx/boot.c | 1 -
drivers/ssb/scan.c | 4 +-
include/net/bluetooth/bluetooth.h | 1 +
include/net/bluetooth/hci.h | 4 +
include/net/bluetooth/hci_core.h | 9 +-
include/net/bluetooth/mgmt.h | 87 +
include/net/mac80211.h | 19 +
net/bluetooth/Makefile | 2 +-
net/bluetooth/hci_core.c | 17 +-
net/bluetooth/hci_event.c | 33 +-
net/bluetooth/hci_sock.c | 52 +-
net/bluetooth/l2cap.c | 8 +-
net/bluetooth/mgmt.c | 308 ++
net/mac80211/cfg.c | 142 +
net/mac80211/driver-ops.h | 30 +
net/mac80211/driver-trace.h | 80 +
net/mac80211/ieee80211_i.h | 21 +
net/mac80211/iface.c | 9 +-
net/mac80211/key.c | 44 +-
net/mac80211/led.c | 4 +-
net/mac80211/main.c | 8 +-
net/mac80211/offchannel.c | 85 +
net/mac80211/rx.c | 112 +-
net/mac80211/tx.c | 14 +-
net/mac80211/wme.c | 20 +-
net/wireless/reg.c | 2 +-
108 files changed, 6014 insertions(+), 1642 deletions(-)
create mode 100644 drivers/net/wireless/ath/ath5k/mac80211-ops.c
create mode 100644 drivers/net/wireless/rtl818x/rtl8180/Makefile
rename drivers/net/wireless/rtl818x/{rtl8180_dev.c => rtl8180/dev.c} (99%)
rename drivers/net/wireless/rtl818x/{rtl8180_grf5101.c => rtl8180/grf5101.c} (99%)
rename drivers/net/wireless/rtl818x/{rtl8180_grf5101.h => rtl8180/grf5101.h} (100%)
rename drivers/net/wireless/rtl818x/{rtl8180_max2820.c => rtl8180/max2820.c} (99%)
rename drivers/net/wireless/rtl818x/{rtl8180_max2820.h => rtl8180/max2820.h} (100%)
rename drivers/net/wireless/rtl818x/{ => rtl8180}/rtl8180.h (100%)
rename drivers/net/wireless/rtl818x/{rtl8180_rtl8225.c => rtl8180/rtl8225.c} (99%)
rename drivers/net/wireless/rtl818x/{rtl8180_rtl8225.h => rtl8180/rtl8225.h} (100%)
rename drivers/net/wireless/rtl818x/{rtl8180_sa2400.c => rtl8180/sa2400.c} (99%)
rename drivers/net/wireless/rtl818x/{rtl8180_sa2400.h => rtl8180/sa2400.h} (100%)
create mode 100644 drivers/net/wireless/rtl818x/rtl8187/Makefile
rename drivers/net/wireless/rtl818x/{rtl8187_dev.c => rtl8187/dev.c} (99%)
rename drivers/net/wireless/rtl818x/{rtl8187_leds.c => rtl8187/leds.c} (99%)
rename drivers/net/wireless/rtl818x/{rtl8187_leds.h => rtl8187/leds.h} (100%)
rename drivers/net/wireless/rtl818x/{rtl8187_rfkill.c => rtl8187/rfkill.c} (98%)
rename drivers/net/wireless/rtl818x/{rtl8187_rfkill.h => rtl8187/rfkill.h} (100%)
rename drivers/net/wireless/rtl818x/{ => rtl8187}/rtl8187.h (99%)
rename drivers/net/wireless/rtl818x/{rtl8187_rtl8225.c => rtl8187/rtl8225.c} (99%)
rename drivers/net/wireless/rtl818x/{rtl8187_rtl8225.h => rtl8187/rtl8225.h} (100%)
create mode 100644 include/net/bluetooth/mgmt.h
create mode 100644 net/bluetooth/mgmt.c
Omnibus patch available here:
http://www.kernel.org/pub/linux/kernel/people/linville/wireless-next-2.6-2011-01-05.patch.bz2
--
John W. Linville Someday the world will need a hero, and you
linville@tuxdriver.com might be all we have. Be ready.
^ permalink raw reply
* Re: [PATCH 0/8] wireless: DFS region support
From: Luis R. Rodriguez @ 2011-01-05 21:26 UTC (permalink / raw)
To: John W. Linville
Cc: Luis Rodriguez, Kathy Giori, Amod Bodas, David Quan,
Michael Green, linux-wireless@vger.kernel.org
In-Reply-To: <20110105183018.GA2725@tuxdriver.com>
On Wed, Jan 5, 2011 at 10:30 AM, John W. Linville
<linville@tuxdriver.com> wrote:
> On Wed, Jan 05, 2011 at 10:28:38AM -0800, Luis R. Rodriguez wrote:
>> On Tue, Jan 04, 2011 at 10:49:28AM -0800, John W. Linville wrote:
>> > On Mon, Dec 20, 2010 at 12:02:26PM -0500, Luis R. Rodriguez wrote:
>> > > This series has a list of changes to kernel and userspace to start addressing
>> > > DFS region support. I've cheated and figured out a way to alter the current
>> > > regulatory database in such a way that it remains backwards compatible with
>> > > older databases so that no new CRDAs are required and we don't have to provide
>> > > two releases for old kernels and newer kernels for wireless-regdb updates.
>> > >
>> > > In the end we end up passing the DFS region to the drivers. In terms of our DFS
>> > > development roadmap this covers parts I and II as promissed that I would take care
>> > > of by tomorrow, and leaves open now the chance for developers to start working
>> > > on part III: "Where do we stuff DFS parameters for each region":
>> > >
>> > > http://wireless.kernel.org/en/developers/DFS
>> > >
>> > > In tomorrow's meeting we can cover who is going to work on part III. People who
>> > > want to work on part III can start using these patches on their systems.
>> > >
>> > > John, lets wait to merge these until Wednesday, I post these in patch form as I
>> > > think they are ready but tomorrow's discussions may push us to alter this a
>> > > bit, not sure. I will also review what we have done here with Michael Green so
>> > > he is on the same page.
>> >
>> > Well, now there has been plenty of time to reflect...comments? :-)
>>
>> I'll reduce the number of bits to 8 instead of 16 for the DFS regions, I'll also
>> try to schedule a call with Michael to finalize his review on this and then I'll
>> respin and submit again.
>
> Well, since Linus released 2.6.37 yesterday there is now no great hurry...
OK thanks for the heads up.
Luis
^ permalink raw reply
* Re: [ath5k-devel] [PATCH 1/3] ath5k: move nohwcrypt to ath_common structure
From: Bob Copeland @ 2011-01-05 20:09 UTC (permalink / raw)
To: Joe Perches; +Cc: ath9k-devel, linux-wireless, John W. Linville, ath5k-devel
In-Reply-To: <1294257239.12561.12.camel@Joe-Laptop>
On Wed, Jan 5, 2011 at 2:53 PM, Joe Perches <joe@perches.com> wrote:
>
> bool is OK.
>
Yes, I was agreeing, just pointing out (for my own benefit, I guess) that
the old rule of using int for bool modparams no longer holds.
--
Bob Copeland %% www.bobcopeland.com
^ permalink raw reply
* Compat-wireless release for 2011-01-05 is baked
From: Compat-wireless cronjob account @ 2011-01-05 20:04 UTC (permalink / raw)
To: linux-wireless
>From git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next
959f374..b616059 history -> origin/history
+ 924c697...dcd2e87 master -> origin/master (forced update)
03ed6a3..989d873 stable -> origin/stable
* [new tag] next-20110105 -> next-20110105
cat: /var/opt/compat/compat-wireless-2.6/compat_version: No such file or directory
cat: compat_base_tree: No such file or directory
cat: compat_base_tree_version: No such file or directory
cat: compat_version: No such file or directory
cat: /var/opt/compat/compat-wireless-2.6/compat_version: No such file or directory
scripts/Makefile.clean:17: /var/opt/compat/compat-wireless-2.6/drivers/net/wireless/hostap/Makefile: No such file or directory
make[4]: *** No rule to make target `/var/opt/compat/compat-wireless-2.6/drivers/net/wireless/hostap/Makefile'. Stop.
make[3]: *** [/var/opt/compat/compat-wireless-2.6/drivers/net/wireless/hostap] Error 2
make[2]: *** [/var/opt/compat/compat-wireless-2.6/drivers/net/wireless] Error 2
make[1]: *** [_clean_/var/opt/compat/compat-wireless-2.6] Error 2
make: *** [clean] Error 2
/usr/bin/sha1sum: *.tar.bz2: No such file or directory
compat-wireless code metrics
775083 - Total upstream lines of code being pulled
^ permalink raw reply
* Re: [PATCH 1/3] ath5k: move nohwcrypt to ath_common structure
From: Joe Perches @ 2011-01-05 19:53 UTC (permalink / raw)
To: Bob Copeland; +Cc: John W. Linville, linux-wireless, ath5k-devel, ath9k-devel
In-Reply-To: <AANLkTi=v3oHGiQjASQqChmmsXHuv=UF17_A9XdeFeFNR@mail.gmail.com>
On Wed, 2011-01-05 at 14:49 -0500, Bob Copeland wrote:
> On Wed, Jan 5, 2011 at 2:40 PM, Joe Perches <joe@perches.com> wrote:
> > On Wed, 2011-01-05 at 14:22 -0500, John W. Linville wrote:
> >> diff --git a/drivers/net/wireless/ath/ath.h b/drivers/net/wireless/ath/ath.h
> > []
> >> + bool nohwcrypt;
> >> diff --git a/drivers/net/wireless/ath/ath5k/base.c b/drivers/net/wireless/ath/ath5k/base.c
> >> -int modparam_nohwcrypt;
> >> +static int modparam_nohwcrypt;
> >> module_param_named(nohwcrypt, modparam_nohwcrypt, bool, S_IRUGO);
> > bool/int matching?
> It used to be the case that you had to use ints here. Google tells me
> that changed about 2 years ago, so bool should be ok.
bool is OK.
modparam_nohwcrypt is declared int and should be declared bool.
Also should be declared and used as bool in ath9k and ath9k_htc too.
^ permalink raw reply
* Re: [PATCH 1/3] ath5k: move nohwcrypt to ath_common structure
From: Bob Copeland @ 2011-01-05 19:49 UTC (permalink / raw)
To: Joe Perches; +Cc: John W. Linville, linux-wireless, ath5k-devel, ath9k-devel
In-Reply-To: <1294256409.12561.8.camel@Joe-Laptop>
On Wed, Jan 5, 2011 at 2:40 PM, Joe Perches <joe@perches.com> wrote:
> On Wed, 2011-01-05 at 14:22 -0500, John W. Linville wrote:
>
>> diff --git a/drivers/net/wireless/ath/ath.h b/drivers/net/wireless/ath/ath.h
> []
>> + bool nohwcrypt;
>
>> diff --git a/drivers/net/wireless/ath/ath5k/base.c b/drivers/net/wireless/ath/ath5k/base.c
>> -int modparam_nohwcrypt;
>> +static int modparam_nohwcrypt;
>> module_param_named(nohwcrypt, modparam_nohwcrypt, bool, S_IRUGO);
>
> bool/int matching?
It used to be the case that you had to use ints here. Google tells me
that changed about 2 years ago, so bool should be ok.
--
Bob Copeland %% www.bobcopeland.com
^ permalink raw reply
* Re: [PATCH 1/3] ath5k: move nohwcrypt to ath_common structure
From: Joe Perches @ 2011-01-05 19:40 UTC (permalink / raw)
To: John W. Linville; +Cc: linux-wireless, ath5k-devel, ath9k-devel
In-Reply-To: <1294255328-14322-1-git-send-email-linville@tuxdriver.com>
On Wed, 2011-01-05 at 14:22 -0500, John W. Linville wrote:
> diff --git a/drivers/net/wireless/ath/ath.h b/drivers/net/wireless/ath/ath.h
[]
> + bool nohwcrypt;
> diff --git a/drivers/net/wireless/ath/ath5k/base.c b/drivers/net/wireless/ath/ath5k/base.c
> -int modparam_nohwcrypt;
> +static int modparam_nohwcrypt;
> module_param_named(nohwcrypt, modparam_nohwcrypt, bool, S_IRUGO);
bool/int matching?
Perhaps the modparam_nohwcrypts should be
bool and S_IRUGO
> diff --git a/drivers/net/wireless/ath/ath9k/init.c
[]
> -int modparam_nohwcrypt;
> +static int modparam_nohwcrypt;
> module_param_named(nohwcrypt, modparam_nohwcrypt, int, 0444);
> diff --git a/drivers/net/wireless/ath/ath9k/htc_drv_init.c
[]
> -int htc_modparam_nohwcrypt;
> -module_param_named(nohwcrypt, htc_modparam_nohwcrypt, int, 0444);
> +static int modparam_nohwcrypt;
> +module_param_named(nohwcrypt, modparam_nohwcrypt, int, 0444);
^ permalink raw reply
* [PATCH 1/3] ath5k: move nohwcrypt to ath_common structure
From: John W. Linville @ 2011-01-05 19:22 UTC (permalink / raw)
To: linux-wireless; +Cc: ath5k-devel, ath9k-devel, John W. Linville
Signed-off-by: John W. Linville <linville@tuxdriver.com>
---
drivers/net/wireless/ath/ath.h | 1 +
drivers/net/wireless/ath/ath5k/base.c | 3 ++-
drivers/net/wireless/ath/ath5k/mac80211-ops.c | 3 +--
3 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/drivers/net/wireless/ath/ath.h b/drivers/net/wireless/ath/ath.h
index e43210c..3c2999f 100644
--- a/drivers/net/wireless/ath/ath.h
+++ b/drivers/net/wireless/ath/ath.h
@@ -165,6 +165,7 @@ struct ath_common {
const struct ath_bus_ops *bus_ops;
bool btcoex_enabled;
+ bool nohwcrypt;
};
struct sk_buff *ath_rxbuf_alloc(struct ath_common *common,
diff --git a/drivers/net/wireless/ath/ath5k/base.c b/drivers/net/wireless/ath/ath5k/base.c
index fce9a98..e7be051 100644
--- a/drivers/net/wireless/ath/ath5k/base.c
+++ b/drivers/net/wireless/ath/ath5k/base.c
@@ -61,7 +61,7 @@
#include "debug.h"
#include "ani.h"
-int modparam_nohwcrypt;
+static int modparam_nohwcrypt;
module_param_named(nohwcrypt, modparam_nohwcrypt, bool, S_IRUGO);
MODULE_PARM_DESC(nohwcrypt, "Disable hardware encryption.");
@@ -2395,6 +2395,7 @@ ath5k_init_softc(struct ath5k_softc *sc, const struct ath_bus_ops *bus_ops)
common->ah = sc->ah;
common->hw = hw;
common->priv = sc;
+ common->nohwcrypt = modparam_nohwcrypt;
/*
* Cache line size is used to size and align various
diff --git a/drivers/net/wireless/ath/ath5k/mac80211-ops.c b/drivers/net/wireless/ath/ath5k/mac80211-ops.c
index de257a3..309c551 100644
--- a/drivers/net/wireless/ath/ath5k/mac80211-ops.c
+++ b/drivers/net/wireless/ath/ath5k/mac80211-ops.c
@@ -46,7 +46,6 @@
#include "base.h"
#include "reg.h"
-extern int modparam_nohwcrypt;
/* functions used from base.c */
void set_beacon_filter(struct ieee80211_hw *hw, bool enable);
@@ -485,7 +484,7 @@ ath5k_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd,
struct ath_common *common = ath5k_hw_common(ah);
int ret = 0;
- if (modparam_nohwcrypt)
+ if (common->nohwcrypt)
return -EOPNOTSUPP;
switch (key->cipher) {
--
1.7.3.4
^ permalink raw reply related
* [PATCH 3/3] ath9k_htc: use nohwcrypt in ath_common structure
From: John W. Linville @ 2011-01-05 19:22 UTC (permalink / raw)
To: linux-wireless; +Cc: ath5k-devel, ath9k-devel, John W. Linville
In-Reply-To: <1294255328-14322-1-git-send-email-linville@tuxdriver.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
---
drivers/net/wireless/ath/ath9k/htc.h | 1 -
drivers/net/wireless/ath/ath9k/htc_drv_init.c | 5 +++--
drivers/net/wireless/ath/ath9k/htc_drv_main.c | 2 +-
3 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/net/wireless/ath/ath9k/htc.h b/drivers/net/wireless/ath/ath9k/htc.h
index a099b3e..64d1684 100644
--- a/drivers/net/wireless/ath/ath9k/htc.h
+++ b/drivers/net/wireless/ath/ath9k/htc.h
@@ -42,7 +42,6 @@
((((u32)(_h)) << 22) | (((u32)(_l)) >> 10))
extern struct ieee80211_ops ath9k_htc_ops;
-extern int htc_modparam_nohwcrypt;
enum htc_phymode {
HTC_MODE_AUTO = 0,
diff --git a/drivers/net/wireless/ath/ath9k/htc_drv_init.c b/drivers/net/wireless/ath/ath9k/htc_drv_init.c
index 38433f9..2f1d494 100644
--- a/drivers/net/wireless/ath/ath9k/htc_drv_init.c
+++ b/drivers/net/wireless/ath/ath9k/htc_drv_init.c
@@ -24,8 +24,8 @@ static unsigned int ath9k_debug = ATH_DBG_DEFAULT;
module_param_named(debug, ath9k_debug, uint, 0);
MODULE_PARM_DESC(debug, "Debugging mask");
-int htc_modparam_nohwcrypt;
-module_param_named(nohwcrypt, htc_modparam_nohwcrypt, int, 0444);
+static int modparam_nohwcrypt;
+module_param_named(nohwcrypt, modparam_nohwcrypt, int, 0444);
MODULE_PARM_DESC(nohwcrypt, "Disable hardware encryption");
#define CHAN2G(_freq, _idx) { \
@@ -641,6 +641,7 @@ static int ath9k_init_priv(struct ath9k_htc_priv *priv,
common->hw = priv->hw;
common->priv = priv;
common->debug_mask = ath9k_debug;
+ common->nohwcrypt = modparam_nohwcrypt;
spin_lock_init(&priv->wmi->wmi_lock);
spin_lock_init(&priv->beacon_lock);
diff --git a/drivers/net/wireless/ath/ath9k/htc_drv_main.c b/drivers/net/wireless/ath/ath9k/htc_drv_main.c
index 845b4c9..4c7ca46 100644
--- a/drivers/net/wireless/ath/ath9k/htc_drv_main.c
+++ b/drivers/net/wireless/ath/ath9k/htc_drv_main.c
@@ -1372,7 +1372,7 @@ static int ath9k_htc_set_key(struct ieee80211_hw *hw,
struct ath_common *common = ath9k_hw_common(priv->ah);
int ret = 0;
- if (htc_modparam_nohwcrypt)
+ if (common->nohwcrypt)
return -ENOSPC;
mutex_lock(&priv->mutex);
--
1.7.3.4
^ permalink raw reply related
* [PATCH 2/3] ath9k: use nohwcrypt in ath_common structure
From: John W. Linville @ 2011-01-05 19:22 UTC (permalink / raw)
To: linux-wireless; +Cc: ath5k-devel, ath9k-devel, John W. Linville
In-Reply-To: <1294255328-14322-1-git-send-email-linville@tuxdriver.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
---
drivers/net/wireless/ath/ath9k/ath9k.h | 1 -
drivers/net/wireless/ath/ath9k/init.c | 5 +++--
drivers/net/wireless/ath/ath9k/main.c | 2 +-
3 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/net/wireless/ath/ath9k/ath9k.h b/drivers/net/wireless/ath/ath9k/ath9k.h
index fcc087c..0e97352 100644
--- a/drivers/net/wireless/ath/ath9k/ath9k.h
+++ b/drivers/net/wireless/ath/ath9k/ath9k.h
@@ -664,7 +664,6 @@ static inline void ath_read_cachesize(struct ath_common *common, int *csz)
}
extern struct ieee80211_ops ath9k_ops;
-extern int modparam_nohwcrypt;
extern int led_blink;
extern int ath9k_pm_qos_value;
extern bool is_ath9k_unloaded;
diff --git a/drivers/net/wireless/ath/ath9k/init.c b/drivers/net/wireless/ath/ath9k/init.c
index b6643b5..9aafd29 100644
--- a/drivers/net/wireless/ath/ath9k/init.c
+++ b/drivers/net/wireless/ath/ath9k/init.c
@@ -29,7 +29,7 @@ static unsigned int ath9k_debug = ATH_DBG_DEFAULT;
module_param_named(debug, ath9k_debug, uint, 0);
MODULE_PARM_DESC(debug, "Debugging mask");
-int modparam_nohwcrypt;
+static int modparam_nohwcrypt;
module_param_named(nohwcrypt, modparam_nohwcrypt, int, 0444);
MODULE_PARM_DESC(nohwcrypt, "Disable hardware encryption");
@@ -552,6 +552,7 @@ static int ath9k_init_softc(u16 devid, struct ath_softc *sc, u16 subsysid,
common->priv = sc;
common->debug_mask = ath9k_debug;
common->btcoex_enabled = ath9k_btcoex_enable == 1;
+ common->nohwcrypt = modparam_nohwcrypt;
spin_lock_init(&common->cc_lock);
spin_lock_init(&sc->wiphy_lock);
@@ -653,7 +654,7 @@ void ath9k_set_hw_capab(struct ath_softc *sc, struct ieee80211_hw *hw)
if (sc->sc_ah->caps.hw_caps & ATH9K_HW_CAP_HT)
hw->flags |= IEEE80211_HW_AMPDU_AGGREGATION;
- if (AR_SREV_9160_10_OR_LATER(sc->sc_ah) || modparam_nohwcrypt)
+ if (AR_SREV_9160_10_OR_LATER(sc->sc_ah) || common->nohwcrypt)
hw->flags |= IEEE80211_HW_MFP_CAPABLE;
hw->wiphy->interface_modes =
diff --git a/drivers/net/wireless/ath/ath9k/main.c b/drivers/net/wireless/ath/ath9k/main.c
index a818e4f..b2149ee 100644
--- a/drivers/net/wireless/ath/ath9k/main.c
+++ b/drivers/net/wireless/ath/ath9k/main.c
@@ -1829,7 +1829,7 @@ static int ath9k_set_key(struct ieee80211_hw *hw,
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
int ret = 0;
- if (modparam_nohwcrypt)
+ if (common->nohwcrypt)
return -ENOSPC;
mutex_lock(&sc->mutex);
--
1.7.3.4
^ permalink raw reply related
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