]> git.kernelconcepts.de Git - karo-tx-linux.git/commit
iwlwifi: clean key table in iwl_clear_stations_table function
authorTomas Winkler <tomas.winkler@intel.com>
Tue, 25 Nov 2008 21:29:03 +0000 (23:29 +0200)
committerGreg Kroah-Hartman <gregkh@suse.de>
Thu, 18 Dec 2008 17:13:37 +0000 (09:13 -0800)
commitd3bbe24b08edbfb28f68dea0187933b6908d4d85
tree5fb7a05c0158ed5e93f4f524166a6a26b920cb8e
parent26c5652a335bdf4a4476c9d23a0b381eaa3e2073
iwlwifi: clean key table in iwl_clear_stations_table function

commit 40a9a8299116297429298e8fcee08235134883f7 upstream.

This patch cleans uCode key table bit map iwl_clear_stations_table
since all stations are cleared also the key table must be.

Since the keys are not removed properly on suspend by mac80211
this may result in exhausting key table on resume leading
to memory corruption during removal

This patch also fixes a memory corruption problem reported in
http://marc.info/?l=linux-wireless&m=122641417231586&w=2 and tracked in
http://bugzilla.kernel.org/show_bug.cgi?id=12040.

When the key is removed a second time the offset is set to 255 - this
index is not valid for the ucode_key_table and corrupts the eeprom pointer
(which is 255 bits from ucode_key_table).

Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Reported-by: Carlos R. Mafra <crmafra2@gmail.com>
Reported-by: Lukas Hejtmanek <xhejtman@ics.muni.cz>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/net/wireless/iwlwifi/iwl-core.c
drivers/net/wireless/iwlwifi/iwl-sta.c