aboutsummaryrefslogtreecommitdiffstats
path: root/include/net
diff options
context:
space:
mode:
authorJeremy Erickson <jerickso@cs.unc.edu>2014-04-11 13:24:45 -0400
committerJeremy Erickson <jerickso@cs.unc.edu>2014-04-11 13:24:45 -0400
commit438145c7ef5c9445f25bb8fc4d52e2c9d11fdc7c (patch)
tree76941991e36f4a32bf1be0db3854959053f24619 /include/net
parent9ddd1b8ad8abd321964b8add5581910de6d67c2a (diff)
Update from 2.6.36 to 2.6.36.4wip-dissipation-jerickso
Diffstat (limited to 'include/net')
-rw-r--r--include/net/af_unix.h2
-rw-r--r--include/net/cfg80211.h15
-rw-r--r--include/net/mac80211.h16
-rw-r--r--include/net/sock.h4
4 files changed, 29 insertions, 8 deletions
diff --git a/include/net/af_unix.h b/include/net/af_unix.h
index 90c9e2872f27..18e5c3f67580 100644
--- a/include/net/af_unix.h
+++ b/include/net/af_unix.h
@@ -10,6 +10,7 @@ extern void unix_inflight(struct file *fp);
10extern void unix_notinflight(struct file *fp); 10extern void unix_notinflight(struct file *fp);
11extern void unix_gc(void); 11extern void unix_gc(void);
12extern void wait_for_unix_gc(void); 12extern void wait_for_unix_gc(void);
13extern struct sock *unix_get_socket(struct file *filp);
13 14
14#define UNIX_HASH_SIZE 256 15#define UNIX_HASH_SIZE 256
15 16
@@ -56,6 +57,7 @@ struct unix_sock {
56 spinlock_t lock; 57 spinlock_t lock;
57 unsigned int gc_candidate : 1; 58 unsigned int gc_candidate : 1;
58 unsigned int gc_maybe_cycle : 1; 59 unsigned int gc_maybe_cycle : 1;
60 unsigned char recursion_level;
59 struct socket_wq peer_wq; 61 struct socket_wq peer_wq;
60}; 62};
61#define unix_sk(__sk) ((struct unix_sock *)__sk) 63#define unix_sk(__sk) ((struct unix_sock *)__sk)
diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h
index 2fd06c60ffbb..a1662a52fb7d 100644
--- a/include/net/cfg80211.h
+++ b/include/net/cfg80211.h
@@ -1201,13 +1201,14 @@ struct cfg80211_ops {
1201 * initiator is %REGDOM_SET_BY_CORE). 1201 * initiator is %REGDOM_SET_BY_CORE).
1202 * @WIPHY_FLAG_STRICT_REGULATORY: tells us the driver for this device will 1202 * @WIPHY_FLAG_STRICT_REGULATORY: tells us the driver for this device will
1203 * ignore regulatory domain settings until it gets its own regulatory 1203 * ignore regulatory domain settings until it gets its own regulatory
1204 * domain via its regulatory_hint(). After its gets its own regulatory 1204 * domain via its regulatory_hint() unless the regulatory hint is
1205 * domain it will only allow further regulatory domain settings to 1205 * from a country IE. After its gets its own regulatory domain it will
1206 * further enhance compliance. For example if channel 13 and 14 are 1206 * only allow further regulatory domain settings to further enhance
1207 * disabled by this regulatory domain no user regulatory domain can 1207 * compliance. For example if channel 13 and 14 are disabled by this
1208 * enable these channels at a later time. This can be used for devices 1208 * regulatory domain no user regulatory domain can enable these channels
1209 * which do not have calibration information gauranteed for frequencies 1209 * at a later time. This can be used for devices which do not have
1210 * or settings outside of its regulatory domain. 1210 * calibration information guaranteed for frequencies or settings
1211 * outside of its regulatory domain.
1211 * @WIPHY_FLAG_DISABLE_BEACON_HINTS: enable this if your driver needs to ensure 1212 * @WIPHY_FLAG_DISABLE_BEACON_HINTS: enable this if your driver needs to ensure
1212 * that passive scan flags and beaconing flags may not be lifted by 1213 * that passive scan flags and beaconing flags may not be lifted by
1213 * cfg80211 due to regulatory beacon hints. For more information on beacon 1214 * cfg80211 due to regulatory beacon hints. For more information on beacon
diff --git a/include/net/mac80211.h b/include/net/mac80211.h
index b0787a1dea90..05aaa8789848 100644
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -315,6 +315,9 @@ struct ieee80211_bss_conf {
315 * @IEEE80211_TX_CTL_LDPC: tells the driver to use LDPC for this frame 315 * @IEEE80211_TX_CTL_LDPC: tells the driver to use LDPC for this frame
316 * @IEEE80211_TX_CTL_STBC: Enables Space-Time Block Coding (STBC) for this 316 * @IEEE80211_TX_CTL_STBC: Enables Space-Time Block Coding (STBC) for this
317 * frame and selects the maximum number of streams that it can use. 317 * frame and selects the maximum number of streams that it can use.
318 *
319 * Note: If you have to add new flags to the enumeration, then don't
320 * forget to update %IEEE80211_TX_TEMPORARY_FLAGS when necessary.
318 */ 321 */
319enum mac80211_tx_control_flags { 322enum mac80211_tx_control_flags {
320 IEEE80211_TX_CTL_REQ_TX_STATUS = BIT(0), 323 IEEE80211_TX_CTL_REQ_TX_STATUS = BIT(0),
@@ -344,6 +347,19 @@ enum mac80211_tx_control_flags {
344 347
345#define IEEE80211_TX_CTL_STBC_SHIFT 23 348#define IEEE80211_TX_CTL_STBC_SHIFT 23
346 349
350/*
351 * This definition is used as a mask to clear all temporary flags, which are
352 * set by the tx handlers for each transmission attempt by the mac80211 stack.
353 */
354#define IEEE80211_TX_TEMPORARY_FLAGS (IEEE80211_TX_CTL_NO_ACK | \
355 IEEE80211_TX_CTL_CLEAR_PS_FILT | IEEE80211_TX_CTL_FIRST_FRAGMENT | \
356 IEEE80211_TX_CTL_SEND_AFTER_DTIM | IEEE80211_TX_CTL_AMPDU | \
357 IEEE80211_TX_STAT_TX_FILTERED | IEEE80211_TX_STAT_ACK | \
358 IEEE80211_TX_STAT_AMPDU | IEEE80211_TX_STAT_AMPDU_NO_BACK | \
359 IEEE80211_TX_CTL_RATE_CTRL_PROBE | IEEE80211_TX_CTL_PSPOLL_RESPONSE | \
360 IEEE80211_TX_CTL_MORE_FRAMES | IEEE80211_TX_CTL_LDPC | \
361 IEEE80211_TX_CTL_STBC)
362
347/** 363/**
348 * enum mac80211_rate_control_flags - per-rate flags set by the 364 * enum mac80211_rate_control_flags - per-rate flags set by the
349 * Rate Control algorithm. 365 * Rate Control algorithm.
diff --git a/include/net/sock.h b/include/net/sock.h
index adab9dc58183..6892a5e89c23 100644
--- a/include/net/sock.h
+++ b/include/net/sock.h
@@ -1155,6 +1155,8 @@ extern void sk_common_release(struct sock *sk);
1155/* Initialise core socket variables */ 1155/* Initialise core socket variables */
1156extern void sock_init_data(struct socket *sock, struct sock *sk); 1156extern void sock_init_data(struct socket *sock, struct sock *sk);
1157 1157
1158extern void sk_filter_release_rcu(struct rcu_head *rcu);
1159
1158/** 1160/**
1159 * sk_filter_release - release a socket filter 1161 * sk_filter_release - release a socket filter
1160 * @fp: filter to remove 1162 * @fp: filter to remove
@@ -1165,7 +1167,7 @@ extern void sock_init_data(struct socket *sock, struct sock *sk);
1165static inline void sk_filter_release(struct sk_filter *fp) 1167static inline void sk_filter_release(struct sk_filter *fp)
1166{ 1168{
1167 if (atomic_dec_and_test(&fp->refcnt)) 1169 if (atomic_dec_and_test(&fp->refcnt))
1168 kfree(fp); 1170 call_rcu_bh(&fp->rcu, sk_filter_release_rcu);
1169} 1171}
1170 1172
1171static inline void sk_filter_uncharge(struct sock *sk, struct sk_filter *fp) 1173static inline void sk_filter_uncharge(struct sock *sk, struct sk_filter *fp)