* Re: [PATCH 1/2] compat-wireless: backport pm_qos_{add,remove,update}_request
From: Luis R. Rodriguez @ 2010-05-10 22:24 UTC (permalink / raw)
To: Hauke Mehrtens; +Cc: linux-wireless, mcgrof
In-Reply-To: <1273526650-26282-1-git-send-email-hauke@hauke-m.de>
You rock dude, thanks a lot! All 4 patches applied and pushed.
Luis
On Mon, May 10, 2010 at 2:24 PM, Hauke Mehrtens <hauke@hauke-m.de> wrote:
>
> Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
> ---
> I have not found a way to backport these changes without using these ifdef.
> patches/28-pm-qos-params.patch | 89 ++++++++++++++++++++++++++++++++++++++++
> 1 files changed, 89 insertions(+), 0 deletions(-)
> create mode 100644 patches/28-pm-qos-params.patch
>
> diff --git a/patches/28-pm-qos-params.patch b/patches/28-pm-qos-params.patch
> new file mode 100644
> index 0000000..4c3966a
> --- /dev/null
> +++ b/patches/28-pm-qos-params.patch
> @@ -0,0 +1,89 @@
> +--- a/drivers/net/wireless/ipw2x00/ipw2100.c
> ++++ b/drivers/net/wireless/ipw2x00/ipw2100.c
> +@@ -174,7 +174,9 @@ that only one external action is invoked
> + #define DRV_DESCRIPTION "Intel(R) PRO/Wireless 2100 Network Driver"
> + #define DRV_COPYRIGHT "Copyright(c) 2003-2006 Intel Corporation"
> +
> ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35))
> + struct pm_qos_request_list *ipw2100_pm_qos_req;
> ++#endif
> +
> + /* Debugging stuff */
> + #ifdef CONFIG_IPW2100_DEBUG
> +@@ -1741,7 +1743,11 @@ static int ipw2100_up(struct ipw2100_pri
> + /* the ipw2100 hardware really doesn't want power management delays
> + * longer than 175usec
> + */
> ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35))
> + pm_qos_update_request(ipw2100_pm_qos_req, 175);
> ++#else
> ++ pm_qos_update_requirement(PM_QOS_CPU_DMA_LATENCY, "ipw2100", 175);
> ++#endif
> +
> + /* If the interrupt is enabled, turn it off... */
> + spin_lock_irqsave(&priv->low_lock, flags);
> +@@ -1889,7 +1895,12 @@ static void ipw2100_down(struct ipw2100_
> + ipw2100_disable_interrupts(priv);
> + spin_unlock_irqrestore(&priv->low_lock, flags);
> +
> ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35))
> + pm_qos_update_request(ipw2100_pm_qos_req, PM_QOS_DEFAULT_VALUE);
> ++#else
> ++ pm_qos_update_requirement(PM_QOS_CPU_DMA_LATENCY, "ipw2100",
> ++ PM_QOS_DEFAULT_VALUE);
> ++#endif
> +
> + /* We have to signal any supplicant if we are disassociating */
> + if (associated)
> +@@ -6674,7 +6685,11 @@ static int __init ipw2100_init(void)
> + if (ret)
> + goto out;
> +
> ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35))
> + ipw2100_pm_qos_req = pm_qos_add_request(PM_QOS_CPU_DMA_LATENCY,
> ++#else
> ++ pm_qos_add_requirement(PM_QOS_CPU_DMA_LATENCY, "ipw2100",
> ++#endif
> + PM_QOS_DEFAULT_VALUE);
> + #ifdef CONFIG_IPW2100_DEBUG
> + ipw2100_debug_level = debug;
> +@@ -6697,7 +6712,11 @@ static void __exit ipw2100_exit(void)
> + &driver_attr_debug_level);
> + #endif
> + pci_unregister_driver(&ipw2100_pci_driver);
> ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35))
> + pm_qos_remove_request(ipw2100_pm_qos_req);
> ++#else
> ++ pm_qos_remove_requirement(PM_QOS_CPU_DMA_LATENCY, "ipw2100");
> ++#endif
> + }
> +
> + module_init(ipw2100_init);
> +--- a/net/mac80211/mlme.c
> ++++ b/net/mac80211/mlme.c
> +@@ -509,7 +509,11 @@ void ieee80211_recalc_ps(struct ieee8021
> + s32 beaconint_us;
> +
> + if (latency < 0)
> ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35))
> + latency = pm_qos_request(PM_QOS_NETWORK_LATENCY);
> ++#else
> ++ latency = pm_qos_requirement(PM_QOS_NETWORK_LATENCY);
> ++#endif
> +
> + beaconint_us = ieee80211_tu_to_usec(
> + found->vif.bss_conf.beacon_int);
> +--- a/net/mac80211/scan.c
> ++++ b/net/mac80211/scan.c
> +@@ -510,7 +510,11 @@ static int ieee80211_scan_state_decision
> + bad_latency = time_after(jiffies +
> + ieee80211_scan_get_channel_time(next_chan),
> + local->leave_oper_channel_time +
> ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35))
> + usecs_to_jiffies(pm_qos_request(PM_QOS_NETWORK_LATENCY)));
> ++#else
> ++ usecs_to_jiffies(pm_qos_requirement(PM_QOS_NETWORK_LATENCY)));
> ++#endif
> +
> + listen_int_exceeded = time_after(jiffies +
> + ieee80211_scan_get_channel_time(next_chan),
> --
> 1.7.0.4
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
^ permalink raw reply
* [PATCH 2/2] compat-wireless: make patches apply again
From: Hauke Mehrtens @ 2010-05-10 21:24 UTC (permalink / raw)
To: lrodriguez; +Cc: linux-wireless, mcgrof, Hauke Mehrtens
In-Reply-To: <1273526650-26282-1-git-send-email-hauke@hauke-m.de>
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
---
patches/07-change-default-rate-alg.patch | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/patches/07-change-default-rate-alg.patch b/patches/07-change-default-rate-alg.patch
index af65207..f0ccbce 100644
--- a/patches/07-change-default-rate-alg.patch
+++ b/patches/07-change-default-rate-alg.patch
@@ -21,7 +21,7 @@ at compilation time.
module_param(ieee80211_default_rc_algo, charp, 0644);
MODULE_PARM_DESC(ieee80211_default_rc_algo,
"Default rate control algorithm for mac80211 to use");
-@@ -118,8 +118,8 @@ ieee80211_rate_control_ops_get(const cha
+@@ -119,8 +119,8 @@ ieee80211_rate_control_ops_get(const cha
ops = ieee80211_try_rate_control_ops_get(ieee80211_default_rc_algo);
/* try built-in one if specific alg requested but not found */
@@ -29,6 +29,6 @@ at compilation time.
- ops = ieee80211_try_rate_control_ops_get(CONFIG_MAC80211_RC_DEFAULT);
+ if (!ops && strlen(CONFIG_COMPAT_MAC80211_RC_DEFAULT))
+ ops = ieee80211_try_rate_control_ops_get(CONFIG_COMPAT_MAC80211_RC_DEFAULT);
+ kparam_unblock_sysfs_write(ieee80211_default_rc_algo);
return ops;
- }
--
1.7.0.4
^ permalink raw reply related
* [PATCH 1/2] compat-wireless: backport pm_qos_{add,remove,update}_request
From: Hauke Mehrtens @ 2010-05-10 21:24 UTC (permalink / raw)
To: lrodriguez; +Cc: linux-wireless, mcgrof, Hauke Mehrtens
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
---
I have not found a way to backport these changes without using these ifdef.
patches/28-pm-qos-params.patch | 89 ++++++++++++++++++++++++++++++++++++++++
1 files changed, 89 insertions(+), 0 deletions(-)
create mode 100644 patches/28-pm-qos-params.patch
diff --git a/patches/28-pm-qos-params.patch b/patches/28-pm-qos-params.patch
new file mode 100644
index 0000000..4c3966a
--- /dev/null
+++ b/patches/28-pm-qos-params.patch
@@ -0,0 +1,89 @@
+--- a/drivers/net/wireless/ipw2x00/ipw2100.c
++++ b/drivers/net/wireless/ipw2x00/ipw2100.c
+@@ -174,7 +174,9 @@ that only one external action is invoked
+ #define DRV_DESCRIPTION "Intel(R) PRO/Wireless 2100 Network Driver"
+ #define DRV_COPYRIGHT "Copyright(c) 2003-2006 Intel Corporation"
+
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35))
+ struct pm_qos_request_list *ipw2100_pm_qos_req;
++#endif
+
+ /* Debugging stuff */
+ #ifdef CONFIG_IPW2100_DEBUG
+@@ -1741,7 +1743,11 @@ static int ipw2100_up(struct ipw2100_pri
+ /* the ipw2100 hardware really doesn't want power management delays
+ * longer than 175usec
+ */
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35))
+ pm_qos_update_request(ipw2100_pm_qos_req, 175);
++#else
++ pm_qos_update_requirement(PM_QOS_CPU_DMA_LATENCY, "ipw2100", 175);
++#endif
+
+ /* If the interrupt is enabled, turn it off... */
+ spin_lock_irqsave(&priv->low_lock, flags);
+@@ -1889,7 +1895,12 @@ static void ipw2100_down(struct ipw2100_
+ ipw2100_disable_interrupts(priv);
+ spin_unlock_irqrestore(&priv->low_lock, flags);
+
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35))
+ pm_qos_update_request(ipw2100_pm_qos_req, PM_QOS_DEFAULT_VALUE);
++#else
++ pm_qos_update_requirement(PM_QOS_CPU_DMA_LATENCY, "ipw2100",
++ PM_QOS_DEFAULT_VALUE);
++#endif
+
+ /* We have to signal any supplicant if we are disassociating */
+ if (associated)
+@@ -6674,7 +6685,11 @@ static int __init ipw2100_init(void)
+ if (ret)
+ goto out;
+
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35))
+ ipw2100_pm_qos_req = pm_qos_add_request(PM_QOS_CPU_DMA_LATENCY,
++#else
++ pm_qos_add_requirement(PM_QOS_CPU_DMA_LATENCY, "ipw2100",
++#endif
+ PM_QOS_DEFAULT_VALUE);
+ #ifdef CONFIG_IPW2100_DEBUG
+ ipw2100_debug_level = debug;
+@@ -6697,7 +6712,11 @@ static void __exit ipw2100_exit(void)
+ &driver_attr_debug_level);
+ #endif
+ pci_unregister_driver(&ipw2100_pci_driver);
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35))
+ pm_qos_remove_request(ipw2100_pm_qos_req);
++#else
++ pm_qos_remove_requirement(PM_QOS_CPU_DMA_LATENCY, "ipw2100");
++#endif
+ }
+
+ module_init(ipw2100_init);
+--- a/net/mac80211/mlme.c
++++ b/net/mac80211/mlme.c
+@@ -509,7 +509,11 @@ void ieee80211_recalc_ps(struct ieee8021
+ s32 beaconint_us;
+
+ if (latency < 0)
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35))
+ latency = pm_qos_request(PM_QOS_NETWORK_LATENCY);
++#else
++ latency = pm_qos_requirement(PM_QOS_NETWORK_LATENCY);
++#endif
+
+ beaconint_us = ieee80211_tu_to_usec(
+ found->vif.bss_conf.beacon_int);
+--- a/net/mac80211/scan.c
++++ b/net/mac80211/scan.c
+@@ -510,7 +510,11 @@ static int ieee80211_scan_state_decision
+ bad_latency = time_after(jiffies +
+ ieee80211_scan_get_channel_time(next_chan),
+ local->leave_oper_channel_time +
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35))
+ usecs_to_jiffies(pm_qos_request(PM_QOS_NETWORK_LATENCY)));
++#else
++ usecs_to_jiffies(pm_qos_requirement(PM_QOS_NETWORK_LATENCY)));
++#endif
+
+ listen_int_exceeded = time_after(jiffies +
+ ieee80211_scan_get_channel_time(next_chan),
--
1.7.0.4
^ permalink raw reply related
* [PATCH 1/2] compat: move kparam_{block,unblock}_sysfs_write
From: Hauke Mehrtens @ 2010-05-10 21:22 UTC (permalink / raw)
To: lrodriguez; +Cc: linux-wireless, mcgrof, Hauke Mehrtens
kparam_block_sysfs_write and kparam_unblock_sysfs_write will introduced
in kernel 2.6.35 and not 2.6.33.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
---
include/linux/compat-2.6.33.h | 3 ---
include/linux/compat-2.6.35.h | 3 +++
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/include/linux/compat-2.6.33.h b/include/linux/compat-2.6.33.h
index 70e5f98..0b434fc 100644
--- a/include/linux/compat-2.6.33.h
+++ b/include/linux/compat-2.6.33.h
@@ -54,9 +54,6 @@ static inline void compat_release_firmware(const struct firmware *fw)
#define IFF_DONT_BRIDGE 0x800 /* disallow bridging this ether dev */
/* source: include/linux/if.h */
-#define kparam_block_sysfs_write(a)
-#define kparam_unblock_sysfs_write(a)
-
/* this will never happen on older kernels */
#define NETDEV_POST_INIT 0xffff
diff --git a/include/linux/compat-2.6.35.h b/include/linux/compat-2.6.35.h
index 9c6e696..278af5e 100644
--- a/include/linux/compat-2.6.35.h
+++ b/include/linux/compat-2.6.35.h
@@ -23,6 +23,9 @@ static inline wait_queue_head_t *sk_sleep(struct sock *sk)
#define usb_alloc_coherent(dev, size, mem_flags, dma) usb_buffer_alloc(dev, size, mem_flags, dma)
#define usb_free_coherent(dev, size, addr, dma) usb_buffer_free(dev, size, addr, dma)
+#define kparam_block_sysfs_write(a)
+#define kparam_unblock_sysfs_write(a)
+
#endif /* (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,35)) */
#endif /* LINUX_26_35_COMPAT_H */
--
1.7.0.4
^ permalink raw reply related
* [PATCH 2/2] compat: move usb_{alloc,free}_coherent
From: Hauke Mehrtens @ 2010-05-10 21:22 UTC (permalink / raw)
To: lrodriguez; +Cc: linux-wireless, mcgrof, Hauke Mehrtens
In-Reply-To: <1273526569-22845-1-git-send-email-hauke@hauke-m.de>
usb_alloc_coherent and usb_free_coherent were introduced in kernel 2.6.34.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
---
include/linux/compat-2.6.34.h | 3 +++
include/linux/compat-2.6.35.h | 3 ---
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/include/linux/compat-2.6.34.h b/include/linux/compat-2.6.34.h
index 18ae456..2870a3b 100644
--- a/include/linux/compat-2.6.34.h
+++ b/include/linux/compat-2.6.34.h
@@ -197,6 +197,9 @@ do { \
*/
#define sysfs_bin_attr_init(bin_attr) sysfs_attr_init(&(bin_attr)->attr)
+#define usb_alloc_coherent(dev, size, mem_flags, dma) usb_buffer_alloc(dev, size, mem_flags, dma)
+#define usb_free_coherent(dev, size, addr, dma) usb_buffer_free(dev, size, addr, dma)
+
#endif /* (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,34)) */
#endif /* LINUX_26_34_COMPAT_H */
diff --git a/include/linux/compat-2.6.35.h b/include/linux/compat-2.6.35.h
index 278af5e..b850f8a 100644
--- a/include/linux/compat-2.6.35.h
+++ b/include/linux/compat-2.6.35.h
@@ -20,9 +20,6 @@ static inline wait_queue_head_t *sk_sleep(struct sock *sk)
return sk->sk_sleep;
}
-#define usb_alloc_coherent(dev, size, mem_flags, dma) usb_buffer_alloc(dev, size, mem_flags, dma)
-#define usb_free_coherent(dev, size, addr, dma) usb_buffer_free(dev, size, addr, dma)
-
#define kparam_block_sysfs_write(a)
#define kparam_unblock_sysfs_write(a)
--
1.7.0.4
^ permalink raw reply related
* Using wireless.kernel.org for Bluetooth documentation as well ?
From: Luis R. Rodriguez @ 2010-05-10 19:45 UTC (permalink / raw)
To: linux-wireless, linux-bluetooth, linux-kernel
Cc: John W. Linville, Marcel Holtmann, Johannes Berg
Today we have a wealth of information on 802.11 Linux wireless on
http://wireless.kernel.org and I think the wiki model has worked
wonders for us. I wanted to see what you thought of using the same
site as a source of documentation for Bluetooth as well. We already
have *some* Bluetooth documentation [1], and we could just point to
the BlueZ pages for other docs but it doesn't seem to use a wiki and
those google ads do blind my right eye.
Thoughts?
[1] http://wireless.kernel.org/en/users/Documentation/Bluetooth-coexistence
[2] http://www.bluez.org
Luis
^ permalink raw reply
* Re:
From: Luis R. Rodriguez @ 2010-05-10 19:26 UTC (permalink / raw)
To: linville; +Cc: linux-wireless
In-Reply-To: <1273519372-21934-1-git-send-email-lrodriguez@atheros.com>
eek sorry, forgot the sha1sum on git format-patch :)
On Mon, May 10, 2010 at 12:22 PM, Luis R. Rodriguez
<lrodriguez@atheros.com> wrote:
> --
> To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
^ permalink raw reply
* [PATCH] ath5k: drop warning on jumbo frames
From: Luis R. Rodriguez @ 2010-05-10 19:26 UTC (permalink / raw)
To: linville; +Cc: linux-wireless, Luis R. Rodriguez, stable
Jumbo frames are not supported, and if they are seen it is likely
a bogus frame so just silently discard them instead of warning on
them all time. Also, instead of dropping them immediately though
move the check *after* we check for all sort of frame errors. This
should enable us to discard these frames if the hardware picks
other bogus items first. Lets see if we still get those jumbo
counters increasing still with this.
Jumbo frames would happen if we tell hardware we can support
a small 802.11 chunks of DMA'd frame, hardware would split RX'd
frames into parts and we'd have to reconstruct them in software.
This is done with USB due to the bulk size but with ath5k we
already provide a good limit to hardware and this should not be
happening.
This is reported quite often and if it fills the logs then this
needs to be addressed and to avoid spurious reports.
Cc: stable@kernel.org
Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>
---
drivers/net/wireless/ath/ath5k/base.c | 12 ++++++------
1 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/drivers/net/wireless/ath/ath5k/base.c b/drivers/net/wireless/ath/ath5k/base.c
index 3cf35c4..9c27623 100644
--- a/drivers/net/wireless/ath/ath5k/base.c
+++ b/drivers/net/wireless/ath/ath5k/base.c
@@ -1932,12 +1932,6 @@ ath5k_tasklet_rx(unsigned long data)
sc->stats.rx_all_count++;
- if (unlikely(rs.rs_more)) {
- ATH5K_WARN(sc, "unsupported jumbo\n");
- sc->stats.rxerr_jumbo++;
- goto next;
- }
-
if (unlikely(rs.rs_status)) {
if (rs.rs_status & AR5K_RXERR_CRC)
sc->stats.rxerr_crc++;
@@ -1977,6 +1971,12 @@ ath5k_tasklet_rx(unsigned long data)
sc->opmode != NL80211_IFTYPE_MONITOR)
goto next;
}
+
+ if (unlikely(rs.rs_more)) {
+ sc->stats.rxerr_jumbo++;
+ goto next;
+
+ }
accept:
next_skb = ath5k_rx_skb_alloc(sc, &next_skb_addr);
--
1.6.3.3
^ permalink raw reply related
* Re: Jumbo frame messages?
From: Luis R. Rodriguez @ 2010-05-10 19:09 UTC (permalink / raw)
To: Philip A. Prindeville; +Cc: wireless
In-Reply-To: <4BE6FAED.4030407@redfish-solutions.com>
On Sun, May 9, 2010 at 11:11 AM, Philip A. Prindeville
<philipp_subx@redfish-solutions.com> wrote:
> I'm running linux 2.6.27.42 with compat-wireless 2010-04-26 and using an
> AR-5413 card (ath5k).
>
> I'm also running hostapd 0.7.1 with WPA2 authentication.
>
> I'm seeing a lot of:
>
> May 9 12:07:21 pbx user.warn kernel: ath5k phy0: unsupported jumbo
>
> I thought this issue was resolved a while ago.
>
> Anyone have a root cause on this, or a workaround?
These frames should just be dropped and the warning removed.
Luis
^ permalink raw reply
* Re: [PATCH] wireless: depends on NET
From: John W. Linville @ 2010-05-10 18:58 UTC (permalink / raw)
To: Randy Dunlap; +Cc: linux-wireless, davem
In-Reply-To: <20100510092429.a8ddcc8d.randy.dunlap@oracle.com>
On Mon, May 10, 2010 at 09:24:29AM -0700, Randy Dunlap wrote:
> From: Randy Dunlap <randy.dunlap@oracle.com>
>
> When CONFIG_NET is disabled, the attempt to build wext-priv.c
> fails with:
>
> net/wireless/wext-priv.c: In function 'ioctl_private_call':
> net/wireless/wext-priv.c:207: error: implicit declaration of function 'call_commit_handler'
>
> Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com>
> ---
> Has this been omitted on purpose??
I doubt it...thanks for the patch!
John
--
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: kernel BUG in iwl-agn-rs.c:2076, WAS: iwlagn + some accesspoint == hardlock
From: Nils Radtke @ 2010-05-10 18:36 UTC (permalink / raw)
To: linville; +Cc: linux-kernel, reinette.chatre, linux-wireless
In-Reply-To: <20100503192219.GE25748@tuxdriver.com>
Hi John,
Today weather was fine again, finally. So testing with .33.3 w/ the patch applied:
http://marc.info/?l=linux-wireless&m=127290931304496&w=2
The kernel kernel .32 was still running before it crashed immediately on wireless activation.
The crash log showed again at least two messages, the last was as already described in my first
message, bug from 2010-04-30: I think even the 0x2030 was the same:
EIP rs_tx_status +x8f/x2030
W/ .33.3 and the above patch applied:
Linux mypole 2.6.33.3 #18 SMP PREEMPT Thu May 6 21:51:37 CEST 2010 i686 GNU/Linux
May 10 19:14:11 [ 80.586637] iwlagn 0000:03:00.0: expected_tpt should have been calculated by now
May 10 19:23:17 [ 626.476078] iwlagn 0000:03:00.0: expected_tpt should have been calculated by now
May 10 19:23:30 [ 638.913740] iwlagn 0000:03:00.0: expected_tpt should have been calculated by now
May 10 19:23:32 [ 641.232425] iwlagn 0000:03:00.0: expected_tpt should have been calculated by now
May 10 19:23:54 [ 663.392697] iwlagn 0000:03:00.0: expected_tpt should have been calculated by now
May 10 19:23:58 [ 666.980247] iwlagn 0000:03:00.0: expected_tpt should have been calculated by now
May 10 19:24:02 [ 671.121826] iwlagn 0000:03:00.0: expected_tpt should have been calculated by now
Additionally these were logged, could you tell why they're there and what to do? (also .33.3 w/ patch)
May 10 19:24:16 [ 685.079617] iwlagn 0000:03:00.0: iwl_tx_agg_start on ra = 00:1a:70:12:23:25 tid = 0
May 10 19:24:22 [ 691.026737] iwlagn 0000:03:00.0: iwl_tx_agg_start on ra = 00:1a:70:12:23:25 tid = 0
May 10 19:28:02 [ 911.406162] iwlagn 0000:03:00.0: iwl_tx_agg_start on ra = 00:1a:70:12:23:25 tid = 0
May 10 19:35:38 [ 1367.251240] iwlagn 0000:03:00.0: iwl_tx_agg_start on ra = 00:1a:70:12:23:25 tid = 0
The above "iwl_tx_agg_start" lines happen when connecting - again to a Cisco AP - and the connection gets
dropped the exact moment when a download is started. It even often drops when dhcp is still negotiating, has
got it's IP but the nego isn't finished yet. Conn drops, same procedure again and again. This happens only
with this Cisco AP (which is BTW another one from the "expected_tpt should have been calculated by now"
problem).
Another type occurred: (probably .33.2 or something)
May 3 17:58:11 [ 3946.608743] iwlagn 0000:03:00.0: request scan called when driver not ready.
May 3 17:58:12 [ 3948.082684] iwlagn 0000:03:00.0: TX Power requested while scanning!
May 3 18:01:00 [ 4115.282852] iwlagn 0000:03:00.0: RF_KILL bit toggled to disable radio.
Is this "TX Power requested while scanning" because of RF_KILL set to off?
Thank you,
Nils
^ permalink raw reply
* pull request: wireless-2.6 2010-05-10
From: John W. Linville @ 2010-05-10 17:43 UTC (permalink / raw)
To: davem; +Cc: linux-wireless, netdev, linux-kernel
Dave,
Here are three more candidates for 2.6.34. I hesitated to push them,
but at least two of them are documented regressions and the other (i.e.
"iwlwifi: work around passive scan issue") avoids some rather annoying
firmware restarts at little or no risk. I think it would be good to
take these now rather than later.
Please let me know if there are problems!
Thanks,
John
---
The following changes since commit 80ea76bb2575c426154b8d61d324197ee3592baa:
David S. Miller (1):
phy: Fix initialization in micrel driver.
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git master
Christian Lamparter (1):
ar9170: wait for asynchronous firmware loading
Johannes Berg (1):
iwlwifi: work around passive scan issue
Reinette Chatre (1):
mac80211: remove association work when processing deauth request
drivers/net/wireless/ath/ar9170/usb.c | 11 +++++++++++
drivers/net/wireless/ath/ar9170/usb.h | 1 +
drivers/net/wireless/iwlwifi/iwl-commands.h | 4 +++-
drivers/net/wireless/iwlwifi/iwl-scan.c | 23 ++++++++++++++++++-----
drivers/net/wireless/iwlwifi/iwl3945-base.c | 3 ++-
net/mac80211/mlme.c | 3 ++-
6 files changed, 37 insertions(+), 8 deletions(-)
diff --git a/drivers/net/wireless/ath/ar9170/usb.c b/drivers/net/wireless/ath/ar9170/usb.c
index 6b1cb70..24dc555 100644
--- a/drivers/net/wireless/ath/ar9170/usb.c
+++ b/drivers/net/wireless/ath/ar9170/usb.c
@@ -726,12 +726,16 @@ static void ar9170_usb_firmware_failed(struct ar9170_usb *aru)
{
struct device *parent = aru->udev->dev.parent;
+ complete(&aru->firmware_loading_complete);
+
/* unbind anything failed */
if (parent)
down(&parent->sem);
device_release_driver(&aru->udev->dev);
if (parent)
up(&parent->sem);
+
+ usb_put_dev(aru->udev);
}
static void ar9170_usb_firmware_finish(const struct firmware *fw, void *context)
@@ -760,6 +764,8 @@ static void ar9170_usb_firmware_finish(const struct firmware *fw, void *context)
if (err)
goto err_unrx;
+ complete(&aru->firmware_loading_complete);
+ usb_put_dev(aru->udev);
return;
err_unrx:
@@ -857,6 +863,7 @@ static int ar9170_usb_probe(struct usb_interface *intf,
init_usb_anchor(&aru->tx_pending);
init_usb_anchor(&aru->tx_submitted);
init_completion(&aru->cmd_wait);
+ init_completion(&aru->firmware_loading_complete);
spin_lock_init(&aru->tx_urb_lock);
aru->tx_pending_urbs = 0;
@@ -876,6 +883,7 @@ static int ar9170_usb_probe(struct usb_interface *intf,
if (err)
goto err_freehw;
+ usb_get_dev(aru->udev);
return request_firmware_nowait(THIS_MODULE, 1, "ar9170.fw",
&aru->udev->dev, GFP_KERNEL, aru,
ar9170_usb_firmware_step2);
@@ -895,6 +903,9 @@ static void ar9170_usb_disconnect(struct usb_interface *intf)
return;
aru->common.state = AR9170_IDLE;
+
+ wait_for_completion(&aru->firmware_loading_complete);
+
ar9170_unregister(&aru->common);
ar9170_usb_cancel_urbs(aru);
diff --git a/drivers/net/wireless/ath/ar9170/usb.h b/drivers/net/wireless/ath/ar9170/usb.h
index a2ce3b1..919b060 100644
--- a/drivers/net/wireless/ath/ar9170/usb.h
+++ b/drivers/net/wireless/ath/ar9170/usb.h
@@ -71,6 +71,7 @@ struct ar9170_usb {
unsigned int tx_pending_urbs;
struct completion cmd_wait;
+ struct completion firmware_loading_complete;
int readlen;
u8 *readbuf;
diff --git a/drivers/net/wireless/iwlwifi/iwl-commands.h b/drivers/net/wireless/iwlwifi/iwl-commands.h
index 6383d9f..f4e59ae 100644
--- a/drivers/net/wireless/iwlwifi/iwl-commands.h
+++ b/drivers/net/wireless/iwlwifi/iwl-commands.h
@@ -2621,7 +2621,9 @@ struct iwl_ssid_ie {
#define PROBE_OPTION_MAX_3945 4
#define PROBE_OPTION_MAX 20
#define TX_CMD_LIFE_TIME_INFINITE cpu_to_le32(0xFFFFFFFF)
-#define IWL_GOOD_CRC_TH cpu_to_le16(1)
+#define IWL_GOOD_CRC_TH_DISABLED 0
+#define IWL_GOOD_CRC_TH_DEFAULT cpu_to_le16(1)
+#define IWL_GOOD_CRC_TH_NEVER cpu_to_le16(0xffff)
#define IWL_MAX_SCAN_SIZE 1024
#define IWL_MAX_CMD_SIZE 4096
#define IWL_MAX_PROBE_REQUEST 200
diff --git a/drivers/net/wireless/iwlwifi/iwl-scan.c b/drivers/net/wireless/iwlwifi/iwl-scan.c
index 5062f4e..2367286 100644
--- a/drivers/net/wireless/iwlwifi/iwl-scan.c
+++ b/drivers/net/wireless/iwlwifi/iwl-scan.c
@@ -812,16 +812,29 @@ static void iwl_bg_request_scan(struct work_struct *data)
rate = IWL_RATE_1M_PLCP;
rate_flags = RATE_MCS_CCK_MSK;
}
- scan->good_CRC_th = 0;
+ scan->good_CRC_th = IWL_GOOD_CRC_TH_DISABLED;
} else if (priv->scan_bands & BIT(IEEE80211_BAND_5GHZ)) {
band = IEEE80211_BAND_5GHZ;
rate = IWL_RATE_6M_PLCP;
/*
- * If active scaning is requested but a certain channel
- * is marked passive, we can do active scanning if we
- * detect transmissions.
+ * If active scanning is requested but a certain channel is
+ * marked passive, we can do active scanning if we detect
+ * transmissions.
+ *
+ * There is an issue with some firmware versions that triggers
+ * a sysassert on a "good CRC threshold" of zero (== disabled),
+ * on a radar channel even though this means that we should NOT
+ * send probes.
+ *
+ * The "good CRC threshold" is the number of frames that we
+ * need to receive during our dwell time on a channel before
+ * sending out probes -- setting this to a huge value will
+ * mean we never reach it, but at the same time work around
+ * the aforementioned issue. Thus use IWL_GOOD_CRC_TH_NEVER
+ * here instead of IWL_GOOD_CRC_TH_DISABLED.
*/
- scan->good_CRC_th = is_active ? IWL_GOOD_CRC_TH : 0;
+ scan->good_CRC_th = is_active ? IWL_GOOD_CRC_TH_DEFAULT :
+ IWL_GOOD_CRC_TH_NEVER;
/* Force use of chains B and C (0x6) for scan Rx for 4965
* Avoid A (0x1) because of its off-channel reception on A-band.
diff --git a/drivers/net/wireless/iwlwifi/iwl3945-base.c b/drivers/net/wireless/iwlwifi/iwl3945-base.c
index e276f2a..2f47d93 100644
--- a/drivers/net/wireless/iwlwifi/iwl3945-base.c
+++ b/drivers/net/wireless/iwlwifi/iwl3945-base.c
@@ -2966,7 +2966,8 @@ static void iwl3945_bg_request_scan(struct work_struct *data)
* is marked passive, we can do active scanning if we
* detect transmissions.
*/
- scan->good_CRC_th = is_active ? IWL_GOOD_CRC_TH : 0;
+ scan->good_CRC_th = is_active ? IWL_GOOD_CRC_TH_DEFAULT :
+ IWL_GOOD_CRC_TH_DISABLED;
band = IEEE80211_BAND_5GHZ;
} else {
IWL_WARN(priv, "Invalid scan band count\n");
diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c
index 8a96503..6ccd48e 100644
--- a/net/mac80211/mlme.c
+++ b/net/mac80211/mlme.c
@@ -2029,7 +2029,8 @@ int ieee80211_mgd_deauth(struct ieee80211_sub_if_data *sdata,
continue;
if (wk->type != IEEE80211_WORK_DIRECT_PROBE &&
- wk->type != IEEE80211_WORK_AUTH)
+ wk->type != IEEE80211_WORK_AUTH &&
+ wk->type != IEEE80211_WORK_ASSOC)
continue;
if (memcmp(req->bss->bssid, wk->filter_ta, ETH_ALEN))
--
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 related
* [PATCH] wireless: depends on NET
From: Randy Dunlap @ 2010-05-10 16:24 UTC (permalink / raw)
To: linux-wireless; +Cc: John W. Linville, davem
From: Randy Dunlap <randy.dunlap@oracle.com>
When CONFIG_NET is disabled, the attempt to build wext-priv.c
fails with:
net/wireless/wext-priv.c: In function 'ioctl_private_call':
net/wireless/wext-priv.c:207: error: implicit declaration of function 'call_commit_handler'
Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com>
---
Has this been omitted on purpose??
drivers/net/wireless/Kconfig | 1 +
1 file changed, 1 insertion(+)
--- lnx-2634-rc7.orig/drivers/net/wireless/Kconfig
+++ lnx-2634-rc7/drivers/net/wireless/Kconfig
@@ -5,6 +5,7 @@
menuconfig WLAN
bool "Wireless LAN"
depends on !S390
+ depends on NET
select WIRELESS
default y
---help---
^ permalink raw reply
* Re: 2.6.34-rc6-git6: Reported regressions from 2.6.33
From: Nick Bowler @ 2010-05-10 16:07 UTC (permalink / raw)
To: Rafael J. Wysocki
Cc: Linux Kernel Mailing List, Maciej Rutecki, Andrew Morton,
Linus Torvalds, Kernel Testers List, Network Development,
Linux ACPI, Linux PM List, Linux SCSI List, Linux Wireless List,
DRI
In-Reply-To: <10aqDnTJcLO.A.mLE.48y5LB@chimera>
On 23:13 Sun 09 May , Rafael J. Wysocki wrote:
> This message contains a list of some regressions from 2.6.33,
> for which there are no fixes in the mainline known to the tracking team.
> If any of them have been fixed already, please let us know.
>
> If you know of any other unresolved regressions from 2.6.33, please let us
> know either and we'll add them to the list. Also, please let us know
> if any of the entries below are invalid.
Seems that
r600 CS checker rejects narrow FBO renderbuffers
https://bugs.freedesktop.org/show_bug.cgi?id=27609
never got added to the list. It is still an issue as of 2.6.34-rc7.
--
Nick Bowler, Elliptic Technologies (http://www.elliptictech.com/)
^ permalink raw reply
* Re: [patch 3/9] ath9k: cleanup: u32 => bool
From: Pavel Roskin @ 2010-05-10 15:00 UTC (permalink / raw)
To: Dan Carpenter
Cc: Johannes Berg, Luis R. Rodriguez, Jouni Malinen, Sujith Manoharan,
Vasanthakumar Thiagarajan, Senthil Balasubramanian,
John W. Linville, Felix Fietkau, linux-wireless, ath9k-devel
In-Reply-To: <20100510144625.GW27064@bicker>
Quoting Dan Carpenter <error27@gmail.com>:
> Smatch complains we negate a non-boolean type here:
>
> if (!on != aniState->ofdmWeakSigDetectOff) {
>
> It's a quite common bug to forget that negation has higher precendence
> than compare operations. In this case, it's clear from code that "on" is
> either 1 or 0 so smatch should not complain.
We could rename ofdmWeakSigDetectOff to ofdmWeakSigDetectOn and change
the logic appropriately. Positive logic is easier to understand in
the long run.
ofdmWeakSigDetectOn could be boolean and "on" could be int, since it's
an index. The comparison could use !!on to convert int to boolean.
--
Regards,
Pavel Roskin
^ permalink raw reply
* Re: [patch 3/9] ath9k: cleanup: u32 => bool
From: Dan Carpenter @ 2010-05-10 14:46 UTC (permalink / raw)
To: Johannes Berg
Cc: Luis R. Rodriguez, Jouni Malinen, Sujith Manoharan,
Vasanthakumar Thiagarajan, Senthil Balasubramanian,
John W. Linville, Felix Fietkau, linux-wireless, ath9k-devel
In-Reply-To: <1273477106.3573.0.camel@jlt3.sipsolutions.net>
On Mon, May 10, 2010 at 09:38:26AM +0200, Johannes Berg wrote:
> On Sat, 2010-05-08 at 18:22 +0200, Dan Carpenter wrote:
>
> > + bool on = param ? 1 : 0;
>
> umm, if you're going to use bool then use true/false too.
>
> johannes
The 1 and 0 are used as array indexes so it looks funny to use true and
false.
Let's just drop this patch. I wrote it to silence a smatch false
positive but I should/will just fix smatch instead.
Smatch complains we negate a non-boolean type here:
if (!on != aniState->ofdmWeakSigDetectOff) {
It's a quite common bug to forget that negation has higher precendence
than compare operations. In this case, it's clear from code that "on" is
either 1 or 0 so smatch should not complain.
regards,
dan carpenter
^ permalink raw reply
* Re: [PATCH] ssb: Handle alternate SSPROM location
From: Michael Buesch @ 2010-05-10 13:59 UTC (permalink / raw)
To: Larry Finger; +Cc: John W Linville, b43-dev, linux-wireless
In-Reply-To: <4be77726.2Sqkr0ilm/WZUNRg%Larry.Finger@lwfinger.net>
On Monday 10 May 2010 05:01:58 Larry Finger wrote:
> Index: wireless-testing/drivers/ssb/driver_chipcommon.c
> ===================================================================
> --- wireless-testing.orig/drivers/ssb/driver_chipcommon.c
> +++ wireless-testing/drivers/ssb/driver_chipcommon.c
> @@ -252,15 +252,17 @@ void ssb_chipcommon_init(struct ssb_chip
> {
> u16 delay;
>
> + cc->status = 0;
Not needed. All data structures are zero'd by default.
--
Greetings, Michael.
^ permalink raw reply
* Re: [PATCH] mac80211: remove deprecated noise field from ieee80211_rx_status
From: John W. Linville @ 2010-05-10 13:26 UTC (permalink / raw)
To: Bruno Randolf; +Cc: linux-wireless, johannes
In-Reply-To: <201005101015.50172.br1@einfach.org>
On Mon, May 10, 2010 at 10:15:50AM +0900, Bruno Randolf wrote:
> On Saturday 01 May 2010 04:39:11 John W. Linville wrote:
> > Also remove associated IEEE80211_HW_NOISE_DBM from ieee80211_hw_flags.
> >
> > Signed-off-by: John W. Linville <linville@tuxdriver.com>
> sorry for the late reply:
>
> please, don't... this way we loose the information which drivers can report
> noise values and which can't.
Well, I'm afraid it's already on its way. Anyway, we can rely on the
git logs to track that information, and I've got a personal TODO for
implementing basic survey support for those drivers.
Hth!
John
--
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: [ath9k-devel] [patch 2/9] ath9k: range checking issues in htc_hst.c
From: Pavel Roskin @ 2010-05-10 12:17 UTC (permalink / raw)
To: Sujith
Cc: Dan Carpenter, Vasanth Thiagarajan, Luis Rodriguez,
linux-wireless@vger.kernel.org, John W. Linville,
Senthilkumar Balasubramanian, ath9k-devel@lists.ath9k.org,
Jouni Malinen
In-Reply-To: <19431.58619.856626.694277@gargle.gargle.HOWL>
On Mon, 2010-05-10 at 16:20 +0530, Sujith wrote:
> Ah right. That should be fixed.
I suggest using ARRAY_SIZE(target->endpoint) to be sure.
--
Regards,
Pavel Roskin
^ permalink raw reply
* Re: [patch 2/9] ath9k: range checking issues in htc_hst.c
From: Sujith @ 2010-05-10 10:50 UTC (permalink / raw)
To: Dan Carpenter
Cc: Luis Rodriguez, Jouni Malinen, Vasanth Thiagarajan,
Senthilkumar Balasubramanian, John W. Linville, Ming Lei,
linux-wireless@vger.kernel.org, ath9k-devel@lists.ath9k.org
In-Reply-To: <20100510102319.GV27064@bicker>
Dan Carpenter wrote:
> I'm afraid I don't understand. ENDPOINT_MAX is 22 and HST_ENDPOINT_MAX
> is 8. The htc_target struct is defined as having 8 endpoints.
>
> drivers/net/wireless/ath/ath9k/htc_hst.h
> 137 struct htc_target {
> 138 void *hif_dev;
> 139 struct ath9k_htc_priv *drv_priv;
> 140 struct device *dev;
> 141 struct ath9k_htc_hif *hif;
> 142 struct htc_endpoint endpoint[HST_ENDPOINT_MAX];
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^
>
> So in the original code:
> drivers/net/wireless/ath/ath9k/htc_hst.c
> 119 for (tepid = ENDPOINT_MAX; tepid > ENDPOINT0; tepid--) {
> 120 tmp_endpoint = &target->endpoint[tepid];
> ^^^^^^^^^^^^^^^^^^^^^^^^^
>
> We are past the end of the array here. 22 vs 7.
>
> Perhaps the htc_target struct should be changed to ENDPOINT_MAX?
Ah right. That should be fixed.
Sujith
^ permalink raw reply
* Re: [patch 2/9] ath9k: range checking issues in htc_hst.c
From: Dan Carpenter @ 2010-05-10 10:23 UTC (permalink / raw)
To: Sujith
Cc: Luis Rodriguez, Jouni Malinen, Vasanth Thiagarajan,
Senthilkumar Balasubramanian, John W. Linville, Ming Lei,
linux-wireless@vger.kernel.org, ath9k-devel@lists.ath9k.org
In-Reply-To: <19431.36216.198492.247202@gargle.gargle.HOWL>
On Mon, May 10, 2010 at 10:07:12AM +0530, Sujith wrote:
> Dan Carpenter wrote:
> > The original code had ENDPOINT_MAX and HST_ENDPOINT_MAX switched.
>
> Hm, no.
>
I'm afraid I don't understand. ENDPOINT_MAX is 22 and HST_ENDPOINT_MAX
is 8. The htc_target struct is defined as having 8 endpoints.
drivers/net/wireless/ath/ath9k/htc_hst.h
137 struct htc_target {
138 void *hif_dev;
139 struct ath9k_htc_priv *drv_priv;
140 struct device *dev;
141 struct ath9k_htc_hif *hif;
142 struct htc_endpoint endpoint[HST_ENDPOINT_MAX];
^^^^^^^^^^^^^^^^^^^^^^^^^^^
So in the original code:
drivers/net/wireless/ath/ath9k/htc_hst.c
119 for (tepid = ENDPOINT_MAX; tepid > ENDPOINT0; tepid--) {
120 tmp_endpoint = &target->endpoint[tepid];
^^^^^^^^^^^^^^^^^^^^^^^^^
We are past the end of the array here. 22 vs 7.
Perhaps the htc_target struct should be changed to ENDPOINT_MAX?
regards,
dan carpenter
^ permalink raw reply
* Re: [PATCH] [PATCH 1/1] wireless: rt2x00: rt2800usb: replace X by x
From: Ivo Van Doorn @ 2010-05-10 9:47 UTC (permalink / raw)
To: Xose Vazquez Perez; +Cc: linux-wireless, users, linville, gwingerde
In-Reply-To: <1273484136-1969-1-git-send-email-xose.vazquez@gmail.com>
On Mon, May 10, 2010 at 11:35 AM, Xose Vazquez Perez
<xose.vazquez@gmail.com> wrote:
> s/X/x
>
> Signed-off-by: Xose Vazquez Perez <xose.vazquez@gmail.com>
Acked-by: Ivo van Doorn <IvDoorn@gmail.com>
> ---
> drivers/net/wireless/rt2x00/rt2800usb.c | 2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/drivers/net/wireless/rt2x00/rt2800usb.c b/drivers/net/wireless/rt2x00/rt2800usb.c
> index e3f3a97..456d265 100644
> --- a/drivers/net/wireless/rt2x00/rt2800usb.c
> +++ b/drivers/net/wireless/rt2x00/rt2800usb.c
> @@ -841,7 +841,7 @@ static struct usb_device_id rt2800usb_device_table[] = {
> { USB_DEVICE(0x7392, 0x7717), USB_DEVICE_DATA(&rt2800usb_ops) },
> { USB_DEVICE(0x7392, 0x7718), USB_DEVICE_DATA(&rt2800usb_ops) },
> /* EnGenius */
> - { USB_DEVICE(0X1740, 0x9701), USB_DEVICE_DATA(&rt2800usb_ops) },
> + { USB_DEVICE(0x1740, 0x9701), USB_DEVICE_DATA(&rt2800usb_ops) },
> { USB_DEVICE(0x1740, 0x9702), USB_DEVICE_DATA(&rt2800usb_ops) },
> /* Gigabyte */
> { USB_DEVICE(0x1044, 0x800b), USB_DEVICE_DATA(&rt2800usb_ops) },
> --
> 1.6.6.1
>
>
^ permalink raw reply
* [PATCH] [PATCH 1/1] wireless: rt2x00: rt2800usb: replace X by x
From: Xose Vazquez Perez @ 2010-05-10 9:35 UTC (permalink / raw)
To: linux-wireless; +Cc: users, linville, IvDoorn, gwingerde, Xose Vazquez Perez
s/X/x
Signed-off-by: Xose Vazquez Perez <xose.vazquez@gmail.com>
---
drivers/net/wireless/rt2x00/rt2800usb.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/drivers/net/wireless/rt2x00/rt2800usb.c b/drivers/net/wireless/rt2x00/rt2800usb.c
index e3f3a97..456d265 100644
--- a/drivers/net/wireless/rt2x00/rt2800usb.c
+++ b/drivers/net/wireless/rt2x00/rt2800usb.c
@@ -841,7 +841,7 @@ static struct usb_device_id rt2800usb_device_table[] = {
{ USB_DEVICE(0x7392, 0x7717), USB_DEVICE_DATA(&rt2800usb_ops) },
{ USB_DEVICE(0x7392, 0x7718), USB_DEVICE_DATA(&rt2800usb_ops) },
/* EnGenius */
- { USB_DEVICE(0X1740, 0x9701), USB_DEVICE_DATA(&rt2800usb_ops) },
+ { USB_DEVICE(0x1740, 0x9701), USB_DEVICE_DATA(&rt2800usb_ops) },
{ USB_DEVICE(0x1740, 0x9702), USB_DEVICE_DATA(&rt2800usb_ops) },
/* Gigabyte */
{ USB_DEVICE(0x1044, 0x800b), USB_DEVICE_DATA(&rt2800usb_ops) },
--
1.6.6.1
^ permalink raw reply related
* Re: [patch 3/9] ath9k: cleanup: u32 => bool
From: Johannes Berg @ 2010-05-10 7:38 UTC (permalink / raw)
To: Dan Carpenter
Cc: Luis R. Rodriguez, Jouni Malinen, Sujith Manoharan,
Vasanthakumar Thiagarajan, Senthil Balasubramanian,
John W. Linville, Felix Fietkau, linux-wireless, ath9k-devel
In-Reply-To: <20100508162247.GO27064@bicker>
On Sat, 2010-05-08 at 18:22 +0200, Dan Carpenter wrote:
> + bool on = param ? 1 : 0;
umm, if you're going to use bool then use true/false too.
johannes
^ permalink raw reply
* [patch 5/9] ath9k/htc_drv_main: off by one error
From: Sujith @ 2010-05-10 4:39 UTC (permalink / raw)
To: Dan Carpenter
Cc: Luis Rodriguez, Jouni Malinen, Vasanth Thiagarajan,
Senthilkumar Balasubramanian, John W. Linville, Vivek Natarajan,
linux-wireless@vger.kernel.org, ath9k-devel@lists.ath9k.org
In-Reply-To: <20100508162402.GQ27064@bicker>
Dan Carpenter wrote:
> I changed "> ATH9K_HTC_MAX_TID" to ">= ATH9K_HTC_MAX_TID" to avoid a
> potential overflow.
>
> Signed-off-by: Dan Carpenter <error27@gmail.com>
Thanks.
Acked-by: Sujith <Sujith.Manoharan@atheros.com>
> diff --git a/drivers/net/wireless/ath/ath9k/htc_drv_main.c b/drivers/net/wireless/ath/ath9k/htc_drv_main.c
> index e75db06..6c386da 100644
> --- a/drivers/net/wireless/ath/ath9k/htc_drv_main.c
> +++ b/drivers/net/wireless/ath/ath9k/htc_drv_main.c
> @@ -465,7 +465,7 @@ static int ath9k_htc_aggr_oper(struct ath9k_htc_priv *priv,
> int ret = 0;
> u8 cmd_rsp;
>
> - if (tid > ATH9K_HTC_MAX_TID)
> + if (tid >= ATH9K_HTC_MAX_TID)
> return -EINVAL;
>
> memset(&aggr, 0, sizeof(struct ath9k_htc_target_aggr));
^ permalink raw reply
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox