stefan schippers wrote:

> # ping 192.168.0.1
> PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data.
> From 192.168.0.78 icmp_seq=1 Destination Host Unreachable
> From 192.168.0.78 icmp_seq=2 Destination Host Unreachable
> From 192.168.0.78 icmp_seq=3 Destination Host Unreachable
> From 192.168.0.78 icmp_seq=4 Destination Host Unreachable
> From 192.168.0.78 icmp_seq=5 Destination Host Unreachable
> From 192.168.0.78 icmp_seq=6 Destination Host Unreachable
> ^C

Thanks.  Can you try this patch?

It works like this:

 0. Prerequisites:
        apt-get install git build-essential

 1. Get a copy of the linux-stable tree:

        git clone -o stable \
         git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git \
         linux
        cd linux

     Or, if you already have a clone of the kernel:

        cd linux
        git remote add -f stable \
         git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git \

 2. Make sure you can still reproduce the bug:

        git checkout stable/linux-3.2.y
        cp /boot/config-$(uname -r) .config; # current configuration
        make localmodconfig; # optional: minimize configuration
        make deb-pkg; # optionally with -j<num> for parallel build
        dpkg -i ../<name of package>
        reboot

 3. Apply the patch and see if it fixes it:

        git apply --index <thepatch>
        make deb-pkg; # maybe with -j4
        dpkg -i ../<name of package>
        reboot

commit f88373fa47f3
Author: Felix Fietkau <[email protected]>
Date:   Sun Feb 5 21:15:17 2012 +0100

    ath9k: fix a WEP crypto related regression

    commit b4a82a0 "ath9k_hw: fix interpretation of the rx KeyMiss flag"
    fixed the interpretation of the KeyMiss flag for keycache based lookups,
    however WEP encryption uses a static index, so KeyMiss is always asserted
    for it, even though frames are decrypted properly.
    Fix this by clearing the ATH9K_RXERR_KEYMISS flag if no keycache based
    lookup was performed.

    Signed-off-by: Felix Fietkau <[email protected]>
    Cc: [email protected]
    Reported-by: Laurent Bonnans <[email protected]>
    Reported-by: Jurica Vukadin <[email protected]>
    Signed-off-by: John W. Linville <[email protected]>

diff --git a/drivers/net/wireless/ath/ath9k/recv.c 
b/drivers/net/wireless/ath/ath9k/recv.c
index 0e666fbe0842..7e1a91af1497 100644
--- a/drivers/net/wireless/ath/ath9k/recv.c
+++ b/drivers/net/wireless/ath/ath9k/recv.c
@@ -822,6 +822,14 @@ static bool ath9k_rx_accept(struct ath_common *common,
                (ATH9K_RXERR_DECRYPT | ATH9K_RXERR_CRC | ATH9K_RXERR_MIC |
                 ATH9K_RXERR_KEYMISS));
 
+       /*
+        * Key miss events are only relevant for pairwise keys where the
+        * descriptor does contain a valid key index. This has been observed
+        * mostly with CCMP encryption.
+        */
+       if (rx_stats->rs_keyix == ATH9K_RXKEYIX_INVALID)
+               rx_stats->rs_status &= ~ATH9K_RXERR_KEYMISS;
+
        if (!rx_stats->rs_datalen)
                return false;
         /*



-- 
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]
Archive: http://lists.debian.org/20120214011812.GA7951@burratino

Reply via email to