diff options
Diffstat (limited to 'include/net')
-rw-r--r-- | include/net/addrconf.h | 3 | ||||
-rw-r--r-- | include/net/ip6_route.h | 1 | ||||
-rw-r--r-- | include/net/mac80211.h | 11 | ||||
-rw-r--r-- | include/net/pkt_sched.h | 1 | ||||
-rw-r--r-- | include/net/sch_generic.h | 19 |
5 files changed, 23 insertions, 12 deletions
diff --git a/include/net/addrconf.h b/include/net/addrconf.h index 06b28142b3ab..c216de528b08 100644 --- a/include/net/addrconf.h +++ b/include/net/addrconf.h | |||
@@ -80,7 +80,8 @@ extern struct inet6_ifaddr *ipv6_get_ifaddr(struct net *net, | |||
80 | struct net_device *dev, | 80 | struct net_device *dev, |
81 | int strict); | 81 | int strict); |
82 | 82 | ||
83 | extern int ipv6_dev_get_saddr(struct net_device *dev, | 83 | extern int ipv6_dev_get_saddr(struct net *net, |
84 | struct net_device *dev, | ||
84 | const struct in6_addr *daddr, | 85 | const struct in6_addr *daddr, |
85 | unsigned int srcprefs, | 86 | unsigned int srcprefs, |
86 | struct in6_addr *saddr); | 87 | struct in6_addr *saddr); |
diff --git a/include/net/ip6_route.h b/include/net/ip6_route.h index bc391ba101e9..5f53db7e4e57 100644 --- a/include/net/ip6_route.h +++ b/include/net/ip6_route.h | |||
@@ -107,6 +107,7 @@ struct rt6_rtnl_dump_arg | |||
107 | { | 107 | { |
108 | struct sk_buff *skb; | 108 | struct sk_buff *skb; |
109 | struct netlink_callback *cb; | 109 | struct netlink_callback *cb; |
110 | struct net *net; | ||
110 | }; | 111 | }; |
111 | 112 | ||
112 | extern int rt6_dump_route(struct rt6_info *rt, void *p_arg); | 113 | extern int rt6_dump_route(struct rt6_info *rt, void *p_arg); |
diff --git a/include/net/mac80211.h b/include/net/mac80211.h index b397e4d984c7..ff137fd7714f 100644 --- a/include/net/mac80211.h +++ b/include/net/mac80211.h | |||
@@ -708,10 +708,7 @@ enum ieee80211_tkip_key_type { | |||
708 | * rely on the host system for such buffering. This option is used | 708 | * rely on the host system for such buffering. This option is used |
709 | * to configure the IEEE 802.11 upper layer to buffer broadcast and | 709 | * to configure the IEEE 802.11 upper layer to buffer broadcast and |
710 | * multicast frames when there are power saving stations so that | 710 | * multicast frames when there are power saving stations so that |
711 | * the driver can fetch them with ieee80211_get_buffered_bc(). Note | 711 | * the driver can fetch them with ieee80211_get_buffered_bc(). |
712 | * that not setting this flag works properly only when the | ||
713 | * %IEEE80211_HW_HOST_GEN_BEACON_TEMPLATE is also not set because | ||
714 | * otherwise the stack will not know when the DTIM beacon was sent. | ||
715 | * | 712 | * |
716 | * @IEEE80211_HW_2GHZ_SHORT_SLOT_INCAPABLE: | 713 | * @IEEE80211_HW_2GHZ_SHORT_SLOT_INCAPABLE: |
717 | * Hardware is not capable of short slot operation on the 2.4 GHz band. | 714 | * Hardware is not capable of short slot operation on the 2.4 GHz band. |
@@ -1099,10 +1096,8 @@ enum ieee80211_ampdu_mlme_action { | |||
1099 | * See the section "Frame filtering" for more information. | 1096 | * See the section "Frame filtering" for more information. |
1100 | * This callback must be implemented and atomic. | 1097 | * This callback must be implemented and atomic. |
1101 | * | 1098 | * |
1102 | * @set_tim: Set TIM bit. If the hardware/firmware takes care of beacon | 1099 | * @set_tim: Set TIM bit. mac80211 calls this function when a TIM bit |
1103 | * generation (that is, %IEEE80211_HW_HOST_GEN_BEACON_TEMPLATE is set) | 1100 | * must be set or cleared for a given AID. Must be atomic. |
1104 | * mac80211 calls this function when a TIM bit must be set or cleared | ||
1105 | * for a given AID. Must be atomic. | ||
1106 | * | 1101 | * |
1107 | * @set_key: See the section "Hardware crypto acceleration" | 1102 | * @set_key: See the section "Hardware crypto acceleration" |
1108 | * This callback can sleep, and is only called between add_interface | 1103 | * This callback can sleep, and is only called between add_interface |
diff --git a/include/net/pkt_sched.h b/include/net/pkt_sched.h index 853fe83d9f37..b786a5b09253 100644 --- a/include/net/pkt_sched.h +++ b/include/net/pkt_sched.h | |||
@@ -78,6 +78,7 @@ extern struct Qdisc *fifo_create_dflt(struct Qdisc *sch, struct Qdisc_ops *ops, | |||
78 | 78 | ||
79 | extern int register_qdisc(struct Qdisc_ops *qops); | 79 | extern int register_qdisc(struct Qdisc_ops *qops); |
80 | extern int unregister_qdisc(struct Qdisc_ops *qops); | 80 | extern int unregister_qdisc(struct Qdisc_ops *qops); |
81 | extern void qdisc_list_del(struct Qdisc *q); | ||
81 | extern struct Qdisc *qdisc_lookup(struct net_device *dev, u32 handle); | 82 | extern struct Qdisc *qdisc_lookup(struct net_device *dev, u32 handle); |
82 | extern struct Qdisc *qdisc_lookup_class(struct net_device *dev, u32 handle); | 83 | extern struct Qdisc *qdisc_lookup_class(struct net_device *dev, u32 handle); |
83 | extern struct qdisc_rate_table *qdisc_get_rtab(struct tc_ratespec *r, | 84 | extern struct qdisc_rate_table *qdisc_get_rtab(struct tc_ratespec *r, |
diff --git a/include/net/sch_generic.h b/include/net/sch_generic.h index a7abfda3e447..e5569625d2a5 100644 --- a/include/net/sch_generic.h +++ b/include/net/sch_generic.h | |||
@@ -27,6 +27,7 @@ enum qdisc_state_t | |||
27 | { | 27 | { |
28 | __QDISC_STATE_RUNNING, | 28 | __QDISC_STATE_RUNNING, |
29 | __QDISC_STATE_SCHED, | 29 | __QDISC_STATE_SCHED, |
30 | __QDISC_STATE_DEACTIVATED, | ||
30 | }; | 31 | }; |
31 | 32 | ||
32 | struct qdisc_size_table { | 33 | struct qdisc_size_table { |
@@ -60,7 +61,6 @@ struct Qdisc | |||
60 | struct gnet_stats_basic bstats; | 61 | struct gnet_stats_basic bstats; |
61 | struct gnet_stats_queue qstats; | 62 | struct gnet_stats_queue qstats; |
62 | struct gnet_stats_rate_est rate_est; | 63 | struct gnet_stats_rate_est rate_est; |
63 | struct rcu_head q_rcu; | ||
64 | int (*reshape_fail)(struct sk_buff *skb, | 64 | int (*reshape_fail)(struct sk_buff *skb, |
65 | struct Qdisc *q); | 65 | struct Qdisc *q); |
66 | 66 | ||
@@ -193,6 +193,11 @@ static inline struct Qdisc *qdisc_root(struct Qdisc *qdisc) | |||
193 | return qdisc->dev_queue->qdisc; | 193 | return qdisc->dev_queue->qdisc; |
194 | } | 194 | } |
195 | 195 | ||
196 | static inline struct Qdisc *qdisc_root_sleeping(struct Qdisc *qdisc) | ||
197 | { | ||
198 | return qdisc->dev_queue->qdisc_sleeping; | ||
199 | } | ||
200 | |||
196 | /* The qdisc root lock is a mechanism by which to top level | 201 | /* The qdisc root lock is a mechanism by which to top level |
197 | * of a qdisc tree can be locked from any qdisc node in the | 202 | * of a qdisc tree can be locked from any qdisc node in the |
198 | * forest. This allows changing the configuration of some | 203 | * forest. This allows changing the configuration of some |
@@ -212,6 +217,14 @@ static inline spinlock_t *qdisc_root_lock(struct Qdisc *qdisc) | |||
212 | return qdisc_lock(root); | 217 | return qdisc_lock(root); |
213 | } | 218 | } |
214 | 219 | ||
220 | static inline spinlock_t *qdisc_root_sleeping_lock(struct Qdisc *qdisc) | ||
221 | { | ||
222 | struct Qdisc *root = qdisc_root_sleeping(qdisc); | ||
223 | |||
224 | ASSERT_RTNL(); | ||
225 | return qdisc_lock(root); | ||
226 | } | ||
227 | |||
215 | static inline struct net_device *qdisc_dev(struct Qdisc *qdisc) | 228 | static inline struct net_device *qdisc_dev(struct Qdisc *qdisc) |
216 | { | 229 | { |
217 | return qdisc->dev_queue->dev; | 230 | return qdisc->dev_queue->dev; |
@@ -219,12 +232,12 @@ static inline struct net_device *qdisc_dev(struct Qdisc *qdisc) | |||
219 | 232 | ||
220 | static inline void sch_tree_lock(struct Qdisc *q) | 233 | static inline void sch_tree_lock(struct Qdisc *q) |
221 | { | 234 | { |
222 | spin_lock_bh(qdisc_root_lock(q)); | 235 | spin_lock_bh(qdisc_root_sleeping_lock(q)); |
223 | } | 236 | } |
224 | 237 | ||
225 | static inline void sch_tree_unlock(struct Qdisc *q) | 238 | static inline void sch_tree_unlock(struct Qdisc *q) |
226 | { | 239 | { |
227 | spin_unlock_bh(qdisc_root_lock(q)); | 240 | spin_unlock_bh(qdisc_root_sleeping_lock(q)); |
228 | } | 241 | } |
229 | 242 | ||
230 | #define tcf_tree_lock(tp) sch_tree_lock((tp)->q) | 243 | #define tcf_tree_lock(tp) sch_tree_lock((tp)->q) |