yield() should be rendered dead, according to Mike.

It is hard to wait properly for all qdisc's to transmit
all packets. So just keep the original logic.

Reported-by: Mike Galbraith <efa...@gmx.de>
Signed-off-by: Cong Wang <xiyou.wangc...@gmail.com>
---
 net/sched/sch_generic.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/net/sched/sch_generic.c b/net/sched/sch_generic.c
index 1a2f9e9..4725d2f 100644
--- a/net/sched/sch_generic.c
+++ b/net/sched/sch_generic.c
@@ -925,7 +925,7 @@ void dev_deactivate_many(struct list_head *head)
        /* Wait for outstanding qdisc_run calls. */
        list_for_each_entry(dev, head, close_list)
                while (some_qdisc_is_busy(dev))
-                       yield();
+                       cond_resched();
 }
 
 void dev_deactivate(struct net_device *dev)
-- 
2.5.5

Reply via email to