diff mbox

iwl4965:Fixing Broken Monitor Mode Functionality

Message ID CABPxzYL=MBQ3uZR=EmcNAa-9iELPKRWtwZNBnxpFdk7z5XpPKw@mail.gmail.com (mailing list archive)
State Not Applicable, archived
Headers show

Commit Message

Krishna Chaitanya Nov. 30, 2012, 9:29 a.m. UTC
From the patch  "90b9e446fbb64630c72cab48c007d7081aec2533: mac80211:
support radiotap vendor namespace RX data"
the monitor mode functionality in iwl4965 stopped working, because of
below issues

1) The driver doesnt fill the newly added fields in the ieee80211_rx_status
and also doesn't do a memset leading to junk values.

ieee80211_rx_monitor:

"pskb_may_pull(origskb, 2 + status->vendor_radiotap_len)" the pull
fails because of junk value in vendor_radiotap_len.
And all the frames are dropped.

2) We also see a kernel trace in

ieee80211_rx_radiotap_space:
        if (status->vendor_radiotap_len) {
                if (WARN_ON_ONCE(status->vendor_radiotap_align == 0))

This patch fixed both the issues, this is tested with iwl4965 intel
wireless nic.

Signed-off-by: Chaitanya T K<chaitanya.mgit@gmail.com>
---

 drivers/net/wireless/iwlegacy/4965-mac.c |   10 ++++++++++
 1 file changed, 10 insertions(+)

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

Comments

Stanislaw Gruszka Nov. 30, 2012, 10:35 a.m. UTC | #1
On Fri, Nov 30, 2012 at 02:59:12PM +0530, Krishna Chaitanya wrote:
> From the patch  "90b9e446fbb64630c72cab48c007d7081aec2533: mac80211:
> support radiotap vendor namespace RX data"
> the monitor mode functionality in iwl4965 stopped working, because of
> below issues
> 
> 1) The driver doesnt fill the newly added fields in the ieee80211_rx_status
> and also doesn't do a memset leading to junk values.

Already fixed by Johannes:
https://patchwork.kernel.org/patch/1788371/

Stanislaw

--
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
Krishna Chaitanya Nov. 30, 2012, 11:54 a.m. UTC | #2
But that patch is not part of the mac80211-next branch.
Hence missed it. So what git tree is that checked in.

Thanks.

On Fri, Nov 30, 2012 at 4:05 PM, Stanislaw Gruszka <sgruszka@redhat.com> wrote:
> On Fri, Nov 30, 2012 at 02:59:12PM +0530, Krishna Chaitanya wrote:
>> From the patch  "90b9e446fbb64630c72cab48c007d7081aec2533: mac80211:
>> support radiotap vendor namespace RX data"
>> the monitor mode functionality in iwl4965 stopped working, because of
>> below issues
>>
>> 1) The driver doesnt fill the newly added fields in the ieee80211_rx_status
>> and also doesn't do a memset leading to junk values.
>
> Already fixed by Johannes:
> https://patchwork.kernel.org/patch/1788371/
>
> Stanislaw
>
--
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
Stanislaw Gruszka Nov. 30, 2012, 12:07 p.m. UTC | #3
On Fri, Nov 30, 2012 at 05:24:44PM +0530, Krishna Chaitanya wrote:
> But that patch is not part of the mac80211-next branch.
> Hence missed it. So what git tree is that checked in.

Because it is not mac80211 patch. Patch is committed in wireless-next
and wireless-testing trees.

Stanislaw
--
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
diff mbox

Patch

diff --git a/drivers/net/wireless/iwlegacy/4965-mac.c
b/drivers/net/wireless/iwlegacy/4965-mac.c
index ef68b72..d4b801e 100644
--- a/drivers/net/wireless/iwlegacy/4965-mac.c
+++ b/drivers/net/wireless/iwlegacy/4965-mac.c
@@ -671,6 +671,16 @@  il4965_hdl_rx(struct il_priv *il, struct il_rx_buf *rxb)
        /* This will be used in several places later */
        rate_n_flags = le32_to_cpu(phy_res->rate_n_flags);

+        /* To Avoid Junk values to mac80211 causing the frames
+        * to drop when NIC is on monitor mode:wireshark doesnt work
+         * This came in to light with the patch from
+         * johannes "support radiotap vendor namespace RX data"
+         * which introduced 2 more  entries to the rx_stats struct,
+         * but as the driver is not configuring those, they become
+         * junk when accessed at mac80211.
+         */
+        memset(&rx_status,0,sizeof(rx_status));
+
        /* rx_status carries information about the packet to mac80211 */
        rx_status.mactime = le64_to_cpu(phy_res->timestamp);
        rx_status.band =