aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211/sta_info.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/mac80211/sta_info.c')
-rw-r--r--net/mac80211/sta_info.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/net/mac80211/sta_info.c b/net/mac80211/sta_info.c
index a767042ec4f..42414b44159 100644
--- a/net/mac80211/sta_info.c
+++ b/net/mac80211/sta_info.c
@@ -31,10 +31,10 @@
31 * for faster lookup and a list for iteration. They are managed using 31 * for faster lookup and a list for iteration. They are managed using
32 * RCU, i.e. access to the list and hash table is protected by RCU. 32 * RCU, i.e. access to the list and hash table is protected by RCU.
33 * 33 *
34 * Upon allocating a STA info structure with @sta_info_alloc() or 34 * Upon allocating a STA info structure with sta_info_alloc() or
35 * mesh_plink_alloc(), the caller owns that structure. It must then either 35 * mesh_plink_alloc(), the caller owns that structure. It must then either
36 * destroy it using @sta_info_destroy() (which is pretty useless) or insert 36 * destroy it using sta_info_destroy() (which is pretty useless) or insert
37 * it into the hash table using @sta_info_insert() which demotes the reference 37 * it into the hash table using sta_info_insert() which demotes the reference
38 * from ownership to a regular RCU-protected reference; if the function 38 * from ownership to a regular RCU-protected reference; if the function
39 * is called without protection by an RCU critical section the reference 39 * is called without protection by an RCU critical section the reference
40 * is instantly invalidated. 40 * is instantly invalidated.
@@ -42,19 +42,19 @@
42 * Because there are debugfs entries for each station, and adding those 42 * Because there are debugfs entries for each station, and adding those
43 * must be able to sleep, it is also possible to "pin" a station entry, 43 * must be able to sleep, it is also possible to "pin" a station entry,
44 * that means it can be removed from the hash table but not be freed. 44 * that means it can be removed from the hash table but not be freed.
45 * See the comment in @__sta_info_unlink() for more information. 45 * See the comment in __sta_info_unlink() for more information.
46 * 46 *
47 * In order to remove a STA info structure, the caller needs to first 47 * In order to remove a STA info structure, the caller needs to first
48 * unlink it (@sta_info_unlink()) from the list and hash tables and 48 * unlink it (sta_info_unlink()) from the list and hash tables and
49 * then wait for an RCU synchronisation before it can be freed. Due to 49 * then wait for an RCU synchronisation before it can be freed. Due to
50 * the pinning and the possibility of multiple callers trying to remove 50 * the pinning and the possibility of multiple callers trying to remove
51 * the same STA info at the same time, @sta_info_unlink() can clear the 51 * the same STA info at the same time, sta_info_unlink() can clear the
52 * STA info pointer it is passed to indicate that the STA info is owned 52 * STA info pointer it is passed to indicate that the STA info is owned
53 * by somebody else now. 53 * by somebody else now.
54 * 54 *
55 * If @sta_info_unlink() did not clear the pointer then the caller owns 55 * If sta_info_unlink() did not clear the pointer then the caller owns
56 * the STA info structure now and is responsible of destroying it with 56 * the STA info structure now and is responsible of destroying it with
57 * a call to @sta_info_destroy(), not before RCU synchronisation, of 57 * a call to sta_info_destroy(), not before RCU synchronisation, of
58 * course. Note that sta_info_destroy() must be protected by the RTNL. 58 * course. Note that sta_info_destroy() must be protected by the RTNL.
59 * 59 *
60 * In all other cases, there is no concept of ownership on a STA entry, 60 * In all other cases, there is no concept of ownership on a STA entry,