1
linux/drivers/net
Johannes Berg 5a3d9882b8 iwlagn: rewrite HW crypto
As I just discovered while doing WoWLAN, HW crypto
is done wrong for GTKs: they should be programmed
for the AP station ID (in the managed mode case)
and the HW can actually deal with multiple group
keys per station as well (which is useful in IBSS
RSN but that I've chosen not to use this).

To fix all this, modify the way keys are sent to
the device and key offsets are allocated. After
these changes, key offsets are stored into the
hw_key_idx which we can then track for the key
lifetime, not relying on our sta_cmd array. WEP
default keys get special treatment, of course.

Additionally, since I had the API for it, we can
now pre-fill TKIP phase 1 keys for RX now that we
can obtain the P1K from mac80211, a capability I
had added for WoWLAN initially.

Finally, some keys simply don't need to be added
into the device's key cache -- a key that won't
be used for RX is only needed in the TX header,
so "pretend" to have accepted any key without
adding it into the device -- no need to use up
key space there for it.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
2011-07-21 07:31:25 -07:00
..
appletalk
arcnet
arm Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6 2011-05-20 13:43:21 -07:00
atl1c atl1c: atl1c_resume() is only used when CONFIG_PM_SLEEP is defined. 2011-05-19 18:44:41 -04:00
atl1e
atlx Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2011-05-23 09:12:26 -07:00
benet be2net: hash key for rss-config cmd not set 2011-05-24 13:33:45 -04:00
bna Add appropriate <linux/prefetch.h> include for prefetch users 2011-05-22 21:41:57 -07:00
bnx2x bnx2x: protect sequence increment with mutex 2011-05-25 17:55:32 -04:00
bonding bonding: cleanup module option descriptions 2011-05-26 14:57:17 -04:00
caif
can Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2011-05-23 09:12:26 -07:00
chelsio Add appropriate <linux/prefetch.h> include for prefetch users 2011-05-22 21:41:57 -07:00
cris
cxgb3 Add appropriate <linux/prefetch.h> include for prefetch users 2011-05-22 21:41:57 -07:00
cxgb4 Add appropriate <linux/prefetch.h> include for prefetch users 2011-05-22 21:41:57 -07:00
cxgb4vf Add appropriate <linux/prefetch.h> include for prefetch users 2011-05-22 21:41:57 -07:00
e1000 Add appropriate <linux/prefetch.h> include for prefetch users 2011-05-22 21:41:57 -07:00
e1000e Add appropriate <linux/prefetch.h> include for prefetch users 2011-05-22 21:41:57 -07:00
ehea ehea: Fix multicast registration on semi-promiscuous mode 2011-05-23 16:33:31 -04:00
enic Add appropriate <linux/prefetch.h> include for prefetch users 2011-05-22 21:41:57 -07:00
fs_enet Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6 2011-05-20 13:43:21 -07:00
hamradio
ibm_newemac
igb Add appropriate <linux/prefetch.h> include for prefetch users 2011-05-22 21:41:57 -07:00
igbvf Add appropriate <linux/prefetch.h> include for prefetch users 2011-05-22 21:41:57 -07:00
irda net/irda: convert bfin_sir to common Blackfin UART header 2011-05-24 01:13:11 -04:00
ixgb Add appropriate <linux/prefetch.h> include for prefetch users 2011-05-22 21:41:57 -07:00
ixgbe Add appropriate <linux/prefetch.h> include for prefetch users 2011-05-22 21:41:57 -07:00
ixgbevf Add appropriate <linux/prefetch.h> include for prefetch users 2011-05-22 21:41:57 -07:00
ixp2000
mlx4
myri10ge Add appropriate <linux/prefetch.h> include for prefetch users 2011-05-22 21:41:57 -07:00
netxen
octeon
pch_gbe Add appropriate <linux/prefetch.h> include for prefetch users 2011-05-22 21:41:57 -07:00
pcmcia
phy
qlcnic qlcnic: Bumped up version number to 5.0.18 2011-05-13 14:44:14 -04:00
qlge Add appropriate <linux/prefetch.h> include for prefetch users 2011-05-22 21:41:57 -07:00
sfc Add appropriate <linux/prefetch.h> include for prefetch users 2011-05-22 21:41:57 -07:00
skfp
stmmac Add appropriate <linux/prefetch.h> include for prefetch users 2011-05-22 21:41:57 -07:00
tile
tokenring olympic: convert to seq_file 2011-05-13 16:50:49 -04:00
tulip
usb CDC NCM: release interfaces fix in unbind() 2011-05-24 13:26:12 -04:00
vmxnet3 Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2011-05-17 17:33:11 -04:00
vxge Add appropriate <linux/prefetch.h> include for prefetch users 2011-05-22 21:41:57 -07:00
wan Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2011-05-23 09:12:26 -07:00
wimax
wireless iwlagn: rewrite HW crypto 2011-07-21 07:31:25 -07:00
xen-netback xen: netback: use __CONST_RING_SIZE not __RING_SIZE 2011-05-17 15:27:35 -04:00
3c59x.c
3c501.c
3c501.h
3c503.c
3c503.h
3c505.c
3c505.h
3c507.c
3c509.c
3c515.c
3c523.c
3c523.h
3c527.c
3c527.h
7990.c
7990.h
8139cp.c
8139too.c
8390.c
8390.h
8390p.c
82596.c
a2065.c
a2065.h
ac3200.c
acenic.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6 2011-05-20 13:43:21 -07:00
acenic.h
amd8111e.c
amd8111e.h
apne.c
ariadne.c
ariadne.h
at1700.c
atarilance.c m68k/atari: Do not use "/" in interrupt names 2011-05-19 18:19:10 +02:00
atp.c
atp.h
au1000_eth.c
au1000_eth.h
ax88796.c
b44.c ssb: add __devinit to some functions 2011-06-22 16:09:58 -04:00
b44.h
bcm63xx_enet.c
bcm63xx_enet.h
bfin_mac.c
bfin_mac.h
bmac.c
bmac.h
bnx2_fw.h
bnx2.c
bnx2.h
bsd_comp.c
cassini.c
cassini.h
cnic_defs.h
cnic_if.h
cnic.c Add appropriate <linux/prefetch.h> include for prefetch users 2011-05-22 21:41:57 -07:00
cnic.h
cpmac.c
cs89x0.c
cs89x0.h
davinci_cpdma.c
davinci_cpdma.h
davinci_emac.c net: davinci_emac: fix dev_err use at probe 2011-05-26 14:30:51 -04:00
davinci_mdio.c
de600.c
de600.h
de620.c
de620.h
declance.c
defxx.c
defxx.h
depca.c
depca.h
dl2k.c
dl2k.h
dm9000.c
dm9000.h
dnet.c
dnet.h
dummy.c
e100.c
e2100.c
eepro.c
eexpress.c
eexpress.h
enc28j60_hw.h
enc28j60.c
epic100.c
eql.c
es3210.c
eth16i.c
ethoc.c
ewrk3.c
ewrk3.h
fealnx.c
fec_mpc52xx_phy.c
fec_mpc52xx.c
fec_mpc52xx.h
fec.c
fec.h
forcedeth.c Add appropriate <linux/prefetch.h> include for prefetch users 2011-05-22 21:41:57 -07:00
fsl_pq_mdio.c
fsl_pq_mdio.h
ftmac100.c
ftmac100.h
gianfar_ethtool.c
gianfar_sysfs.c
gianfar.c
gianfar.h
greth.c
greth.h
hamachi.c
hp100.c
hp100.h
hp-plus.c
hp.c
hplance.c
hplance.h
hydra.c hydra: Fix regression caused during net_device_ops conversion 2011-05-12 16:59:57 -04:00
ibmlana.c
ibmlana.h
ibmveth.c
ibmveth.h
ifb.c
ioc3-eth.c
ipg.c
ipg.h
iseries_veth.c
jazzsonic.c
jme.c
jme.h
Kconfig MIPS: Lantiq: Add ethernet driver 2011-05-19 09:55:43 +01:00
korina.c
ks8842.c
ks8851_mll.c
ks8851.c
ks8851.h
ksz884x.c
lance.c
lantiq_etop.c MIPS: Lantiq: Add ethernet driver 2011-05-19 09:55:43 +01:00
lasi_82596.c
lib8390.c
lib82596.c
LICENSE.SRC
ll_temac_main.c
ll_temac_mdio.c
ll_temac.h
lne390.c
loopback.c
lp486e.c
mac89x0.c
mac8390.c
macb.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2011-05-23 09:12:26 -07:00
macb.h
mace.c
mace.h
macmace.c
macsonic.c
macvlan.c macvlan: Forward unicast frames in bridge mode to lowerdev 2011-05-22 21:01:18 -04:00
macvtap.c
Makefile MIPS: Lantiq: Add ethernet driver 2011-05-19 09:55:43 +01:00
mdio.c
meth.c
meth.h
mii.c
mipsnet.c
mv643xx_eth.c
mvme147.c
myri_sbus.c
myri_sbus.h
natsemi.c
ne2.c
ne2k-pci.c
ne3210.c
ne-h8300.c ne-h8300: Fix regression caused during net_device_ops conversion 2011-05-12 16:59:57 -04:00
ne.c
netconsole.c net: rename NETDEV_BONDING_DESLAVE to NETDEV_RELEASE 2011-05-22 21:01:19 -04:00
netx-eth.c
ni52.c
ni52.h
ni65.c
ni65.h
ni5010.c
ni5010.h
niu.c
niu.h
ns83820.c
pasemi_mac_ethtool.c
pasemi_mac.c Add appropriate <linux/prefetch.h> include for prefetch users 2011-05-22 21:41:57 -07:00
pasemi_mac.h
pci-skeleton.c
pcnet32.c
plip.c
ppp_async.c
ppp_deflate.c
ppp_generic.c
ppp_mppe.c
ppp_mppe.h
ppp_synctty.c
pppoe.c
pppox.c
pptp.c
ps3_gelic_net.c
ps3_gelic_net.h
ps3_gelic_wireless.c
ps3_gelic_wireless.h
pxa168_eth.c
qla3xxx.c Add appropriate <linux/prefetch.h> include for prefetch users 2011-05-22 21:41:57 -07:00
qla3xxx.h
r6040.c
r8169.c Add appropriate <linux/prefetch.h> include for prefetch users 2011-05-22 21:41:57 -07:00
rionet.c rionet: Remove pointless printk of skb pointer. 2011-05-22 20:35:54 -04:00
rrunner.c
rrunner.h
s2io-regs.h
s2io.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2011-05-23 09:12:26 -07:00
s2io.h
s6gmac.c
sb1000.c
sb1250-mac.c Add appropriate <linux/prefetch.h> include for prefetch users 2011-05-22 21:41:57 -07:00
sc92031.c
seeq8005.c
seeq8005.h
sgiseeq.c
sgiseeq.h
sh_eth.c
sh_eth.h
sis190.c
sis900.c
sis900.h
skge.c Add appropriate <linux/prefetch.h> include for prefetch users 2011-05-22 21:41:57 -07:00
skge.h
sky2.c
sky2.h
slhc.c
slip.c
slip.h
smc91x.c
smc91x.h
smc911x.c
smc911x.h
smc9194.c
smc9194.h
smc-mca.c
smc-ultra32.c
smc-ultra.c
smsc911x.c
smsc911x.h
smsc9420.c
smsc9420.h
sni_82596.c
sonic.c
sonic.h
Space.c
spider_net_ethtool.c
spider_net.c
spider_net.h
starfire.c
stnic.c
sun3_82586.c
sun3_82586.h
sun3lance.c
sunbmac.c
sunbmac.h
sundance.c
sungem_phy.c
sungem_phy.h
sungem.c
sungem.h
sunhme.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6 2011-05-20 13:43:21 -07:00
sunhme.h
sunlance.c
sunqe.c
sunqe.h
sunvnet.c
sunvnet.h
tc35815.c Add appropriate <linux/prefetch.h> include for prefetch users 2011-05-22 21:41:57 -07:00
tehuti.c
tehuti.h
tg3.c Add Fujitsu 1000base-SX PCI ID to tg3 2011-05-25 17:55:32 -04:00
tg3.h tg3: Fix stats for 5704 and later devices 2011-05-19 18:00:00 -04:00
tlan.c
tlan.h
tsi108_eth.c
tsi108_eth.h
tun.c
typhoon.c
typhoon.h
ucc_geth_ethtool.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2011-05-23 09:12:26 -07:00
ucc_geth.c
ucc_geth.h
veth.c net: drivers: kill two unused macro definitions 2011-05-15 18:01:15 -04:00
via-rhine.c
via-velocity.c
via-velocity.h via-velocity: don't annotate MAC registers as packed 2011-05-25 17:55:32 -04:00
virtio_net.c
wd.c
xen-netfront.c xen: netfront: hold RTNL when updating features. 2011-05-25 17:55:32 -04:00
xilinx_emaclite.c
xtsonic.c
yellowfin.c
znet.c
zorro8390.c zorro8390: Fix regression caused during net_device_ops conversion 2011-05-12 16:59:57 -04:00