[PKT_SCHED] sch_htb: Use hlist_del_init().

Otherwise we can hit paths that (legally) do multiple deletes on the
same node and OOPS with the HLIST poison values there instead of
NULL.

Signed-off-by: David S. Miller <davem@davemloft.net>

authored by Stephen Hemminger and committed by David S. Miller da33e3eb 9e950efa

+2 -4
+2 -4
net/sched/sch_htb.c
··· 1284 struct htb_class, sibling)); 1285 1286 /* note: this delete may happen twice (see htb_delete) */ 1287 - if (!hlist_unhashed(&cl->hlist)) 1288 - hlist_del(&cl->hlist); 1289 list_del(&cl->sibling); 1290 1291 if (cl->prio_activity) ··· 1332 sch_tree_lock(sch); 1333 1334 /* delete from hash and active; remainder in destroy_class */ 1335 - if (!hlist_unhashed(&cl->hlist)) 1336 - hlist_del(&cl->hlist); 1337 1338 if (cl->prio_activity) 1339 htb_deactivate(q, cl);
··· 1284 struct htb_class, sibling)); 1285 1286 /* note: this delete may happen twice (see htb_delete) */ 1287 + hlist_del_init(&cl->hlist); 1288 list_del(&cl->sibling); 1289 1290 if (cl->prio_activity) ··· 1333 sch_tree_lock(sch); 1334 1335 /* delete from hash and active; remainder in destroy_class */ 1336 + hlist_del_init(&cl->hlist); 1337 1338 if (cl->prio_activity) 1339 htb_deactivate(q, cl);