2010-01-25 10:36:22

by Johannes Berg

[permalink] [raw]
Subject: [PATCH] mac80211: fix sw crypto

What a stupid mistake. In

commit 813d76694043d00b59475baa1fbfaf54a2eb7fad
Author: Johannes Berg <[email protected]>
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 <[email protected]>
Reported-by: Jochen Friedrich <[email protected]>
Signed-off-by: Johannes Berg <[email protected]>
---
net/mac80211/tx.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

--- wireless-testing.orig/net/mac80211/tx.c 2010-01-25 11:13:59.000000000 +0100
+++ wireless-testing/net/mac80211/tx.c 2010-01-25 11:29:24.000000000 +0100
@@ -559,7 +559,7 @@ ieee80211_tx_h_select_key(struct ieee802
}

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





2010-01-25 15:21:13

by Maxim Levitsky

[permalink] [raw]
Subject: Re: [PATCH] mac80211: fix sw crypto

On Mon, 2010-01-25 at 11:36 +0100, Johannes Berg wrote:
> What a stupid mistake. In
>
> commit 813d76694043d00b59475baa1fbfaf54a2eb7fad
> Author: Johannes Berg <[email protected]>
> 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.
This patch works for me. Thanks.

What chipers does iwl3945 support?
I use CCMP, and I also know that software encryption is used by default.

Best regards,
Maxim Levitsky
>
> Fix this to test the right flags field.
>
> Reported-by: Maxim Levitsky <[email protected]>
> Reported-by: Jochen Friedrich <[email protected]>
> Signed-off-by: Johannes Berg <[email protected]>
> ---
> net/mac80211/tx.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> --- wireless-testing.orig/net/mac80211/tx.c 2010-01-25 11:13:59.000000000 +0100
> +++ wireless-testing/net/mac80211/tx.c 2010-01-25 11:29:24.000000000 +0100
> @@ -559,7 +559,7 @@ ieee80211_tx_h_select_key(struct ieee802
> }
>
> 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;
> }
>
>
>



2010-01-25 22:16:15

by Jochen Friedrich

[permalink] [raw]
Subject: Re: [PATCH] mac80211: fix sw crypto

Fabio Rossi wrote:
> On Monday 25 January 2010 11:36:16 Johannes Berg wrote:
>
>> What a stupid mistake. In
>>
>> commit 813d76694043d00b59475baa1fbfaf54a2eb7fad
>> Author: Johannes Berg <[email protected]>
>> 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.
>>
>
> Tested-by: Fabio Rossi <[email protected]>

Tested-by: Jochen Friedrich <[email protected]>

Thanks,
Jochen

2010-01-25 22:10:11

by Fabio Rossi

[permalink] [raw]
Subject: Re: [PATCH] mac80211: fix sw crypto

On Monday 25 January 2010 11:36:16 Johannes Berg wrote:

> What a stupid mistake. In
>
> commit 813d76694043d00b59475baa1fbfaf54a2eb7fad
> Author: Johannes Berg <[email protected]>
> 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.
>

Tested-by: Fabio Rossi <[email protected]>


2010-01-25 15:54:38

by Johannes Berg

[permalink] [raw]
Subject: Re: [PATCH] mac80211: fix sw crypto

On Mon, 2010-01-25 at 17:21 +0200, Maxim Levitsky wrote:

> > 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.
> This patch works for me. Thanks.

Thanks for testing.

> What chipers does iwl3945 support?
> I use CCMP, and I also know that software encryption is used by default.

I don't know off-hand, but I'm pretty sure it doesn't do TKIP, or at
least the driver doesn't.

johannes


Attachments:
signature.asc (801.00 B)
This is a digitally signed message part