netdev: Move queue_lock into struct netdev_queue.
The lock is now an attribute of the device queue. One thing to notice is that "suspicious" places emerge which will need specific training about multiple queue handling. They are so marked with explicit "netdev->rx_queue" and "netdev->tx_queue" references. Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
@@ -1043,7 +1043,7 @@ static int htb_dump(struct Qdisc *sch, struct sk_buff *skb)
|
||||
struct nlattr *nest;
|
||||
struct tc_htb_glob gopt;
|
||||
|
||||
spin_lock_bh(&qdisc_dev(sch)->queue_lock);
|
||||
spin_lock_bh(&sch->dev_queue->lock);
|
||||
|
||||
gopt.direct_pkts = q->direct_pkts;
|
||||
gopt.version = HTB_VER;
|
||||
@@ -1057,11 +1057,11 @@ static int htb_dump(struct Qdisc *sch, struct sk_buff *skb)
|
||||
NLA_PUT(skb, TCA_HTB_INIT, sizeof(gopt), &gopt);
|
||||
nla_nest_end(skb, nest);
|
||||
|
||||
spin_unlock_bh(&qdisc_dev(sch)->queue_lock);
|
||||
spin_unlock_bh(&sch->dev_queue->lock);
|
||||
return skb->len;
|
||||
|
||||
nla_put_failure:
|
||||
spin_unlock_bh(&qdisc_dev(sch)->queue_lock);
|
||||
spin_unlock_bh(&sch->dev_queue->lock);
|
||||
nla_nest_cancel(skb, nest);
|
||||
return -1;
|
||||
}
|
||||
@@ -1073,7 +1073,7 @@ static int htb_dump_class(struct Qdisc *sch, unsigned long arg,
|
||||
struct nlattr *nest;
|
||||
struct tc_htb_opt opt;
|
||||
|
||||
spin_lock_bh(&qdisc_dev(sch)->queue_lock);
|
||||
spin_lock_bh(&sch->dev_queue->lock);
|
||||
tcm->tcm_parent = cl->parent ? cl->parent->common.classid : TC_H_ROOT;
|
||||
tcm->tcm_handle = cl->common.classid;
|
||||
if (!cl->level && cl->un.leaf.q)
|
||||
@@ -1095,11 +1095,11 @@ static int htb_dump_class(struct Qdisc *sch, unsigned long arg,
|
||||
NLA_PUT(skb, TCA_HTB_PARMS, sizeof(opt), &opt);
|
||||
|
||||
nla_nest_end(skb, nest);
|
||||
spin_unlock_bh(&qdisc_dev(sch)->queue_lock);
|
||||
spin_unlock_bh(&sch->dev_queue->lock);
|
||||
return skb->len;
|
||||
|
||||
nla_put_failure:
|
||||
spin_unlock_bh(&qdisc_dev(sch)->queue_lock);
|
||||
spin_unlock_bh(&sch->dev_queue->lock);
|
||||
nla_nest_cancel(skb, nest);
|
||||
return -1;
|
||||
}
|
||||
@@ -1365,7 +1365,7 @@ static int htb_change_class(struct Qdisc *sch, u32 classid,
|
||||
goto failure;
|
||||
|
||||
gen_new_estimator(&cl->bstats, &cl->rate_est,
|
||||
&qdisc_dev(sch)->queue_lock,
|
||||
&sch->dev_queue->lock,
|
||||
tca[TCA_RATE] ? : &est.nla);
|
||||
cl->refcnt = 1;
|
||||
cl->children = 0;
|
||||
@@ -1420,7 +1420,7 @@ static int htb_change_class(struct Qdisc *sch, u32 classid,
|
||||
} else {
|
||||
if (tca[TCA_RATE])
|
||||
gen_replace_estimator(&cl->bstats, &cl->rate_est,
|
||||
&qdisc_dev(sch)->queue_lock,
|
||||
&sch->dev_queue->lock,
|
||||
tca[TCA_RATE]);
|
||||
sch_tree_lock(sch);
|
||||
}
|
||||
|
Reference in New Issue
Block a user