android_kernel_xiaomi_sm8350/net
Johannes Berg 07346f81e8 mac80211: proper STA info locking
As discussed earlier, we can unify locking in struct sta_info
and use just a single spinlock protecting all members of the
structure that need protection. Many don't, but one of the
especially bad ones is the 'flags' member that can currently
be clobbered when RX and TX is being processed on different
CPUs at the same time.

Because having four spinlocks for different, mostly exclusive
parts of a single structure is overkill, this patch also kills
the ampdu and mesh plink spinlocks and uses just a single one
for everything. Because none of the spinlocks are nested, this
is safe.

It remains to be seen whether or not we should make the sta
flags use atomic bit operations instead, for now though this
is a safe thing and using atomic operations instead will be
very simple using the new static inline functions this patch
introduces for accessing sta->flags.

Since spin_lock_bh() is used with this lock, there shouldn't
be any contention even if aggregation is enabled at around the
same time as both requires frame transmission/reception which
is in a bh context.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Cc: Tomas Winkler <tomasw@gmail.com>
Cc: Ron Rindjunsky <ron.rindjunsky@intel.com>
Cc: Luis Carlos Cobo <luisca@cozybit.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2008-05-14 16:29:34 -04:00
..
9p
802
8021q vlan: assign PDE->data before gluing PDE into /proc tree 2008-05-02 04:09:11 -07:00
appletalk
atm atm: assign PDE->data before gluing PDE into /proc tree 2008-05-02 04:08:30 -07:00
ax25 Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2008-04-14 02:30:23 -07:00
bluetooth bluetooth: use get/put_unaligned_* helpers 2008-05-02 16:25:46 -07:00
bridge bridge: forwarding table information for >256 devices 2008-05-02 16:53:33 -07:00
can hrtimer: remove duplicate helper function 2008-05-03 18:11:48 +02:00
core netns: Fix device renaming for sysfs 2008-05-02 17:00:58 -07:00
dccp dccp: ccid2.c, ccid3.c use clamp(), clamp_t() 2008-05-02 16:44:07 -07:00
decnet
econet
ethernet
ieee80211 remove ieee80211_wx_{get,set}_auth() 2008-05-07 15:02:14 -04:00
ipv4 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 2008-05-03 10:18:21 -07:00
ipv6 netns: Fix reassembly timer to use the right namespace 2008-05-02 17:02:03 -07:00
ipx
irda irda: use get_unaligned_* helpers 2008-05-02 16:21:52 -07:00
iucv
key Audit: collect sessionid in netlink messages 2008-04-28 06:18:03 -04:00
lapb
llc
mac80211 mac80211: proper STA info locking 2008-05-14 16:29:34 -04:00
netfilter Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 2008-05-03 10:18:21 -07:00
netlabel Audit: collect sessionid in netlink messages 2008-04-28 06:18:03 -04:00
netlink Audit: collect sessionid in netlink messages 2008-04-28 06:18:03 -04:00
netrom
packet
rfkill rfkill: Fix device type check when toggling states 2008-04-15 15:04:35 -04:00
rose rose: Wrong list_lock argument in rose_node seqops 2008-05-02 17:03:22 -07:00
rxrpc net: Add missing braces to multi-statement if()s 2008-05-02 16:20:10 -07:00
sched net: Add a WARN_ON_ONCE() to the transmit timeout function 2008-05-02 16:21:07 -07:00
sctp sctp: add sctp/remaddr table to complete RFC remote address table OID 2008-05-09 15:14:50 -07:00
sunrpc sunrpc: assign PDE->data before gluing PDE into /proc tree 2008-05-02 02:44:36 -07:00
tipc tipc: Fix race condition when creating socket or native port 2008-05-12 15:42:28 -07:00
unix Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 2008-04-24 08:40:34 -07:00
wanrouter
wireless wireless: use get/put_unaligned_* helpers 2008-05-14 16:29:32 -04:00
x25
xfrm Merge branch 'audit.b50' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/audit-current 2008-04-29 11:41:22 -07:00
compat.c net: Add compat support for getsockopt (MCAST_MSFILTER) 2008-04-29 03:23:22 -07:00
Kconfig
Makefile
nonet.c
socket.c net: Unexport move_addr_to_{kernel,user} 2008-04-23 03:37:49 -07:00
sysctl_net.c net: fix returning void-valued expression warnings 2008-05-01 02:47:38 -07:00
TUNABLE