diff options
author | David S. Miller <davem@davemloft.net> | 2008-07-17 03:53:03 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-07-17 22:21:30 -0400 |
commit | 83874000929ed63aef30b44083a9f713135ff040 (patch) | |
tree | 7646fd185751cad8665eca19aa3f87d13c37eade /drivers/net/ifb.c | |
parent | c7e4f3bbb4ba4e48ab3b529d5016e454cee1ccd6 (diff) |
pkt_sched: Kill netdev_queue lock.
We can simply use the qdisc->q.lock for all of the
qdisc tree synchronization.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ifb.c')
-rw-r--r-- | drivers/net/ifb.c | 20 |
1 files changed, 0 insertions, 20 deletions
diff --git a/drivers/net/ifb.c b/drivers/net/ifb.c index 897b05e79ed0..0960e69b2da4 100644 --- a/drivers/net/ifb.c +++ b/drivers/net/ifb.c | |||
@@ -35,7 +35,6 @@ | |||
35 | #include <linux/moduleparam.h> | 35 | #include <linux/moduleparam.h> |
36 | #include <net/pkt_sched.h> | 36 | #include <net/pkt_sched.h> |
37 | #include <net/net_namespace.h> | 37 | #include <net/net_namespace.h> |
38 | #include <linux/lockdep.h> | ||
39 | 38 | ||
40 | #define TX_TIMEOUT (2*HZ) | 39 | #define TX_TIMEOUT (2*HZ) |
41 | 40 | ||
@@ -228,22 +227,6 @@ static struct rtnl_link_ops ifb_link_ops __read_mostly = { | |||
228 | module_param(numifbs, int, 0); | 227 | module_param(numifbs, int, 0); |
229 | MODULE_PARM_DESC(numifbs, "Number of ifb devices"); | 228 | MODULE_PARM_DESC(numifbs, "Number of ifb devices"); |
230 | 229 | ||
231 | /* | ||
232 | * dev_ifb's TX queue lock is usually taken after dev->rx_queue.lock, | ||
233 | * reversely to e.g. qdisc_lock_tree(). It should be safe until | ||
234 | * ifb doesn't take dev's TX queue lock with dev_ifb->rx_queue.lock. | ||
235 | * But lockdep should know that ifb has different locks from dev. | ||
236 | */ | ||
237 | static struct lock_class_key ifb_tx_queue_lock_key; | ||
238 | static struct lock_class_key ifb_rx_queue_lock_key; | ||
239 | |||
240 | static void set_tx_lockdep_key(struct net_device *dev, | ||
241 | struct netdev_queue *txq, | ||
242 | void *_unused) | ||
243 | { | ||
244 | lockdep_set_class(&txq->lock, &ifb_tx_queue_lock_key); | ||
245 | } | ||
246 | |||
247 | static int __init ifb_init_one(int index) | 230 | static int __init ifb_init_one(int index) |
248 | { | 231 | { |
249 | struct net_device *dev_ifb; | 232 | struct net_device *dev_ifb; |
@@ -264,9 +247,6 @@ static int __init ifb_init_one(int index) | |||
264 | if (err < 0) | 247 | if (err < 0) |
265 | goto err; | 248 | goto err; |
266 | 249 | ||
267 | netdev_for_each_tx_queue(dev_ifb, set_tx_lockdep_key, NULL); | ||
268 | lockdep_set_class(&dev_ifb->rx_queue.lock, &ifb_rx_queue_lock_key); | ||
269 | |||
270 | return 0; | 250 | return 0; |
271 | 251 | ||
272 | err: | 252 | err: |