diff options
Diffstat (limited to 'net/sched/sch_generic.c')
-rw-r--r-- | net/sched/sch_generic.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/net/sched/sch_generic.c b/net/sched/sch_generic.c index 19696ebe9ebc..346ef85617d3 100644 --- a/net/sched/sch_generic.c +++ b/net/sched/sch_generic.c | |||
@@ -783,7 +783,7 @@ static void dev_deactivate_queue(struct net_device *dev, | |||
783 | struct Qdisc *qdisc_default = _qdisc_default; | 783 | struct Qdisc *qdisc_default = _qdisc_default; |
784 | struct Qdisc *qdisc; | 784 | struct Qdisc *qdisc; |
785 | 785 | ||
786 | qdisc = dev_queue->qdisc; | 786 | qdisc = rtnl_dereference(dev_queue->qdisc); |
787 | if (qdisc) { | 787 | if (qdisc) { |
788 | spin_lock_bh(qdisc_lock(qdisc)); | 788 | spin_lock_bh(qdisc_lock(qdisc)); |
789 | 789 | ||
@@ -876,7 +876,7 @@ static void dev_init_scheduler_queue(struct net_device *dev, | |||
876 | { | 876 | { |
877 | struct Qdisc *qdisc = _qdisc; | 877 | struct Qdisc *qdisc = _qdisc; |
878 | 878 | ||
879 | dev_queue->qdisc = qdisc; | 879 | rcu_assign_pointer(dev_queue->qdisc, qdisc); |
880 | dev_queue->qdisc_sleeping = qdisc; | 880 | dev_queue->qdisc_sleeping = qdisc; |
881 | } | 881 | } |
882 | 882 | ||