diff for duplicates of <20090316231423.GA3633@tuxdriver.com> diff --git a/a/1.txt b/N1/1.txt index 15cc1c0..a1aa0cf 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -5,15 +5,12 @@ minor, but it cuts-down on log SPAM for ipw2100, ipw2200, and hostap users. The two from Jouni fix some panics he observed himself. The first one from Luis fixes bug 12110 at bugzilla.kernel.org. I know -he has worked on it for a long time and I've had several desperate user= -s +he has worked on it for a long time and I've had several desperate users asking for it, so it must be good. :-) Unfortunately, it causes some nasty merge errors with what is in net-next-2.6 and wireless-next-2.6. -I created a merge-test branch in wireless-next-2.6, and the merge commi= -t +I created a merge-test branch in wireless-next-2.6, and the merge commit log goes into more detail about resolving the issue. In short, you -probably want to diff drivers/net/ath9k against the merge-test branch..= -=2E +probably want to diff drivers/net/ath9k against the merge-test branch... Please let me know if there are problems! @@ -29,16 +26,13 @@ Individual patches are available here: --- -The following changes since commit ea8dbdd17099a9a5864ebd4c87e01e657b19= -c7ab: - fran=E7ois romieu (1): - r8169: revert "r8169: read MAC address from EEPROM on init (2nd= - attempt)" +The following changes since commit ea8dbdd17099a9a5864ebd4c87e01e657b19c7ab: + françois romieu (1): + r8169: revert "r8169: read MAC address from EEPROM on init (2nd attempt)" are available in the git repository at: - git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.g= -it master + git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git master John W. Linville (1): lib80211: silence excessive crypto debugging messages @@ -52,8 +46,7 @@ Luis R. Rodriguez (2): ath9k: AR9280 PCI devices must serialize IO as well drivers/net/wireless/ath9k/ath9k.h | 4 +- - drivers/net/wireless/ath9k/core.h | 33 ++++++++++++++++++++++++= -++++++++ + drivers/net/wireless/ath9k/core.h | 33 ++++++++++++++++++++++++++++++++ drivers/net/wireless/ath9k/hw.c | 22 ++++++++++++++++++++- drivers/net/wireless/ath9k/main.c | 1 + drivers/net/wireless/zd1211rw/zd_mac.c | 8 +++++- @@ -63,25 +56,22 @@ Luis R. Rodriguez (2): net/wireless/lib80211_crypt_tkip.c | 4 +++ 9 files changed, 81 insertions(+), 5 deletions(-) -diff --git a/drivers/net/wireless/ath9k/ath9k.h b/drivers/net/wireless/= -ath9k/ath9k.h +diff --git a/drivers/net/wireless/ath9k/ath9k.h b/drivers/net/wireless/ath9k/ath9k.h index d278135..6650f60 100644 --- a/drivers/net/wireless/ath9k/ath9k.h +++ b/drivers/net/wireless/ath9k/ath9k.h @@ -587,8 +587,8 @@ struct ath9k_country_entry { u8 iso[3]; }; -=20 + -#define REG_WRITE(_ah, _reg, _val) iowrite32(_val, _ah->ah_sh + _reg) -#define REG_READ(_ah, _reg) ioread32(_ah->ah_sh + _reg) -+#define REG_WRITE(_ah, _reg, _val) ath9k_iowrite32((_ah), (_reg), (_va= -l)) ++#define REG_WRITE(_ah, _reg, _val) ath9k_iowrite32((_ah), (_reg), (_val)) +#define REG_READ(_ah, _reg) ath9k_ioread32((_ah), (_reg)) -=20 + #define SM(_v, _f) (((_v) << _f##_S) & _f) #define MS(_v, _f) (((_v) & _f) >> _f##_S) -diff --git a/drivers/net/wireless/ath9k/core.h b/drivers/net/wireless/a= -th9k/core.h +diff --git a/drivers/net/wireless/ath9k/core.h b/drivers/net/wireless/ath9k/core.h index 4ca2aed..139566c 100644 --- a/drivers/net/wireless/ath9k/core.h +++ b/drivers/net/wireless/ath9k/core.h @@ -91,29 +81,23 @@ index 4ca2aed..139566c 100644 spinlock_t sc_resetlock; + spinlock_t sc_serial_rw; struct mutex mutex; -=20 + u8 sc_curbssid[ETH_ALEN]; -@@ -751,4 +752,36 @@ int ath_get_hal_qnum(u16 queue, struct ath_softc *= -sc); +@@ -751,4 +752,36 @@ int ath_get_hal_qnum(u16 queue, struct ath_softc *sc); int ath_get_mac80211_qnum(u32 queue, struct ath_softc *sc); int ath_cabq_update(struct ath_softc *); -=20 + +/* -+ * Read and write, they both share the same lock. We do this to serial= -ize -+ * reads and writes on Atheros 802.11n PCI devices only. This is requi= -red -+ * as the FIFO on these devices can only accept sanely 2 requests. Aft= -er -+ * that the device goes bananas. Serializing the reads/writes prevents= - this ++ * Read and write, they both share the same lock. We do this to serialize ++ * reads and writes on Atheros 802.11n PCI devices only. This is required ++ * as the FIFO on these devices can only accept sanely 2 requests. After ++ * that the device goes bananas. Serializing the reads/writes prevents this + * from happening. + */ + -+static inline void ath9k_iowrite32(struct ath_hal *ah, u32 reg_offset,= - u32 val) ++static inline void ath9k_iowrite32(struct ath_hal *ah, u32 reg_offset, u32 val) +{ -+ if (ah->ah_config.serialize_regmode =3D=3D SER_REG_MODE_ON) { ++ if (ah->ah_config.serialize_regmode == SER_REG_MODE_ON) { + unsigned long flags; + spin_lock_irqsave(&ah->ah_sc->sc_serial_rw, flags); + iowrite32(val, ah->ah_sc->mem + reg_offset); @@ -122,31 +106,28 @@ er + iowrite32(val, ah->ah_sc->mem + reg_offset); +} + -+static inline unsigned int ath9k_ioread32(struct ath_hal *ah, u32 reg_= -offset) ++static inline unsigned int ath9k_ioread32(struct ath_hal *ah, u32 reg_offset) +{ + u32 val; -+ if (ah->ah_config.serialize_regmode =3D=3D SER_REG_MODE_ON) { ++ if (ah->ah_config.serialize_regmode == SER_REG_MODE_ON) { + unsigned long flags; + spin_lock_irqsave(&ah->ah_sc->sc_serial_rw, flags); -+ val =3D ioread32(ah->ah_sc->mem + reg_offset); ++ val = ioread32(ah->ah_sc->mem + reg_offset); + spin_unlock_irqrestore(&ah->ah_sc->sc_serial_rw, flags); + } else -+ val =3D ioread32(ah->ah_sc->mem + reg_offset); ++ val = ioread32(ah->ah_sc->mem + reg_offset); + return val; +} + #endif /* CORE_H */ -diff --git a/drivers/net/wireless/ath9k/hw.c b/drivers/net/wireless/ath= -9k/hw.c +diff --git a/drivers/net/wireless/ath9k/hw.c b/drivers/net/wireless/ath9k/hw.c index 34474ed..c38a00b 100644 --- a/drivers/net/wireless/ath9k/hw.c +++ b/drivers/net/wireless/ath9k/hw.c -@@ -437,6 +437,25 @@ static void ath9k_hw_set_defaults(struct ath_hal *= -ah) +@@ -437,6 +437,25 @@ static void ath9k_hw_set_defaults(struct ath_hal *ah) } -=20 - ah->ah_config.intr_mitigation =3D 1; + + ah->ah_config.intr_mitigation = 1; + + /* + * We need this for PCI devices only (Cardbus, PCI, miniPCI) @@ -165,51 +146,46 @@ ah) + * devices (legacy, 802.11abg). + */ + if (num_possible_cpus() > 1) -+ ah->ah_config.serialize_regmode =3D SER_REG_MODE_AUTO; ++ ah->ah_config.serialize_regmode = SER_REG_MODE_AUTO; } -=20 + static struct ath_hal_5416 *ath9k_hw_newstate(u16 devid, -@@ -668,7 +687,8 @@ static struct ath_hal *ath9k_hw_do_attach(u16 devid= -, struct ath_softc *sc, +@@ -668,7 +687,8 @@ static struct ath_hal *ath9k_hw_do_attach(u16 devid, struct ath_softc *sc, } -=20 - if (ah->ah_config.serialize_regmode =3D=3D SER_REG_MODE_AUTO) { -- if (ah->ah_macVersion =3D=3D AR_SREV_VERSION_5416_PCI) { -+ if (ah->ah_macVersion =3D=3D AR_SREV_VERSION_5416_PCI || + + if (ah->ah_config.serialize_regmode == SER_REG_MODE_AUTO) { +- if (ah->ah_macVersion == AR_SREV_VERSION_5416_PCI) { ++ if (ah->ah_macVersion == AR_SREV_VERSION_5416_PCI || + (AR_SREV_9280(ah) && !ah->ah_isPciExpress)) { - ah->ah_config.serialize_regmode =3D + ah->ah_config.serialize_regmode = SER_REG_MODE_ON; } else { -diff --git a/drivers/net/wireless/ath9k/main.c b/drivers/net/wireless/a= -th9k/main.c +diff --git a/drivers/net/wireless/ath9k/main.c b/drivers/net/wireless/ath9k/main.c index 0e80990..3c04044 100644 --- a/drivers/net/wireless/ath9k/main.c +++ b/drivers/net/wireless/ath9k/main.c -@@ -1336,6 +1336,7 @@ static int ath_init(u16 devid, struct ath_softc *= -sc) +@@ -1336,6 +1336,7 @@ static int ath_init(u16 devid, struct ath_softc *sc) printk(KERN_ERR "Unable to create debugfs files\n"); -=20 + spin_lock_init(&sc->sc_resetlock); + spin_lock_init(&sc->sc_serial_rw); mutex_init(&sc->mutex); tasklet_init(&sc->intr_tq, ath9k_tasklet, (unsigned long)sc); tasklet_init(&sc->bcon_tasklet, ath9k_beacon_tasklet, -diff --git a/drivers/net/wireless/zd1211rw/zd_mac.c b/drivers/net/wirel= -ess/zd1211rw/zd_mac.c +diff --git a/drivers/net/wireless/zd1211rw/zd_mac.c b/drivers/net/wireless/zd1211rw/zd_mac.c index a611ad8..847057d 100644 --- a/drivers/net/wireless/zd1211rw/zd_mac.c +++ b/drivers/net/wireless/zd1211rw/zd_mac.c -@@ -575,13 +575,17 @@ static int zd_op_tx(struct ieee80211_hw *hw, stru= -ct sk_buff *skb) -=20 - r =3D fill_ctrlset(mac, skb); +@@ -575,13 +575,17 @@ static int zd_op_tx(struct ieee80211_hw *hw, struct sk_buff *skb) + + r = fill_ctrlset(mac, skb); if (r) - return r; + goto fail; -=20 - info->rate_driver_data[0] =3D hw; -=20 - r =3D zd_usb_tx(&mac->chip.usb, skb); + + info->rate_driver_data[0] = hw; + + r = zd_usb_tx(&mac->chip.usb, skb); if (r) - return r; + goto fail; @@ -219,27 +195,26 @@ ct sk_buff *skb) + dev_kfree_skb(skb); return 0; } -=20 + diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c index 94de503..37e3d5e 100644 --- a/net/mac80211/tx.c +++ b/net/mac80211/tx.c -@@ -752,6 +752,8 @@ ieee80211_tx_h_fragment(struct ieee80211_tx_data *t= -x) +@@ -752,6 +752,8 @@ ieee80211_tx_h_fragment(struct ieee80211_tx_data *tx) skb_copy_queue_mapping(frag, first); -=20 - frag->do_not_encrypt =3D first->do_not_encrypt; -+ frag->dev =3D first->dev; -+ frag->iif =3D first->iif; -=20 - pos +=3D copylen; - left -=3D copylen; + + frag->do_not_encrypt = first->do_not_encrypt; ++ frag->dev = first->dev; ++ frag->iif = first->iif; + + pos += copylen; + left -= copylen; diff --git a/net/wireless/Kconfig b/net/wireless/Kconfig index e28e2b8..092ae6f 100644 --- a/net/wireless/Kconfig +++ b/net/wireless/Kconfig @@ -102,3 +102,13 @@ config LIB80211_CRYPT_CCMP -=20 + config LIB80211_CRYPT_TKIP tristate + @@ -252,22 +227,19 @@ index e28e2b8..092ae6f 100644 + from lib80211. + + If unsure, say N. -diff --git a/net/wireless/lib80211_crypt_ccmp.c b/net/wireless/lib80211= -_crypt_ccmp.c +diff --git a/net/wireless/lib80211_crypt_ccmp.c b/net/wireless/lib80211_crypt_ccmp.c index db42819..2301dc1 100644 --- a/net/wireless/lib80211_crypt_ccmp.c +++ b/net/wireless/lib80211_crypt_ccmp.c -@@ -337,6 +337,7 @@ static int lib80211_ccmp_decrypt(struct sk_buff *sk= -b, int hdr_len, void *priv) - pos +=3D 8; -=20 +@@ -337,6 +337,7 @@ static int lib80211_ccmp_decrypt(struct sk_buff *skb, int hdr_len, void *priv) + pos += 8; + if (ccmp_replay_check(pn, key->rx_pn)) { +#ifdef CONFIG_LIB80211_DEBUG if (net_ratelimit()) { - printk(KERN_DEBUG "CCMP: replay detected: STA=3D%pM " + printk(KERN_DEBUG "CCMP: replay detected: STA=%pM " "previous PN %02x%02x%02x%02x%02x%02x " -@@ -346,6 +347,7 @@ static int lib80211_ccmp_decrypt(struct sk_buff *sk= -b, int hdr_len, void *priv) +@@ -346,6 +347,7 @@ static int lib80211_ccmp_decrypt(struct sk_buff *skb, int hdr_len, void *priv) key->rx_pn[3], key->rx_pn[4], key->rx_pn[5], pn[0], pn[1], pn[2], pn[3], pn[4], pn[5]); } @@ -275,19 +247,17 @@ b, int hdr_len, void *priv) key->dot11RSNAStatsCCMPReplays++; return -4; } -diff --git a/net/wireless/lib80211_crypt_tkip.c b/net/wireless/lib80211= -_crypt_tkip.c +diff --git a/net/wireless/lib80211_crypt_tkip.c b/net/wireless/lib80211_crypt_tkip.c index 7e8e22b..c362873 100644 --- a/net/wireless/lib80211_crypt_tkip.c +++ b/net/wireless/lib80211_crypt_tkip.c -@@ -465,12 +465,14 @@ static int lib80211_tkip_decrypt(struct sk_buff *= -skb, int hdr_len, void *priv) - pos +=3D 8; -=20 +@@ -465,12 +465,14 @@ static int lib80211_tkip_decrypt(struct sk_buff *skb, int hdr_len, void *priv) + pos += 8; + if (tkip_replay_check(iv32, iv16, tkey->rx_iv32, tkey->rx_iv16)) { +#ifdef CONFIG_LIB80211_DEBUG if (net_ratelimit()) { - printk(KERN_DEBUG "TKIP: replay detected: STA=3D%pM" + printk(KERN_DEBUG "TKIP: replay detected: STA=%pM" " previous TSC %08x%04x received TSC " "%08x%04x\n", hdr->addr2, tkey->rx_iv32, tkey->rx_iv16, iv32, iv16); @@ -296,25 +266,19 @@ skb, int hdr_len, void *priv) tkey->dot11RSNAStatsTKIPReplays++; return -4; } -@@ -505,10 +507,12 @@ static int lib80211_tkip_decrypt(struct sk_buff *= -skb, int hdr_len, void *priv) +@@ -505,10 +507,12 @@ static int lib80211_tkip_decrypt(struct sk_buff *skb, int hdr_len, void *priv) * it needs to be recalculated for the next packet. */ - tkey->rx_phase1_done =3D 0; + tkey->rx_phase1_done = 0; } +#ifdef CONFIG_LIB80211_DEBUG if (net_ratelimit()) { - printk(KERN_DEBUG "TKIP: ICV error detected: STA=3D" + printk(KERN_DEBUG "TKIP: ICV error detected: STA=" "%pM\n", hdr->addr2); } +#endif tkey->dot11RSNAStatsTKIPICVErrors++; return -5; } ---=20 +-- John W. Linville Someday the world will need a hero, and you linville@tuxdriver.com might be all we have. Be ready. --- -To unsubscribe from this list: send the line "unsubscribe linux-wireles= -s" in -the body of a message to majordomo@vger.kernel.org -More majordomo info at http://vger.kernel.org/majordomo-info.html diff --git a/a/content_digest b/N1/content_digest index e9f80a9..0d8e6ab 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -15,15 +15,12 @@ "users. The two from Jouni fix some panics he observed himself.\n" "\n" "The first one from Luis fixes bug 12110 at bugzilla.kernel.org. I know\n" - "he has worked on it for a long time and I've had several desperate user=\n" - "s\n" + "he has worked on it for a long time and I've had several desperate users\n" "asking for it, so it must be good. :-) Unfortunately, it causes some\n" "nasty merge errors with what is in net-next-2.6 and wireless-next-2.6.\n" - "I created a merge-test branch in wireless-next-2.6, and the merge commi=\n" - "t\n" + "I created a merge-test branch in wireless-next-2.6, and the merge commit\n" "log goes into more detail about resolving the issue. In short, you\n" - "probably want to diff drivers/net/ath9k against the merge-test branch..=\n" - "=2E\n" + "probably want to diff drivers/net/ath9k against the merge-test branch...\n" "\n" "Please let me know if there are problems!\n" "\n" @@ -39,16 +36,13 @@ "\n" "---\n" "\n" - "The following changes since commit ea8dbdd17099a9a5864ebd4c87e01e657b19=\n" - "c7ab:\n" - " fran=E7ois romieu (1):\n" - " r8169: revert \"r8169: read MAC address from EEPROM on init (2nd=\n" - " attempt)\"\n" + "The following changes since commit ea8dbdd17099a9a5864ebd4c87e01e657b19c7ab:\n" + " fran\303\247ois romieu (1):\n" + " r8169: revert \"r8169: read MAC address from EEPROM on init (2nd attempt)\"\n" "\n" "are available in the git repository at:\n" "\n" - " git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.g=\n" - "it master\n" + " git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git master\n" "\n" "John W. Linville (1):\n" " lib80211: silence excessive crypto debugging messages\n" @@ -62,8 +56,7 @@ " ath9k: AR9280 PCI devices must serialize IO as well\n" "\n" " drivers/net/wireless/ath9k/ath9k.h | 4 +-\n" - " drivers/net/wireless/ath9k/core.h | 33 ++++++++++++++++++++++++=\n" - "++++++++\n" + " drivers/net/wireless/ath9k/core.h | 33 ++++++++++++++++++++++++++++++++\n" " drivers/net/wireless/ath9k/hw.c | 22 ++++++++++++++++++++-\n" " drivers/net/wireless/ath9k/main.c | 1 +\n" " drivers/net/wireless/zd1211rw/zd_mac.c | 8 +++++-\n" @@ -73,25 +66,22 @@ " net/wireless/lib80211_crypt_tkip.c | 4 +++\n" " 9 files changed, 81 insertions(+), 5 deletions(-)\n" "\n" - "diff --git a/drivers/net/wireless/ath9k/ath9k.h b/drivers/net/wireless/=\n" - "ath9k/ath9k.h\n" + "diff --git a/drivers/net/wireless/ath9k/ath9k.h b/drivers/net/wireless/ath9k/ath9k.h\n" "index d278135..6650f60 100644\n" "--- a/drivers/net/wireless/ath9k/ath9k.h\n" "+++ b/drivers/net/wireless/ath9k/ath9k.h\n" "@@ -587,8 +587,8 @@ struct ath9k_country_entry {\n" " \tu8 iso[3];\n" " };\n" - "=20\n" + " \n" "-#define REG_WRITE(_ah, _reg, _val) iowrite32(_val, _ah->ah_sh + _reg)\n" "-#define REG_READ(_ah, _reg) ioread32(_ah->ah_sh + _reg)\n" - "+#define REG_WRITE(_ah, _reg, _val) ath9k_iowrite32((_ah), (_reg), (_va=\n" - "l))\n" + "+#define REG_WRITE(_ah, _reg, _val) ath9k_iowrite32((_ah), (_reg), (_val))\n" "+#define REG_READ(_ah, _reg) ath9k_ioread32((_ah), (_reg))\n" - "=20\n" + " \n" " #define SM(_v, _f) (((_v) << _f##_S) & _f)\n" " #define MS(_v, _f) (((_v) & _f) >> _f##_S)\n" - "diff --git a/drivers/net/wireless/ath9k/core.h b/drivers/net/wireless/a=\n" - "th9k/core.h\n" + "diff --git a/drivers/net/wireless/ath9k/core.h b/drivers/net/wireless/ath9k/core.h\n" "index 4ca2aed..139566c 100644\n" "--- a/drivers/net/wireless/ath9k/core.h\n" "+++ b/drivers/net/wireless/ath9k/core.h\n" @@ -101,29 +91,23 @@ " \tspinlock_t sc_resetlock;\n" "+\tspinlock_t sc_serial_rw;\n" " \tstruct mutex mutex;\n" - "=20\n" + " \n" " \tu8 sc_curbssid[ETH_ALEN];\n" - "@@ -751,4 +752,36 @@ int ath_get_hal_qnum(u16 queue, struct ath_softc *=\n" - "sc);\n" + "@@ -751,4 +752,36 @@ int ath_get_hal_qnum(u16 queue, struct ath_softc *sc);\n" " int ath_get_mac80211_qnum(u32 queue, struct ath_softc *sc);\n" " int ath_cabq_update(struct ath_softc *);\n" - "=20\n" + " \n" "+/*\n" - "+ * Read and write, they both share the same lock. We do this to serial=\n" - "ize\n" - "+ * reads and writes on Atheros 802.11n PCI devices only. This is requi=\n" - "red\n" - "+ * as the FIFO on these devices can only accept sanely 2 requests. Aft=\n" - "er\n" - "+ * that the device goes bananas. Serializing the reads/writes prevents=\n" - " this\n" + "+ * Read and write, they both share the same lock. We do this to serialize\n" + "+ * reads and writes on Atheros 802.11n PCI devices only. This is required\n" + "+ * as the FIFO on these devices can only accept sanely 2 requests. After\n" + "+ * that the device goes bananas. Serializing the reads/writes prevents this\n" "+ * from happening.\n" "+ */\n" "+\n" - "+static inline void ath9k_iowrite32(struct ath_hal *ah, u32 reg_offset,=\n" - " u32 val)\n" + "+static inline void ath9k_iowrite32(struct ath_hal *ah, u32 reg_offset, u32 val)\n" "+{\n" - "+\tif (ah->ah_config.serialize_regmode =3D=3D SER_REG_MODE_ON) {\n" + "+\tif (ah->ah_config.serialize_regmode == SER_REG_MODE_ON) {\n" "+\t\tunsigned long flags;\n" "+\t\tspin_lock_irqsave(&ah->ah_sc->sc_serial_rw, flags);\n" "+\t\tiowrite32(val, ah->ah_sc->mem + reg_offset);\n" @@ -132,31 +116,28 @@ "+\t\tiowrite32(val, ah->ah_sc->mem + reg_offset);\n" "+}\n" "+\n" - "+static inline unsigned int ath9k_ioread32(struct ath_hal *ah, u32 reg_=\n" - "offset)\n" + "+static inline unsigned int ath9k_ioread32(struct ath_hal *ah, u32 reg_offset)\n" "+{\n" "+\tu32 val;\n" - "+\tif (ah->ah_config.serialize_regmode =3D=3D SER_REG_MODE_ON) {\n" + "+\tif (ah->ah_config.serialize_regmode == SER_REG_MODE_ON) {\n" "+\t\tunsigned long flags;\n" "+\t\tspin_lock_irqsave(&ah->ah_sc->sc_serial_rw, flags);\n" - "+\t\tval =3D ioread32(ah->ah_sc->mem + reg_offset);\n" + "+\t\tval = ioread32(ah->ah_sc->mem + reg_offset);\n" "+\t\tspin_unlock_irqrestore(&ah->ah_sc->sc_serial_rw, flags);\n" "+\t} else\n" - "+\t\tval =3D ioread32(ah->ah_sc->mem + reg_offset);\n" + "+\t\tval = ioread32(ah->ah_sc->mem + reg_offset);\n" "+\treturn val;\n" "+}\n" "+\n" " #endif /* CORE_H */\n" - "diff --git a/drivers/net/wireless/ath9k/hw.c b/drivers/net/wireless/ath=\n" - "9k/hw.c\n" + "diff --git a/drivers/net/wireless/ath9k/hw.c b/drivers/net/wireless/ath9k/hw.c\n" "index 34474ed..c38a00b 100644\n" "--- a/drivers/net/wireless/ath9k/hw.c\n" "+++ b/drivers/net/wireless/ath9k/hw.c\n" - "@@ -437,6 +437,25 @@ static void ath9k_hw_set_defaults(struct ath_hal *=\n" - "ah)\n" + "@@ -437,6 +437,25 @@ static void ath9k_hw_set_defaults(struct ath_hal *ah)\n" " \t}\n" - "=20\n" - " \tah->ah_config.intr_mitigation =3D 1;\n" + " \n" + " \tah->ah_config.intr_mitigation = 1;\n" "+\n" "+\t/*\n" "+\t * We need this for PCI devices only (Cardbus, PCI, miniPCI)\n" @@ -175,51 +156,46 @@ "+\t * devices (legacy, 802.11abg).\n" "+\t */\n" "+\tif (num_possible_cpus() > 1)\n" - "+\t\tah->ah_config.serialize_regmode =3D SER_REG_MODE_AUTO;\n" + "+\t\tah->ah_config.serialize_regmode = SER_REG_MODE_AUTO;\n" " }\n" - "=20\n" + " \n" " static struct ath_hal_5416 *ath9k_hw_newstate(u16 devid,\n" - "@@ -668,7 +687,8 @@ static struct ath_hal *ath9k_hw_do_attach(u16 devid=\n" - ", struct ath_softc *sc,\n" + "@@ -668,7 +687,8 @@ static struct ath_hal *ath9k_hw_do_attach(u16 devid, struct ath_softc *sc,\n" " \t}\n" - "=20\n" - " \tif (ah->ah_config.serialize_regmode =3D=3D SER_REG_MODE_AUTO) {\n" - "-\t\tif (ah->ah_macVersion =3D=3D AR_SREV_VERSION_5416_PCI) {\n" - "+\t\tif (ah->ah_macVersion =3D=3D AR_SREV_VERSION_5416_PCI ||\n" + " \n" + " \tif (ah->ah_config.serialize_regmode == SER_REG_MODE_AUTO) {\n" + "-\t\tif (ah->ah_macVersion == AR_SREV_VERSION_5416_PCI) {\n" + "+\t\tif (ah->ah_macVersion == AR_SREV_VERSION_5416_PCI ||\n" "+\t\t (AR_SREV_9280(ah) && !ah->ah_isPciExpress)) {\n" - " \t\t\tah->ah_config.serialize_regmode =3D\n" + " \t\t\tah->ah_config.serialize_regmode =\n" " \t\t\t\tSER_REG_MODE_ON;\n" " \t\t} else {\n" - "diff --git a/drivers/net/wireless/ath9k/main.c b/drivers/net/wireless/a=\n" - "th9k/main.c\n" + "diff --git a/drivers/net/wireless/ath9k/main.c b/drivers/net/wireless/ath9k/main.c\n" "index 0e80990..3c04044 100644\n" "--- a/drivers/net/wireless/ath9k/main.c\n" "+++ b/drivers/net/wireless/ath9k/main.c\n" - "@@ -1336,6 +1336,7 @@ static int ath_init(u16 devid, struct ath_softc *=\n" - "sc)\n" + "@@ -1336,6 +1336,7 @@ static int ath_init(u16 devid, struct ath_softc *sc)\n" " \t\tprintk(KERN_ERR \"Unable to create debugfs files\\n\");\n" - "=20\n" + " \n" " \tspin_lock_init(&sc->sc_resetlock);\n" "+\tspin_lock_init(&sc->sc_serial_rw);\n" " \tmutex_init(&sc->mutex);\n" " \ttasklet_init(&sc->intr_tq, ath9k_tasklet, (unsigned long)sc);\n" " \ttasklet_init(&sc->bcon_tasklet, ath9k_beacon_tasklet,\n" - "diff --git a/drivers/net/wireless/zd1211rw/zd_mac.c b/drivers/net/wirel=\n" - "ess/zd1211rw/zd_mac.c\n" + "diff --git a/drivers/net/wireless/zd1211rw/zd_mac.c b/drivers/net/wireless/zd1211rw/zd_mac.c\n" "index a611ad8..847057d 100644\n" "--- a/drivers/net/wireless/zd1211rw/zd_mac.c\n" "+++ b/drivers/net/wireless/zd1211rw/zd_mac.c\n" - "@@ -575,13 +575,17 @@ static int zd_op_tx(struct ieee80211_hw *hw, stru=\n" - "ct sk_buff *skb)\n" - "=20\n" - " \tr =3D fill_ctrlset(mac, skb);\n" + "@@ -575,13 +575,17 @@ static int zd_op_tx(struct ieee80211_hw *hw, struct sk_buff *skb)\n" + " \n" + " \tr = fill_ctrlset(mac, skb);\n" " \tif (r)\n" "-\t\treturn r;\n" "+\t\tgoto fail;\n" - "=20\n" - " \tinfo->rate_driver_data[0] =3D hw;\n" - "=20\n" - " \tr =3D zd_usb_tx(&mac->chip.usb, skb);\n" + " \n" + " \tinfo->rate_driver_data[0] = hw;\n" + " \n" + " \tr = zd_usb_tx(&mac->chip.usb, skb);\n" " \tif (r)\n" "-\t\treturn r;\n" "+\t\tgoto fail;\n" @@ -229,27 +205,26 @@ "+\tdev_kfree_skb(skb);\n" " \treturn 0;\n" " }\n" - "=20\n" + " \n" "diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c\n" "index 94de503..37e3d5e 100644\n" "--- a/net/mac80211/tx.c\n" "+++ b/net/mac80211/tx.c\n" - "@@ -752,6 +752,8 @@ ieee80211_tx_h_fragment(struct ieee80211_tx_data *t=\n" - "x)\n" + "@@ -752,6 +752,8 @@ ieee80211_tx_h_fragment(struct ieee80211_tx_data *tx)\n" " \t\tskb_copy_queue_mapping(frag, first);\n" - "=20\n" - " \t\tfrag->do_not_encrypt =3D first->do_not_encrypt;\n" - "+\t\tfrag->dev =3D first->dev;\n" - "+\t\tfrag->iif =3D first->iif;\n" - "=20\n" - " \t\tpos +=3D copylen;\n" - " \t\tleft -=3D copylen;\n" + " \n" + " \t\tfrag->do_not_encrypt = first->do_not_encrypt;\n" + "+\t\tfrag->dev = first->dev;\n" + "+\t\tfrag->iif = first->iif;\n" + " \n" + " \t\tpos += copylen;\n" + " \t\tleft -= copylen;\n" "diff --git a/net/wireless/Kconfig b/net/wireless/Kconfig\n" "index e28e2b8..092ae6f 100644\n" "--- a/net/wireless/Kconfig\n" "+++ b/net/wireless/Kconfig\n" "@@ -102,3 +102,13 @@ config LIB80211_CRYPT_CCMP\n" - "=20\n" + " \n" " config LIB80211_CRYPT_TKIP\n" " \ttristate\n" "+\n" @@ -262,22 +237,19 @@ "+\t from lib80211.\n" "+\n" "+\t If unsure, say N.\n" - "diff --git a/net/wireless/lib80211_crypt_ccmp.c b/net/wireless/lib80211=\n" - "_crypt_ccmp.c\n" + "diff --git a/net/wireless/lib80211_crypt_ccmp.c b/net/wireless/lib80211_crypt_ccmp.c\n" "index db42819..2301dc1 100644\n" "--- a/net/wireless/lib80211_crypt_ccmp.c\n" "+++ b/net/wireless/lib80211_crypt_ccmp.c\n" - "@@ -337,6 +337,7 @@ static int lib80211_ccmp_decrypt(struct sk_buff *sk=\n" - "b, int hdr_len, void *priv)\n" - " \tpos +=3D 8;\n" - "=20\n" + "@@ -337,6 +337,7 @@ static int lib80211_ccmp_decrypt(struct sk_buff *skb, int hdr_len, void *priv)\n" + " \tpos += 8;\n" + " \n" " \tif (ccmp_replay_check(pn, key->rx_pn)) {\n" "+#ifdef CONFIG_LIB80211_DEBUG\n" " \t\tif (net_ratelimit()) {\n" - " \t\t\tprintk(KERN_DEBUG \"CCMP: replay detected: STA=3D%pM \"\n" + " \t\t\tprintk(KERN_DEBUG \"CCMP: replay detected: STA=%pM \"\n" " \t\t\t\t \"previous PN %02x%02x%02x%02x%02x%02x \"\n" - "@@ -346,6 +347,7 @@ static int lib80211_ccmp_decrypt(struct sk_buff *sk=\n" - "b, int hdr_len, void *priv)\n" + "@@ -346,6 +347,7 @@ static int lib80211_ccmp_decrypt(struct sk_buff *skb, int hdr_len, void *priv)\n" " \t\t\t\t key->rx_pn[3], key->rx_pn[4], key->rx_pn[5],\n" " \t\t\t\t pn[0], pn[1], pn[2], pn[3], pn[4], pn[5]);\n" " \t\t}\n" @@ -285,19 +257,17 @@ " \t\tkey->dot11RSNAStatsCCMPReplays++;\n" " \t\treturn -4;\n" " \t}\n" - "diff --git a/net/wireless/lib80211_crypt_tkip.c b/net/wireless/lib80211=\n" - "_crypt_tkip.c\n" + "diff --git a/net/wireless/lib80211_crypt_tkip.c b/net/wireless/lib80211_crypt_tkip.c\n" "index 7e8e22b..c362873 100644\n" "--- a/net/wireless/lib80211_crypt_tkip.c\n" "+++ b/net/wireless/lib80211_crypt_tkip.c\n" - "@@ -465,12 +465,14 @@ static int lib80211_tkip_decrypt(struct sk_buff *=\n" - "skb, int hdr_len, void *priv)\n" - " \tpos +=3D 8;\n" - "=20\n" + "@@ -465,12 +465,14 @@ static int lib80211_tkip_decrypt(struct sk_buff *skb, int hdr_len, void *priv)\n" + " \tpos += 8;\n" + " \n" " \tif (tkip_replay_check(iv32, iv16, tkey->rx_iv32, tkey->rx_iv16)) {\n" "+#ifdef CONFIG_LIB80211_DEBUG\n" " \t\tif (net_ratelimit()) {\n" - " \t\t\tprintk(KERN_DEBUG \"TKIP: replay detected: STA=3D%pM\"\n" + " \t\t\tprintk(KERN_DEBUG \"TKIP: replay detected: STA=%pM\"\n" " \t\t\t \" previous TSC %08x%04x received TSC \"\n" " \t\t\t \"%08x%04x\\n\", hdr->addr2,\n" " \t\t\t tkey->rx_iv32, tkey->rx_iv16, iv32, iv16);\n" @@ -306,27 +276,21 @@ " \t\ttkey->dot11RSNAStatsTKIPReplays++;\n" " \t\treturn -4;\n" " \t}\n" - "@@ -505,10 +507,12 @@ static int lib80211_tkip_decrypt(struct sk_buff *=\n" - "skb, int hdr_len, void *priv)\n" + "@@ -505,10 +507,12 @@ static int lib80211_tkip_decrypt(struct sk_buff *skb, int hdr_len, void *priv)\n" " \t\t\t * it needs to be recalculated for the next packet. */\n" - " \t\t\ttkey->rx_phase1_done =3D 0;\n" + " \t\t\ttkey->rx_phase1_done = 0;\n" " \t\t}\n" "+#ifdef CONFIG_LIB80211_DEBUG\n" " \t\tif (net_ratelimit()) {\n" - " \t\t\tprintk(KERN_DEBUG \"TKIP: ICV error detected: STA=3D\"\n" + " \t\t\tprintk(KERN_DEBUG \"TKIP: ICV error detected: STA=\"\n" " \t\t\t \"%pM\\n\", hdr->addr2);\n" " \t\t}\n" "+#endif\n" " \t\ttkey->dot11RSNAStatsTKIPICVErrors++;\n" " \t\treturn -5;\n" " \t}\n" - "--=20\n" + "-- \n" "John W. Linville\t\tSomeday the world will need a hero, and you\n" - "linville@tuxdriver.com\t\t\tmight be all we have. Be ready.\n" - "--\n" - "To unsubscribe from this list: send the line \"unsubscribe linux-wireles=\n" - "s\" in\n" - "the body of a message to majordomo@vger.kernel.org\n" - More majordomo info at http://vger.kernel.org/majordomo-info.html + "linville@tuxdriver.com\t\t\tmight be all we have. Be ready." -7e5a40cbb9a9b616d7c4fab20e91d8af8a79405a50462734a6948bd910564047 +d6d0b3b6bea0457348ed250c82d50a4b9bbfa4556cf747922dd7614879016957
diff --git a/a/1.txt b/N2/1.txt index 15cc1c0..2df3e20 100644 --- a/a/1.txt +++ b/N2/1.txt @@ -5,15 +5,12 @@ minor, but it cuts-down on log SPAM for ipw2100, ipw2200, and hostap users. The two from Jouni fix some panics he observed himself. The first one from Luis fixes bug 12110 at bugzilla.kernel.org. I know -he has worked on it for a long time and I've had several desperate user= -s +he has worked on it for a long time and I've had several desperate users asking for it, so it must be good. :-) Unfortunately, it causes some nasty merge errors with what is in net-next-2.6 and wireless-next-2.6. -I created a merge-test branch in wireless-next-2.6, and the merge commi= -t +I created a merge-test branch in wireless-next-2.6, and the merge commit log goes into more detail about resolving the issue. In short, you -probably want to diff drivers/net/ath9k against the merge-test branch..= -=2E +probably want to diff drivers/net/ath9k against the merge-test branch... Please let me know if there are problems! @@ -29,16 +26,13 @@ Individual patches are available here: --- -The following changes since commit ea8dbdd17099a9a5864ebd4c87e01e657b19= -c7ab: - fran=E7ois romieu (1): - r8169: revert "r8169: read MAC address from EEPROM on init (2nd= - attempt)" +The following changes since commit ea8dbdd17099a9a5864ebd4c87e01e657b19c7ab: + françois romieu (1): + r8169: revert "r8169: read MAC address from EEPROM on init (2nd attempt)" are available in the git repository at: - git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.g= -it master + git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git master John W. Linville (1): lib80211: silence excessive crypto debugging messages @@ -52,8 +46,7 @@ Luis R. Rodriguez (2): ath9k: AR9280 PCI devices must serialize IO as well drivers/net/wireless/ath9k/ath9k.h | 4 +- - drivers/net/wireless/ath9k/core.h | 33 ++++++++++++++++++++++++= -++++++++ + drivers/net/wireless/ath9k/core.h | 33 ++++++++++++++++++++++++++++++++ drivers/net/wireless/ath9k/hw.c | 22 ++++++++++++++++++++- drivers/net/wireless/ath9k/main.c | 1 + drivers/net/wireless/zd1211rw/zd_mac.c | 8 +++++- @@ -63,25 +56,22 @@ Luis R. Rodriguez (2): net/wireless/lib80211_crypt_tkip.c | 4 +++ 9 files changed, 81 insertions(+), 5 deletions(-) -diff --git a/drivers/net/wireless/ath9k/ath9k.h b/drivers/net/wireless/= -ath9k/ath9k.h +diff --git a/drivers/net/wireless/ath9k/ath9k.h b/drivers/net/wireless/ath9k/ath9k.h index d278135..6650f60 100644 --- a/drivers/net/wireless/ath9k/ath9k.h +++ b/drivers/net/wireless/ath9k/ath9k.h @@ -587,8 +587,8 @@ struct ath9k_country_entry { u8 iso[3]; }; -=20 + -#define REG_WRITE(_ah, _reg, _val) iowrite32(_val, _ah->ah_sh + _reg) -#define REG_READ(_ah, _reg) ioread32(_ah->ah_sh + _reg) -+#define REG_WRITE(_ah, _reg, _val) ath9k_iowrite32((_ah), (_reg), (_va= -l)) ++#define REG_WRITE(_ah, _reg, _val) ath9k_iowrite32((_ah), (_reg), (_val)) +#define REG_READ(_ah, _reg) ath9k_ioread32((_ah), (_reg)) -=20 + #define SM(_v, _f) (((_v) << _f##_S) & _f) #define MS(_v, _f) (((_v) & _f) >> _f##_S) -diff --git a/drivers/net/wireless/ath9k/core.h b/drivers/net/wireless/a= -th9k/core.h +diff --git a/drivers/net/wireless/ath9k/core.h b/drivers/net/wireless/ath9k/core.h index 4ca2aed..139566c 100644 --- a/drivers/net/wireless/ath9k/core.h +++ b/drivers/net/wireless/ath9k/core.h @@ -91,29 +81,23 @@ index 4ca2aed..139566c 100644 spinlock_t sc_resetlock; + spinlock_t sc_serial_rw; struct mutex mutex; -=20 + u8 sc_curbssid[ETH_ALEN]; -@@ -751,4 +752,36 @@ int ath_get_hal_qnum(u16 queue, struct ath_softc *= -sc); +@@ -751,4 +752,36 @@ int ath_get_hal_qnum(u16 queue, struct ath_softc *sc); int ath_get_mac80211_qnum(u32 queue, struct ath_softc *sc); int ath_cabq_update(struct ath_softc *); -=20 + +/* -+ * Read and write, they both share the same lock. We do this to serial= -ize -+ * reads and writes on Atheros 802.11n PCI devices only. This is requi= -red -+ * as the FIFO on these devices can only accept sanely 2 requests. Aft= -er -+ * that the device goes bananas. Serializing the reads/writes prevents= - this ++ * Read and write, they both share the same lock. We do this to serialize ++ * reads and writes on Atheros 802.11n PCI devices only. This is required ++ * as the FIFO on these devices can only accept sanely 2 requests. After ++ * that the device goes bananas. Serializing the reads/writes prevents this + * from happening. + */ + -+static inline void ath9k_iowrite32(struct ath_hal *ah, u32 reg_offset,= - u32 val) ++static inline void ath9k_iowrite32(struct ath_hal *ah, u32 reg_offset, u32 val) +{ -+ if (ah->ah_config.serialize_regmode =3D=3D SER_REG_MODE_ON) { ++ if (ah->ah_config.serialize_regmode == SER_REG_MODE_ON) { + unsigned long flags; + spin_lock_irqsave(&ah->ah_sc->sc_serial_rw, flags); + iowrite32(val, ah->ah_sc->mem + reg_offset); @@ -122,31 +106,28 @@ er + iowrite32(val, ah->ah_sc->mem + reg_offset); +} + -+static inline unsigned int ath9k_ioread32(struct ath_hal *ah, u32 reg_= -offset) ++static inline unsigned int ath9k_ioread32(struct ath_hal *ah, u32 reg_offset) +{ + u32 val; -+ if (ah->ah_config.serialize_regmode =3D=3D SER_REG_MODE_ON) { ++ if (ah->ah_config.serialize_regmode == SER_REG_MODE_ON) { + unsigned long flags; + spin_lock_irqsave(&ah->ah_sc->sc_serial_rw, flags); -+ val =3D ioread32(ah->ah_sc->mem + reg_offset); ++ val = ioread32(ah->ah_sc->mem + reg_offset); + spin_unlock_irqrestore(&ah->ah_sc->sc_serial_rw, flags); + } else -+ val =3D ioread32(ah->ah_sc->mem + reg_offset); ++ val = ioread32(ah->ah_sc->mem + reg_offset); + return val; +} + #endif /* CORE_H */ -diff --git a/drivers/net/wireless/ath9k/hw.c b/drivers/net/wireless/ath= -9k/hw.c +diff --git a/drivers/net/wireless/ath9k/hw.c b/drivers/net/wireless/ath9k/hw.c index 34474ed..c38a00b 100644 --- a/drivers/net/wireless/ath9k/hw.c +++ b/drivers/net/wireless/ath9k/hw.c -@@ -437,6 +437,25 @@ static void ath9k_hw_set_defaults(struct ath_hal *= -ah) +@@ -437,6 +437,25 @@ static void ath9k_hw_set_defaults(struct ath_hal *ah) } -=20 - ah->ah_config.intr_mitigation =3D 1; + + ah->ah_config.intr_mitigation = 1; + + /* + * We need this for PCI devices only (Cardbus, PCI, miniPCI) @@ -165,51 +146,46 @@ ah) + * devices (legacy, 802.11abg). + */ + if (num_possible_cpus() > 1) -+ ah->ah_config.serialize_regmode =3D SER_REG_MODE_AUTO; ++ ah->ah_config.serialize_regmode = SER_REG_MODE_AUTO; } -=20 + static struct ath_hal_5416 *ath9k_hw_newstate(u16 devid, -@@ -668,7 +687,8 @@ static struct ath_hal *ath9k_hw_do_attach(u16 devid= -, struct ath_softc *sc, +@@ -668,7 +687,8 @@ static struct ath_hal *ath9k_hw_do_attach(u16 devid, struct ath_softc *sc, } -=20 - if (ah->ah_config.serialize_regmode =3D=3D SER_REG_MODE_AUTO) { -- if (ah->ah_macVersion =3D=3D AR_SREV_VERSION_5416_PCI) { -+ if (ah->ah_macVersion =3D=3D AR_SREV_VERSION_5416_PCI || + + if (ah->ah_config.serialize_regmode == SER_REG_MODE_AUTO) { +- if (ah->ah_macVersion == AR_SREV_VERSION_5416_PCI) { ++ if (ah->ah_macVersion == AR_SREV_VERSION_5416_PCI || + (AR_SREV_9280(ah) && !ah->ah_isPciExpress)) { - ah->ah_config.serialize_regmode =3D + ah->ah_config.serialize_regmode = SER_REG_MODE_ON; } else { -diff --git a/drivers/net/wireless/ath9k/main.c b/drivers/net/wireless/a= -th9k/main.c +diff --git a/drivers/net/wireless/ath9k/main.c b/drivers/net/wireless/ath9k/main.c index 0e80990..3c04044 100644 --- a/drivers/net/wireless/ath9k/main.c +++ b/drivers/net/wireless/ath9k/main.c -@@ -1336,6 +1336,7 @@ static int ath_init(u16 devid, struct ath_softc *= -sc) +@@ -1336,6 +1336,7 @@ static int ath_init(u16 devid, struct ath_softc *sc) printk(KERN_ERR "Unable to create debugfs files\n"); -=20 + spin_lock_init(&sc->sc_resetlock); + spin_lock_init(&sc->sc_serial_rw); mutex_init(&sc->mutex); tasklet_init(&sc->intr_tq, ath9k_tasklet, (unsigned long)sc); tasklet_init(&sc->bcon_tasklet, ath9k_beacon_tasklet, -diff --git a/drivers/net/wireless/zd1211rw/zd_mac.c b/drivers/net/wirel= -ess/zd1211rw/zd_mac.c +diff --git a/drivers/net/wireless/zd1211rw/zd_mac.c b/drivers/net/wireless/zd1211rw/zd_mac.c index a611ad8..847057d 100644 --- a/drivers/net/wireless/zd1211rw/zd_mac.c +++ b/drivers/net/wireless/zd1211rw/zd_mac.c -@@ -575,13 +575,17 @@ static int zd_op_tx(struct ieee80211_hw *hw, stru= -ct sk_buff *skb) -=20 - r =3D fill_ctrlset(mac, skb); +@@ -575,13 +575,17 @@ static int zd_op_tx(struct ieee80211_hw *hw, struct sk_buff *skb) + + r = fill_ctrlset(mac, skb); if (r) - return r; + goto fail; -=20 - info->rate_driver_data[0] =3D hw; -=20 - r =3D zd_usb_tx(&mac->chip.usb, skb); + + info->rate_driver_data[0] = hw; + + r = zd_usb_tx(&mac->chip.usb, skb); if (r) - return r; + goto fail; @@ -219,27 +195,26 @@ ct sk_buff *skb) + dev_kfree_skb(skb); return 0; } -=20 + diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c index 94de503..37e3d5e 100644 --- a/net/mac80211/tx.c +++ b/net/mac80211/tx.c -@@ -752,6 +752,8 @@ ieee80211_tx_h_fragment(struct ieee80211_tx_data *t= -x) +@@ -752,6 +752,8 @@ ieee80211_tx_h_fragment(struct ieee80211_tx_data *tx) skb_copy_queue_mapping(frag, first); -=20 - frag->do_not_encrypt =3D first->do_not_encrypt; -+ frag->dev =3D first->dev; -+ frag->iif =3D first->iif; -=20 - pos +=3D copylen; - left -=3D copylen; + + frag->do_not_encrypt = first->do_not_encrypt; ++ frag->dev = first->dev; ++ frag->iif = first->iif; + + pos += copylen; + left -= copylen; diff --git a/net/wireless/Kconfig b/net/wireless/Kconfig index e28e2b8..092ae6f 100644 --- a/net/wireless/Kconfig +++ b/net/wireless/Kconfig @@ -102,3 +102,13 @@ config LIB80211_CRYPT_CCMP -=20 + config LIB80211_CRYPT_TKIP tristate + @@ -252,22 +227,19 @@ index e28e2b8..092ae6f 100644 + from lib80211. + + If unsure, say N. -diff --git a/net/wireless/lib80211_crypt_ccmp.c b/net/wireless/lib80211= -_crypt_ccmp.c +diff --git a/net/wireless/lib80211_crypt_ccmp.c b/net/wireless/lib80211_crypt_ccmp.c index db42819..2301dc1 100644 --- a/net/wireless/lib80211_crypt_ccmp.c +++ b/net/wireless/lib80211_crypt_ccmp.c -@@ -337,6 +337,7 @@ static int lib80211_ccmp_decrypt(struct sk_buff *sk= -b, int hdr_len, void *priv) - pos +=3D 8; -=20 +@@ -337,6 +337,7 @@ static int lib80211_ccmp_decrypt(struct sk_buff *skb, int hdr_len, void *priv) + pos += 8; + if (ccmp_replay_check(pn, key->rx_pn)) { +#ifdef CONFIG_LIB80211_DEBUG if (net_ratelimit()) { - printk(KERN_DEBUG "CCMP: replay detected: STA=3D%pM " + printk(KERN_DEBUG "CCMP: replay detected: STA=%pM " "previous PN %02x%02x%02x%02x%02x%02x " -@@ -346,6 +347,7 @@ static int lib80211_ccmp_decrypt(struct sk_buff *sk= -b, int hdr_len, void *priv) +@@ -346,6 +347,7 @@ static int lib80211_ccmp_decrypt(struct sk_buff *skb, int hdr_len, void *priv) key->rx_pn[3], key->rx_pn[4], key->rx_pn[5], pn[0], pn[1], pn[2], pn[3], pn[4], pn[5]); } @@ -275,19 +247,17 @@ b, int hdr_len, void *priv) key->dot11RSNAStatsCCMPReplays++; return -4; } -diff --git a/net/wireless/lib80211_crypt_tkip.c b/net/wireless/lib80211= -_crypt_tkip.c +diff --git a/net/wireless/lib80211_crypt_tkip.c b/net/wireless/lib80211_crypt_tkip.c index 7e8e22b..c362873 100644 --- a/net/wireless/lib80211_crypt_tkip.c +++ b/net/wireless/lib80211_crypt_tkip.c -@@ -465,12 +465,14 @@ static int lib80211_tkip_decrypt(struct sk_buff *= -skb, int hdr_len, void *priv) - pos +=3D 8; -=20 +@@ -465,12 +465,14 @@ static int lib80211_tkip_decrypt(struct sk_buff *skb, int hdr_len, void *priv) + pos += 8; + if (tkip_replay_check(iv32, iv16, tkey->rx_iv32, tkey->rx_iv16)) { +#ifdef CONFIG_LIB80211_DEBUG if (net_ratelimit()) { - printk(KERN_DEBUG "TKIP: replay detected: STA=3D%pM" + printk(KERN_DEBUG "TKIP: replay detected: STA=%pM" " previous TSC %08x%04x received TSC " "%08x%04x\n", hdr->addr2, tkey->rx_iv32, tkey->rx_iv16, iv32, iv16); @@ -296,25 +266,23 @@ skb, int hdr_len, void *priv) tkey->dot11RSNAStatsTKIPReplays++; return -4; } -@@ -505,10 +507,12 @@ static int lib80211_tkip_decrypt(struct sk_buff *= -skb, int hdr_len, void *priv) +@@ -505,10 +507,12 @@ static int lib80211_tkip_decrypt(struct sk_buff *skb, int hdr_len, void *priv) * it needs to be recalculated for the next packet. */ - tkey->rx_phase1_done =3D 0; + tkey->rx_phase1_done = 0; } +#ifdef CONFIG_LIB80211_DEBUG if (net_ratelimit()) { - printk(KERN_DEBUG "TKIP: ICV error detected: STA=3D" + printk(KERN_DEBUG "TKIP: ICV error detected: STA=" "%pM\n", hdr->addr2); } +#endif tkey->dot11RSNAStatsTKIPICVErrors++; return -5; } ---=20 +-- John W. Linville Someday the world will need a hero, and you -linville@tuxdriver.com might be all we have. Be ready. +linville-2XuSBdqkA4R54TAoqtyWWQ@public.gmane.org might be all we have. Be ready. -- -To unsubscribe from this list: send the line "unsubscribe linux-wireles= -s" in -the body of a message to majordomo@vger.kernel.org +To unsubscribe from this list: send the line "unsubscribe linux-wireless" in +the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html diff --git a/a/content_digest b/N2/content_digest index e9f80a9..39109b5 100644 --- a/a/content_digest +++ b/N2/content_digest @@ -1,11 +1,11 @@ - "From\0John W. Linville <linville@tuxdriver.com>\0" + "From\0John W. Linville <linville-2XuSBdqkA4R54TAoqtyWWQ@public.gmane.org>\0" "Subject\0pull request: wireless-2.6 2009-03-16\0" "Date\0Mon, 16 Mar 2009 19:14:24 -0400\0" - "To\0davem@davemloft.net\0" - "Cc\0linux-wireless@vger.kernel.org" - netdev@vger.kernel.org - linux-kernel@vger.kernel.org - " sfr@canb.auug.org.au\0" + "To\0davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org\0" + "Cc\0linux-wireless-u79uwXL29TY76Z2rM5mHXA@public.gmane.org" + netdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org + linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org + " sfr-3FnU+UHB4dNDw9hX6IcOSA@public.gmane.org\0" "\00:1\0" "b\0" "Dave,\n" @@ -15,15 +15,12 @@ "users. The two from Jouni fix some panics he observed himself.\n" "\n" "The first one from Luis fixes bug 12110 at bugzilla.kernel.org. I know\n" - "he has worked on it for a long time and I've had several desperate user=\n" - "s\n" + "he has worked on it for a long time and I've had several desperate users\n" "asking for it, so it must be good. :-) Unfortunately, it causes some\n" "nasty merge errors with what is in net-next-2.6 and wireless-next-2.6.\n" - "I created a merge-test branch in wireless-next-2.6, and the merge commi=\n" - "t\n" + "I created a merge-test branch in wireless-next-2.6, and the merge commit\n" "log goes into more detail about resolving the issue. In short, you\n" - "probably want to diff drivers/net/ath9k against the merge-test branch..=\n" - "=2E\n" + "probably want to diff drivers/net/ath9k against the merge-test branch...\n" "\n" "Please let me know if there are problems!\n" "\n" @@ -39,16 +36,13 @@ "\n" "---\n" "\n" - "The following changes since commit ea8dbdd17099a9a5864ebd4c87e01e657b19=\n" - "c7ab:\n" - " fran=E7ois romieu (1):\n" - " r8169: revert \"r8169: read MAC address from EEPROM on init (2nd=\n" - " attempt)\"\n" + "The following changes since commit ea8dbdd17099a9a5864ebd4c87e01e657b19c7ab:\n" + " fran\303\247ois romieu (1):\n" + " r8169: revert \"r8169: read MAC address from EEPROM on init (2nd attempt)\"\n" "\n" "are available in the git repository at:\n" "\n" - " git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.g=\n" - "it master\n" + " git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git master\n" "\n" "John W. Linville (1):\n" " lib80211: silence excessive crypto debugging messages\n" @@ -62,8 +56,7 @@ " ath9k: AR9280 PCI devices must serialize IO as well\n" "\n" " drivers/net/wireless/ath9k/ath9k.h | 4 +-\n" - " drivers/net/wireless/ath9k/core.h | 33 ++++++++++++++++++++++++=\n" - "++++++++\n" + " drivers/net/wireless/ath9k/core.h | 33 ++++++++++++++++++++++++++++++++\n" " drivers/net/wireless/ath9k/hw.c | 22 ++++++++++++++++++++-\n" " drivers/net/wireless/ath9k/main.c | 1 +\n" " drivers/net/wireless/zd1211rw/zd_mac.c | 8 +++++-\n" @@ -73,25 +66,22 @@ " net/wireless/lib80211_crypt_tkip.c | 4 +++\n" " 9 files changed, 81 insertions(+), 5 deletions(-)\n" "\n" - "diff --git a/drivers/net/wireless/ath9k/ath9k.h b/drivers/net/wireless/=\n" - "ath9k/ath9k.h\n" + "diff --git a/drivers/net/wireless/ath9k/ath9k.h b/drivers/net/wireless/ath9k/ath9k.h\n" "index d278135..6650f60 100644\n" "--- a/drivers/net/wireless/ath9k/ath9k.h\n" "+++ b/drivers/net/wireless/ath9k/ath9k.h\n" "@@ -587,8 +587,8 @@ struct ath9k_country_entry {\n" " \tu8 iso[3];\n" " };\n" - "=20\n" + " \n" "-#define REG_WRITE(_ah, _reg, _val) iowrite32(_val, _ah->ah_sh + _reg)\n" "-#define REG_READ(_ah, _reg) ioread32(_ah->ah_sh + _reg)\n" - "+#define REG_WRITE(_ah, _reg, _val) ath9k_iowrite32((_ah), (_reg), (_va=\n" - "l))\n" + "+#define REG_WRITE(_ah, _reg, _val) ath9k_iowrite32((_ah), (_reg), (_val))\n" "+#define REG_READ(_ah, _reg) ath9k_ioread32((_ah), (_reg))\n" - "=20\n" + " \n" " #define SM(_v, _f) (((_v) << _f##_S) & _f)\n" " #define MS(_v, _f) (((_v) & _f) >> _f##_S)\n" - "diff --git a/drivers/net/wireless/ath9k/core.h b/drivers/net/wireless/a=\n" - "th9k/core.h\n" + "diff --git a/drivers/net/wireless/ath9k/core.h b/drivers/net/wireless/ath9k/core.h\n" "index 4ca2aed..139566c 100644\n" "--- a/drivers/net/wireless/ath9k/core.h\n" "+++ b/drivers/net/wireless/ath9k/core.h\n" @@ -101,29 +91,23 @@ " \tspinlock_t sc_resetlock;\n" "+\tspinlock_t sc_serial_rw;\n" " \tstruct mutex mutex;\n" - "=20\n" + " \n" " \tu8 sc_curbssid[ETH_ALEN];\n" - "@@ -751,4 +752,36 @@ int ath_get_hal_qnum(u16 queue, struct ath_softc *=\n" - "sc);\n" + "@@ -751,4 +752,36 @@ int ath_get_hal_qnum(u16 queue, struct ath_softc *sc);\n" " int ath_get_mac80211_qnum(u32 queue, struct ath_softc *sc);\n" " int ath_cabq_update(struct ath_softc *);\n" - "=20\n" + " \n" "+/*\n" - "+ * Read and write, they both share the same lock. We do this to serial=\n" - "ize\n" - "+ * reads and writes on Atheros 802.11n PCI devices only. This is requi=\n" - "red\n" - "+ * as the FIFO on these devices can only accept sanely 2 requests. Aft=\n" - "er\n" - "+ * that the device goes bananas. Serializing the reads/writes prevents=\n" - " this\n" + "+ * Read and write, they both share the same lock. We do this to serialize\n" + "+ * reads and writes on Atheros 802.11n PCI devices only. This is required\n" + "+ * as the FIFO on these devices can only accept sanely 2 requests. After\n" + "+ * that the device goes bananas. Serializing the reads/writes prevents this\n" "+ * from happening.\n" "+ */\n" "+\n" - "+static inline void ath9k_iowrite32(struct ath_hal *ah, u32 reg_offset,=\n" - " u32 val)\n" + "+static inline void ath9k_iowrite32(struct ath_hal *ah, u32 reg_offset, u32 val)\n" "+{\n" - "+\tif (ah->ah_config.serialize_regmode =3D=3D SER_REG_MODE_ON) {\n" + "+\tif (ah->ah_config.serialize_regmode == SER_REG_MODE_ON) {\n" "+\t\tunsigned long flags;\n" "+\t\tspin_lock_irqsave(&ah->ah_sc->sc_serial_rw, flags);\n" "+\t\tiowrite32(val, ah->ah_sc->mem + reg_offset);\n" @@ -132,31 +116,28 @@ "+\t\tiowrite32(val, ah->ah_sc->mem + reg_offset);\n" "+}\n" "+\n" - "+static inline unsigned int ath9k_ioread32(struct ath_hal *ah, u32 reg_=\n" - "offset)\n" + "+static inline unsigned int ath9k_ioread32(struct ath_hal *ah, u32 reg_offset)\n" "+{\n" "+\tu32 val;\n" - "+\tif (ah->ah_config.serialize_regmode =3D=3D SER_REG_MODE_ON) {\n" + "+\tif (ah->ah_config.serialize_regmode == SER_REG_MODE_ON) {\n" "+\t\tunsigned long flags;\n" "+\t\tspin_lock_irqsave(&ah->ah_sc->sc_serial_rw, flags);\n" - "+\t\tval =3D ioread32(ah->ah_sc->mem + reg_offset);\n" + "+\t\tval = ioread32(ah->ah_sc->mem + reg_offset);\n" "+\t\tspin_unlock_irqrestore(&ah->ah_sc->sc_serial_rw, flags);\n" "+\t} else\n" - "+\t\tval =3D ioread32(ah->ah_sc->mem + reg_offset);\n" + "+\t\tval = ioread32(ah->ah_sc->mem + reg_offset);\n" "+\treturn val;\n" "+}\n" "+\n" " #endif /* CORE_H */\n" - "diff --git a/drivers/net/wireless/ath9k/hw.c b/drivers/net/wireless/ath=\n" - "9k/hw.c\n" + "diff --git a/drivers/net/wireless/ath9k/hw.c b/drivers/net/wireless/ath9k/hw.c\n" "index 34474ed..c38a00b 100644\n" "--- a/drivers/net/wireless/ath9k/hw.c\n" "+++ b/drivers/net/wireless/ath9k/hw.c\n" - "@@ -437,6 +437,25 @@ static void ath9k_hw_set_defaults(struct ath_hal *=\n" - "ah)\n" + "@@ -437,6 +437,25 @@ static void ath9k_hw_set_defaults(struct ath_hal *ah)\n" " \t}\n" - "=20\n" - " \tah->ah_config.intr_mitigation =3D 1;\n" + " \n" + " \tah->ah_config.intr_mitigation = 1;\n" "+\n" "+\t/*\n" "+\t * We need this for PCI devices only (Cardbus, PCI, miniPCI)\n" @@ -175,51 +156,46 @@ "+\t * devices (legacy, 802.11abg).\n" "+\t */\n" "+\tif (num_possible_cpus() > 1)\n" - "+\t\tah->ah_config.serialize_regmode =3D SER_REG_MODE_AUTO;\n" + "+\t\tah->ah_config.serialize_regmode = SER_REG_MODE_AUTO;\n" " }\n" - "=20\n" + " \n" " static struct ath_hal_5416 *ath9k_hw_newstate(u16 devid,\n" - "@@ -668,7 +687,8 @@ static struct ath_hal *ath9k_hw_do_attach(u16 devid=\n" - ", struct ath_softc *sc,\n" + "@@ -668,7 +687,8 @@ static struct ath_hal *ath9k_hw_do_attach(u16 devid, struct ath_softc *sc,\n" " \t}\n" - "=20\n" - " \tif (ah->ah_config.serialize_regmode =3D=3D SER_REG_MODE_AUTO) {\n" - "-\t\tif (ah->ah_macVersion =3D=3D AR_SREV_VERSION_5416_PCI) {\n" - "+\t\tif (ah->ah_macVersion =3D=3D AR_SREV_VERSION_5416_PCI ||\n" + " \n" + " \tif (ah->ah_config.serialize_regmode == SER_REG_MODE_AUTO) {\n" + "-\t\tif (ah->ah_macVersion == AR_SREV_VERSION_5416_PCI) {\n" + "+\t\tif (ah->ah_macVersion == AR_SREV_VERSION_5416_PCI ||\n" "+\t\t (AR_SREV_9280(ah) && !ah->ah_isPciExpress)) {\n" - " \t\t\tah->ah_config.serialize_regmode =3D\n" + " \t\t\tah->ah_config.serialize_regmode =\n" " \t\t\t\tSER_REG_MODE_ON;\n" " \t\t} else {\n" - "diff --git a/drivers/net/wireless/ath9k/main.c b/drivers/net/wireless/a=\n" - "th9k/main.c\n" + "diff --git a/drivers/net/wireless/ath9k/main.c b/drivers/net/wireless/ath9k/main.c\n" "index 0e80990..3c04044 100644\n" "--- a/drivers/net/wireless/ath9k/main.c\n" "+++ b/drivers/net/wireless/ath9k/main.c\n" - "@@ -1336,6 +1336,7 @@ static int ath_init(u16 devid, struct ath_softc *=\n" - "sc)\n" + "@@ -1336,6 +1336,7 @@ static int ath_init(u16 devid, struct ath_softc *sc)\n" " \t\tprintk(KERN_ERR \"Unable to create debugfs files\\n\");\n" - "=20\n" + " \n" " \tspin_lock_init(&sc->sc_resetlock);\n" "+\tspin_lock_init(&sc->sc_serial_rw);\n" " \tmutex_init(&sc->mutex);\n" " \ttasklet_init(&sc->intr_tq, ath9k_tasklet, (unsigned long)sc);\n" " \ttasklet_init(&sc->bcon_tasklet, ath9k_beacon_tasklet,\n" - "diff --git a/drivers/net/wireless/zd1211rw/zd_mac.c b/drivers/net/wirel=\n" - "ess/zd1211rw/zd_mac.c\n" + "diff --git a/drivers/net/wireless/zd1211rw/zd_mac.c b/drivers/net/wireless/zd1211rw/zd_mac.c\n" "index a611ad8..847057d 100644\n" "--- a/drivers/net/wireless/zd1211rw/zd_mac.c\n" "+++ b/drivers/net/wireless/zd1211rw/zd_mac.c\n" - "@@ -575,13 +575,17 @@ static int zd_op_tx(struct ieee80211_hw *hw, stru=\n" - "ct sk_buff *skb)\n" - "=20\n" - " \tr =3D fill_ctrlset(mac, skb);\n" + "@@ -575,13 +575,17 @@ static int zd_op_tx(struct ieee80211_hw *hw, struct sk_buff *skb)\n" + " \n" + " \tr = fill_ctrlset(mac, skb);\n" " \tif (r)\n" "-\t\treturn r;\n" "+\t\tgoto fail;\n" - "=20\n" - " \tinfo->rate_driver_data[0] =3D hw;\n" - "=20\n" - " \tr =3D zd_usb_tx(&mac->chip.usb, skb);\n" + " \n" + " \tinfo->rate_driver_data[0] = hw;\n" + " \n" + " \tr = zd_usb_tx(&mac->chip.usb, skb);\n" " \tif (r)\n" "-\t\treturn r;\n" "+\t\tgoto fail;\n" @@ -229,27 +205,26 @@ "+\tdev_kfree_skb(skb);\n" " \treturn 0;\n" " }\n" - "=20\n" + " \n" "diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c\n" "index 94de503..37e3d5e 100644\n" "--- a/net/mac80211/tx.c\n" "+++ b/net/mac80211/tx.c\n" - "@@ -752,6 +752,8 @@ ieee80211_tx_h_fragment(struct ieee80211_tx_data *t=\n" - "x)\n" + "@@ -752,6 +752,8 @@ ieee80211_tx_h_fragment(struct ieee80211_tx_data *tx)\n" " \t\tskb_copy_queue_mapping(frag, first);\n" - "=20\n" - " \t\tfrag->do_not_encrypt =3D first->do_not_encrypt;\n" - "+\t\tfrag->dev =3D first->dev;\n" - "+\t\tfrag->iif =3D first->iif;\n" - "=20\n" - " \t\tpos +=3D copylen;\n" - " \t\tleft -=3D copylen;\n" + " \n" + " \t\tfrag->do_not_encrypt = first->do_not_encrypt;\n" + "+\t\tfrag->dev = first->dev;\n" + "+\t\tfrag->iif = first->iif;\n" + " \n" + " \t\tpos += copylen;\n" + " \t\tleft -= copylen;\n" "diff --git a/net/wireless/Kconfig b/net/wireless/Kconfig\n" "index e28e2b8..092ae6f 100644\n" "--- a/net/wireless/Kconfig\n" "+++ b/net/wireless/Kconfig\n" "@@ -102,3 +102,13 @@ config LIB80211_CRYPT_CCMP\n" - "=20\n" + " \n" " config LIB80211_CRYPT_TKIP\n" " \ttristate\n" "+\n" @@ -262,22 +237,19 @@ "+\t from lib80211.\n" "+\n" "+\t If unsure, say N.\n" - "diff --git a/net/wireless/lib80211_crypt_ccmp.c b/net/wireless/lib80211=\n" - "_crypt_ccmp.c\n" + "diff --git a/net/wireless/lib80211_crypt_ccmp.c b/net/wireless/lib80211_crypt_ccmp.c\n" "index db42819..2301dc1 100644\n" "--- a/net/wireless/lib80211_crypt_ccmp.c\n" "+++ b/net/wireless/lib80211_crypt_ccmp.c\n" - "@@ -337,6 +337,7 @@ static int lib80211_ccmp_decrypt(struct sk_buff *sk=\n" - "b, int hdr_len, void *priv)\n" - " \tpos +=3D 8;\n" - "=20\n" + "@@ -337,6 +337,7 @@ static int lib80211_ccmp_decrypt(struct sk_buff *skb, int hdr_len, void *priv)\n" + " \tpos += 8;\n" + " \n" " \tif (ccmp_replay_check(pn, key->rx_pn)) {\n" "+#ifdef CONFIG_LIB80211_DEBUG\n" " \t\tif (net_ratelimit()) {\n" - " \t\t\tprintk(KERN_DEBUG \"CCMP: replay detected: STA=3D%pM \"\n" + " \t\t\tprintk(KERN_DEBUG \"CCMP: replay detected: STA=%pM \"\n" " \t\t\t\t \"previous PN %02x%02x%02x%02x%02x%02x \"\n" - "@@ -346,6 +347,7 @@ static int lib80211_ccmp_decrypt(struct sk_buff *sk=\n" - "b, int hdr_len, void *priv)\n" + "@@ -346,6 +347,7 @@ static int lib80211_ccmp_decrypt(struct sk_buff *skb, int hdr_len, void *priv)\n" " \t\t\t\t key->rx_pn[3], key->rx_pn[4], key->rx_pn[5],\n" " \t\t\t\t pn[0], pn[1], pn[2], pn[3], pn[4], pn[5]);\n" " \t\t}\n" @@ -285,19 +257,17 @@ " \t\tkey->dot11RSNAStatsCCMPReplays++;\n" " \t\treturn -4;\n" " \t}\n" - "diff --git a/net/wireless/lib80211_crypt_tkip.c b/net/wireless/lib80211=\n" - "_crypt_tkip.c\n" + "diff --git a/net/wireless/lib80211_crypt_tkip.c b/net/wireless/lib80211_crypt_tkip.c\n" "index 7e8e22b..c362873 100644\n" "--- a/net/wireless/lib80211_crypt_tkip.c\n" "+++ b/net/wireless/lib80211_crypt_tkip.c\n" - "@@ -465,12 +465,14 @@ static int lib80211_tkip_decrypt(struct sk_buff *=\n" - "skb, int hdr_len, void *priv)\n" - " \tpos +=3D 8;\n" - "=20\n" + "@@ -465,12 +465,14 @@ static int lib80211_tkip_decrypt(struct sk_buff *skb, int hdr_len, void *priv)\n" + " \tpos += 8;\n" + " \n" " \tif (tkip_replay_check(iv32, iv16, tkey->rx_iv32, tkey->rx_iv16)) {\n" "+#ifdef CONFIG_LIB80211_DEBUG\n" " \t\tif (net_ratelimit()) {\n" - " \t\t\tprintk(KERN_DEBUG \"TKIP: replay detected: STA=3D%pM\"\n" + " \t\t\tprintk(KERN_DEBUG \"TKIP: replay detected: STA=%pM\"\n" " \t\t\t \" previous TSC %08x%04x received TSC \"\n" " \t\t\t \"%08x%04x\\n\", hdr->addr2,\n" " \t\t\t tkey->rx_iv32, tkey->rx_iv16, iv32, iv16);\n" @@ -306,27 +276,25 @@ " \t\ttkey->dot11RSNAStatsTKIPReplays++;\n" " \t\treturn -4;\n" " \t}\n" - "@@ -505,10 +507,12 @@ static int lib80211_tkip_decrypt(struct sk_buff *=\n" - "skb, int hdr_len, void *priv)\n" + "@@ -505,10 +507,12 @@ static int lib80211_tkip_decrypt(struct sk_buff *skb, int hdr_len, void *priv)\n" " \t\t\t * it needs to be recalculated for the next packet. */\n" - " \t\t\ttkey->rx_phase1_done =3D 0;\n" + " \t\t\ttkey->rx_phase1_done = 0;\n" " \t\t}\n" "+#ifdef CONFIG_LIB80211_DEBUG\n" " \t\tif (net_ratelimit()) {\n" - " \t\t\tprintk(KERN_DEBUG \"TKIP: ICV error detected: STA=3D\"\n" + " \t\t\tprintk(KERN_DEBUG \"TKIP: ICV error detected: STA=\"\n" " \t\t\t \"%pM\\n\", hdr->addr2);\n" " \t\t}\n" "+#endif\n" " \t\ttkey->dot11RSNAStatsTKIPICVErrors++;\n" " \t\treturn -5;\n" " \t}\n" - "--=20\n" + "-- \n" "John W. Linville\t\tSomeday the world will need a hero, and you\n" - "linville@tuxdriver.com\t\t\tmight be all we have. Be ready.\n" + "linville-2XuSBdqkA4R54TAoqtyWWQ@public.gmane.org\t\t\tmight be all we have. Be ready.\n" "--\n" - "To unsubscribe from this list: send the line \"unsubscribe linux-wireles=\n" - "s\" in\n" - "the body of a message to majordomo@vger.kernel.org\n" + "To unsubscribe from this list: send the line \"unsubscribe linux-wireless\" in\n" + "the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org\n" More majordomo info at http://vger.kernel.org/majordomo-info.html -7e5a40cbb9a9b616d7c4fab20e91d8af8a79405a50462734a6948bd910564047 +edd4acc8bea477746a18b29108b97834c1ba783ec7c6367b7e378bf6c532af0a
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.