diff --git a/net/sched/sch_taprio.c b/net/sched/sch_taprio.c index 31a8252bd09c..4bc377120ea0 100644 --- a/net/sched/sch_taprio.c +++ b/net/sched/sch_taprio.c @@ -843,6 +843,7 @@ static struct sk_buff *taprio_dequeue(struct Qdisc *sch) rcu_read_lock(); entry = rcu_dereference(q->current_entry); + rcu_read_unlock(); /* if there's no entry, it means that the schedule didn't * start yet, so force all gates to be open, this is in * accordance to IEEE 802.1Qbv-2015 Section 8.6.9.4.5 @@ -869,8 +870,6 @@ static struct sk_buff *taprio_dequeue(struct Qdisc *sch) } done: - rcu_read_unlock(); - return skb; }