mac80211: fix sw crypto
authorJohannes Berg <johannes@sipsolutions.net>
Mon, 25 Jan 2010 10:36:16 +0000 (11:36 +0100)
committerJohn W. Linville <linville@tuxdriver.com>
Mon, 25 Jan 2010 21:36:29 +0000 (16:36 -0500)
What a stupid mistake. In

    commit 813d76694043d00b59475baa1fbfaf54a2eb7fad
    Author: Johannes Berg <johannes@sipsolutions.net>
    Date:   Sun Jan 17 01:47:58 2010 +0100

        mac80211: move control.hw_key assignment

I inserted code testing the wrong flags field,
which means that the test is almost always true
(it's really testing for the peer's WMM support)
and thus the later parts of the stack assume hw
crypto will be done even if that's not true.

Obviously, that broke software crypto. Maxim
said so specifically, and Jochen probably uses
some cipher that iwl3945 doesn't support in
hardware, which might also explain that Maxim
reports that even hw crypto is broken.

Fix this to test the right flags field.

Reported-by: Maxim Levitsky <maximlevitsky@gmail.com>
Reported-by: Jochen Friedrich <jochen@scram.de>
Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
net/mac80211/tx.c

index d017b3530d4d256f87693cda6189a404fc49fdc2..14c70452c245185770912e03e3edd1b999338026 100644 (file)
@@ -559,7 +559,7 @@ ieee80211_tx_h_select_key(struct ieee80211_tx_data *tx)
                }
 
                if (!skip_hw && tx->key &&
-                   tx->key->conf.flags & KEY_FLAG_UPLOADED_TO_HARDWARE)
+                   tx->key->flags & KEY_FLAG_UPLOADED_TO_HARDWARE)
                        info->control.hw_key = &tx->key->conf;
        }