From 838f7f95323b8d4f1284c1d0882ece3f3ef52473 Mon Sep 17 00:00:00 2001 From: Alexander Viro Date: Sat, 10 Jan 2004 15:08:18 -0500 Subject: [PATCH] [NET] fix leak in sch_teql Also note the fact that we're calling functions that may block, while holding a local spinlock. --- net/sched/sch_teql.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/net/sched/sch_teql.c b/net/sched/sch_teql.c index 0606b0eb140a7..7e29e250ddb9b 100644 --- a/net/sched/sch_teql.c +++ b/net/sched/sch_teql.c @@ -475,8 +475,10 @@ int __init teql_init(void) if (!dev) return -ENOMEM; - if ((err = register_netdev(dev))) + if ((err = register_netdev(dev))) { + free_netdev(dev); goto out; + } master = dev->priv; spin_lock(&master_dev_lock); @@ -497,6 +499,7 @@ static void __exit teql_exit(void) list_del(&master->master_list); unregister_qdisc(&master->qops); + /* FIXME: we're inside a spinlock; unregister_netdev() blocks */ unregister_netdev(master->dev); free_netdev(master->dev); } -- 2.53.0