diff --git a/include/net/sch_generic.h b/include/net/sch_generic.h
index 0aea0e262452282c70f7086526f9ed8bab2ba8db..7ecb6127e980f8c97b019e8c5b523d298cfa7994 100644
--- a/include/net/sch_generic.h
+++ b/include/net/sch_generic.h
@@ -747,7 +747,7 @@ static inline bool qdisc_all_tx_empty(const struct net_device *dev)
 		struct netdev_queue *txq = netdev_get_tx_queue(dev, i);
 		const struct Qdisc *q = rcu_dereference(txq->qdisc);
 
-		if (q->q.qlen) {
+		if (!qdisc_is_empty(q)) {
 			rcu_read_unlock();
 			return false;
 		}