diff options
author | David S. Miller <davem@davemloft.net> | 2008-08-30 02:06:00 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-08-30 02:06:00 -0400 |
commit | b171e19ed08c8ba832e5325fadf1be493f56665d (patch) | |
tree | 017208f9fcc4ef2cc3fe5cc3f262d2455eda9f61 /include/net | |
parent | 143b11c03cd42f2284efe5128afc057d8fc86c78 (diff) | |
parent | 7c19a3d280297d43ef5ff7c6b205dc208a16d3d1 (diff) |
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Conflicts:
net/mac80211/mlme.c
Diffstat (limited to 'include/net')
-rw-r--r-- | include/net/pkt_sched.h | 1 | ||||
-rw-r--r-- | include/net/sch_generic.h | 12 |
2 files changed, 11 insertions, 2 deletions
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 b1d2cfea89c5..e5569625d2a5 100644 --- a/include/net/sch_generic.h +++ b/include/net/sch_generic.h | |||
@@ -217,6 +217,14 @@ static inline spinlock_t *qdisc_root_lock(struct Qdisc *qdisc) | |||
217 | return qdisc_lock(root); | 217 | return qdisc_lock(root); |
218 | } | 218 | } |
219 | 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 | |||
220 | static inline struct net_device *qdisc_dev(struct Qdisc *qdisc) | 228 | static inline struct net_device *qdisc_dev(struct Qdisc *qdisc) |
221 | { | 229 | { |
222 | return qdisc->dev_queue->dev; | 230 | return qdisc->dev_queue->dev; |
@@ -224,12 +232,12 @@ static inline struct net_device *qdisc_dev(struct Qdisc *qdisc) | |||
224 | 232 | ||
225 | static inline void sch_tree_lock(struct Qdisc *q) | 233 | static inline void sch_tree_lock(struct Qdisc *q) |
226 | { | 234 | { |
227 | spin_lock_bh(qdisc_root_lock(q)); | 235 | spin_lock_bh(qdisc_root_sleeping_lock(q)); |
228 | } | 236 | } |
229 | 237 | ||
230 | static inline void sch_tree_unlock(struct Qdisc *q) | 238 | static inline void sch_tree_unlock(struct Qdisc *q) |
231 | { | 239 | { |
232 | spin_unlock_bh(qdisc_root_lock(q)); | 240 | spin_unlock_bh(qdisc_root_sleeping_lock(q)); |
233 | } | 241 | } |
234 | 242 | ||
235 | #define tcf_tree_lock(tp) sch_tree_lock((tp)->q) | 243 | #define tcf_tree_lock(tp) sch_tree_lock((tp)->q) |