On Wed, Sep 17, 2008 at 03:05:59AM -0700, Partha Bagchi wrote:
> Hi All,
> 
> I download compat-wireless-2.6-old and compiled and installed it on a
> Fedora 9 box. Here are the details:
> 
> lspci > 06:00.0 Network controller: Atheros Communications Inc.
> Unknown device 002a (rev 01)
> uname -a > Linux Bordeaux 2.6.26.3-29.fc9.i686 #1 SMP Wed Sep 3
> 03:42:27 EDT 2008 i686 i686 i386 GNU/Linux

Please try appling the patch titled:

"[PATCH] ath9k: connectivity is lost after Group rekeying is done"

which was posted on linux-wireless. If that fixes your issue I can merge
this patch on compat-wireless-old. I've attached the patch for your
convenience, inline at the bottom and also as an attachment.

  Luis


>From [EMAIL PROTECTED] Wed Sep 17 00:10:07 2008

Connectivtiy is lost after Group rekeying is done. The keytype
maintained by ath9k is reset when group key is updated. Though
sc_keytype can be reset only for broadcast key the proper fix
would be to use mac80211 provided key type from txinfo during
xmit and get rid of sc_keytype from ath9k ath_softc.

Signed-off-by: Vasanthakumar Thiagarajan <[EMAIL PROTECTED]>
Signed-off-by: Senthil Balasubramanian <[EMAIL PROTECTED]>
---
 drivers/net/wireless/ath9k/core.h |    1 -
 drivers/net/wireless/ath9k/main.c |    3 ---
 drivers/net/wireless/ath9k/xmit.c |    6 +++---
 3 files changed, 3 insertions(+), 7 deletions(-)

diff --git a/drivers/net/wireless/ath9k/core.h b/drivers/net/wireless/ath9k=
/core.h
index b66de29..e8ccbe4 100644
--- a/drivers/net/wireless/ath9k/core.h
+++ b/drivers/net/wireless/ath9k/core.h
@@ -976,7 +976,6 @@ struct ath_softc {
        u32 sc_keymax;          /* size of key cache */
        DECLARE_BITMAP(sc_keymap, ATH_KEYMAX);  /* key use bit map */
        u8 sc_splitmic;         /* split TKIP MIC keys */
-       int sc_keytype;

        /* RX */
        struct list_head sc_rxbuf;
diff --git a/drivers/net/wireless/ath9k/main.c b/drivers/net/wireless/ath9k=
/main.c
index 1ba1800..aca893a 100644
--- a/drivers/net/wireless/ath9k/main.c
+++ b/drivers/net/wireless/ath9k/main.c
@@ -204,8 +204,6 @@ static int ath_key_config(struct ath_softc *sc,
        if (!ret)
                return -EIO;

-       if (mac)
-               sc->sc_keytype =3D hk.kv_type;
        return 0;
 }

@@ -1507,7 +1505,6 @@ static int ath9k_set_key(struct ieee80211_hw *hw,
        case DISABLE_KEY:
                ath_key_delete(sc, key);
                clear_bit(key->keyidx, sc->sc_keymap);
-               sc->sc_keytype =3D ATH9K_CIPHER_CLR;
                break;
        default:
                ret =3D -EINVAL;
diff --git a/drivers/net/wireless/ath9k/xmit.c b/drivers/net/wireless/ath9k=
/xmit.c
index 3fc6641..2592905 100644
--- a/drivers/net/wireless/ath9k/xmit.c
+++ b/drivers/net/wireless/ath9k/xmit.c
@@ -239,11 +239,11 @@ static int ath_tx_prepare(struct ath_softc *sc,
                txctl->keyix =3D tx_info->control.hw_key->hw_key_idx;
                txctl->frmlen +=3D tx_info->control.icv_len;

-               if (sc->sc_keytype =3D=3D ATH9K_CIPHER_WEP)
+               if (tx_info->control.hw_key->alg =3D=3D ALG_WEP)
                        txctl->keytype =3D ATH9K_KEY_TYPE_WEP;
-               else if (sc->sc_keytype =3D=3D ATH9K_CIPHER_TKIP)
+               else if (tx_info->control.hw_key->alg =3D=3D ALG_TKIP)
                        txctl->keytype =3D ATH9K_KEY_TYPE_TKIP;
-               else if (sc->sc_keytype =3D=3D ATH9K_CIPHER_AES_CCM)
+               else if (tx_info->control.hw_key->alg =3D=3D ALG_CCMP)
                        txctl->keytype =3D ATH9K_KEY_TYPE_AES;
        }

--
1.5.5


>From [EMAIL PROTECTED] Wed Sep 17 00:10:07 2008
Received: from mail.atheros.com (10.12.4.23) by SC1EXHC-02.global.atheros.com
 (10.10.20.106) with Microsoft SMTP Server (TLS) id 8.0.751.0; Wed, 17 Sep
 2008 00:10:05 -0700
Received: by mail.atheros.com (sSMTP sendmail emulation); Wed, 17 Sep 2008
 12:39:49 +0530
From: Senthilkumar Balasubramanian <[EMAIL PROTECTED]>
To: "[EMAIL PROTECTED]" <[EMAIL PROTECTED]>
CC: "John W. Linville" <[EMAIL PROTECTED]>, Luis Rodriguez
	<[EMAIL PROTECTED]>, Johannes Berg <[EMAIL PROTECTED]>,
	Jouni Malinen <[EMAIL PROTECTED]>
Date: Wed, 17 Sep 2008 00:09:49 -0700
Subject: [PATCH] ath9k: connectivity is lost after Group rekeying is done
Thread-Topic: [PATCH] ath9k: connectivity is lost after Group rekeying is
 done
Thread-Index: AckYlGoNjJ2C1FdhR4ifPowWXgrvdg==
Message-ID: <[EMAIL PROTECTED]>
Accept-Language: en-US
Content-Language: en-US
X-MS-Exchange-Organization-AuthAs: Internal
X-MS-Exchange-Organization-AuthMechanism: 06
X-MS-Exchange-Organization-AuthSource: SC1EXHC-02.global.atheros.com
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
user-agent: Mutt/1.5.18 (2008-05-17)
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Status: RO
Content-Length: 2849
Lines: 72

Connectivtiy is lost after Group rekeying is done. The keytype
maintained by ath9k is reset when group key is updated. Though
sc_keytype can be reset only for broadcast key the proper fix
would be to use mac80211 provided key type from txinfo during
xmit and get rid of sc_keytype from ath9k ath_softc.

Signed-off-by: Vasanthakumar Thiagarajan <[EMAIL PROTECTED]>
Signed-off-by: Senthil Balasubramanian <[EMAIL PROTECTED]>
---
 drivers/net/wireless/ath9k/core.h |    1 -
 drivers/net/wireless/ath9k/main.c |    3 ---
 drivers/net/wireless/ath9k/xmit.c |    6 +++---
 3 files changed, 3 insertions(+), 7 deletions(-)

diff --git a/drivers/net/wireless/ath9k/core.h b/drivers/net/wireless/ath9k=
/core.h
index b66de29..e8ccbe4 100644
--- a/drivers/net/wireless/ath9k/core.h
+++ b/drivers/net/wireless/ath9k/core.h
@@ -976,7 +976,6 @@ struct ath_softc {
        u32 sc_keymax;          /* size of key cache */
        DECLARE_BITMAP(sc_keymap, ATH_KEYMAX);  /* key use bit map */
        u8 sc_splitmic;         /* split TKIP MIC keys */
-       int sc_keytype;

        /* RX */
        struct list_head sc_rxbuf;
diff --git a/drivers/net/wireless/ath9k/main.c b/drivers/net/wireless/ath9k=
/main.c
index 1ba1800..aca893a 100644
--- a/drivers/net/wireless/ath9k/main.c
+++ b/drivers/net/wireless/ath9k/main.c
@@ -204,8 +204,6 @@ static int ath_key_config(struct ath_softc *sc,
        if (!ret)
                return -EIO;

-       if (mac)
-               sc->sc_keytype =3D hk.kv_type;
        return 0;
 }

@@ -1507,7 +1505,6 @@ static int ath9k_set_key(struct ieee80211_hw *hw,
        case DISABLE_KEY:
                ath_key_delete(sc, key);
                clear_bit(key->keyidx, sc->sc_keymap);
-               sc->sc_keytype =3D ATH9K_CIPHER_CLR;
                break;
        default:
                ret =3D -EINVAL;
diff --git a/drivers/net/wireless/ath9k/xmit.c b/drivers/net/wireless/ath9k=
/xmit.c
index 3fc6641..2592905 100644
--- a/drivers/net/wireless/ath9k/xmit.c
+++ b/drivers/net/wireless/ath9k/xmit.c
@@ -239,11 +239,11 @@ static int ath_tx_prepare(struct ath_softc *sc,
                txctl->keyix =3D tx_info->control.hw_key->hw_key_idx;
                txctl->frmlen +=3D tx_info->control.icv_len;

-               if (sc->sc_keytype =3D=3D ATH9K_CIPHER_WEP)
+               if (tx_info->control.hw_key->alg =3D=3D ALG_WEP)
                        txctl->keytype =3D ATH9K_KEY_TYPE_WEP;
-               else if (sc->sc_keytype =3D=3D ATH9K_CIPHER_TKIP)
+               else if (tx_info->control.hw_key->alg =3D=3D ALG_TKIP)
                        txctl->keytype =3D ATH9K_KEY_TYPE_TKIP;
-               else if (sc->sc_keytype =3D=3D ATH9K_CIPHER_AES_CCM)
+               else if (tx_info->control.hw_key->alg =3D=3D ALG_CCMP)
                        txctl->keytype =3D ATH9K_KEY_TYPE_AES;
        }

--
1.5.5


_______________________________________________
ath9k-devel mailing list
ath9k-devel@lists.ath9k.org
https://lists.ath9k.org/mailman/listinfo/ath9k-devel

Reply via email to