Unverified Commit 0e4e78dd authored by openeuler-ci-bot's avatar openeuler-ci-bot Committed by Gitee
Browse files
parents 1d4f07f1 b2239f60
Loading
Loading
Loading
Loading
+13 −17
Original line number Diff line number Diff line
@@ -406,7 +406,6 @@ static int cbs_init(struct Qdisc *sch, struct nlattr *opt,
{
	struct cbs_sched_data *q = qdisc_priv(sch);
	struct net_device *dev = qdisc_dev(sch);
	int err;

	if (!opt) {
		NL_SET_ERR_MSG(extack, "Missing CBS qdisc options  which are mandatory");
@@ -418,6 +417,10 @@ static int cbs_init(struct Qdisc *sch, struct nlattr *opt,
	if (!q->qdisc)
		return -ENOMEM;

	spin_lock(&cbs_list_lock);
	list_add(&q->cbs_list, &cbs_list);
	spin_unlock(&cbs_list_lock);

	qdisc_hash_add(q->qdisc, false);

	q->queue = sch->dev_queue - netdev_get_tx_queue(dev, 0);
@@ -427,17 +430,7 @@ static int cbs_init(struct Qdisc *sch, struct nlattr *opt,

	qdisc_watchdog_init(&q->watchdog, sch);

	err = cbs_change(sch, opt, extack);
	if (err)
		return err;

	if (!q->offload) {
		spin_lock(&cbs_list_lock);
		list_add(&q->cbs_list, &cbs_list);
		spin_unlock(&cbs_list_lock);
	}

	return 0;
	return cbs_change(sch, opt, extack);
}

static void cbs_destroy(struct Qdisc *sch)
@@ -445,14 +438,17 @@ static void cbs_destroy(struct Qdisc *sch)
	struct cbs_sched_data *q = qdisc_priv(sch);
	struct net_device *dev = qdisc_dev(sch);

	spin_lock(&cbs_list_lock);
	list_del(&q->cbs_list);
	spin_unlock(&cbs_list_lock);
	/* Nothing to do if we couldn't create the underlying qdisc */
	if (!q->qdisc)
		return;

	qdisc_watchdog_cancel(&q->watchdog);
	cbs_disable_offload(dev, q);

	if (q->qdisc)
	spin_lock(&cbs_list_lock);
	list_del(&q->cbs_list);
	spin_unlock(&cbs_list_lock);

	qdisc_destroy(q->qdisc);
}