|
@@ -643,18 +643,19 @@ struct Qdisc *qdisc_create_dflt(struct netdev_queue *dev_queue,
|
|
struct Qdisc *sch;
|
|
struct Qdisc *sch;
|
|
|
|
|
|
if (!try_module_get(ops->owner))
|
|
if (!try_module_get(ops->owner))
|
|
- goto errout;
|
|
|
|
|
|
+ return NULL;
|
|
|
|
|
|
sch = qdisc_alloc(dev_queue, ops);
|
|
sch = qdisc_alloc(dev_queue, ops);
|
|
- if (IS_ERR(sch))
|
|
|
|
- goto errout;
|
|
|
|
|
|
+ if (IS_ERR(sch)) {
|
|
|
|
+ module_put(ops->owner);
|
|
|
|
+ return NULL;
|
|
|
|
+ }
|
|
sch->parent = parentid;
|
|
sch->parent = parentid;
|
|
|
|
|
|
if (!ops->init || ops->init(sch, NULL) == 0)
|
|
if (!ops->init || ops->init(sch, NULL) == 0)
|
|
return sch;
|
|
return sch;
|
|
|
|
|
|
qdisc_destroy(sch);
|
|
qdisc_destroy(sch);
|
|
-errout:
|
|
|
|
return NULL;
|
|
return NULL;
|
|
}
|
|
}
|
|
EXPORT_SYMBOL(qdisc_create_dflt);
|
|
EXPORT_SYMBOL(qdisc_create_dflt);
|