Unverified Commit 8d6bc547 authored by openeuler-ci-bot's avatar openeuler-ci-bot Committed by Gitee
Browse files
parents 84045b79 b10b67e4
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -952,6 +952,7 @@ struct rndis_params *rndis_register(void (*resp_avail)(void *v), void *v)
	params->resp_avail = resp_avail;
	params->v = v;
	INIT_LIST_HEAD(&params->resp_queue);
	spin_lock_init(&params->resp_lock);
	pr_debug("%s: configNr = %d\n", __func__, i);

	return params;
@@ -1045,12 +1046,14 @@ void rndis_free_response(struct rndis_params *params, u8 *buf)
{
	rndis_resp_t *r, *n;

	spin_lock(&params->resp_lock);
	list_for_each_entry_safe(r, n, &params->resp_queue, list) {
		if (r->buf == buf) {
			list_del(&r->list);
			kfree(r);
		}
	}
	spin_unlock(&params->resp_lock);
}
EXPORT_SYMBOL_GPL(rndis_free_response);

@@ -1060,14 +1063,17 @@ u8 *rndis_get_next_response(struct rndis_params *params, u32 *length)

	if (!length) return NULL;

	spin_lock(&params->resp_lock);
	list_for_each_entry_safe(r, n, &params->resp_queue, list) {
		if (!r->send) {
			r->send = 1;
			*length = r->length;
			spin_unlock(&params->resp_lock);
			return r->buf;
		}
	}

	spin_unlock(&params->resp_lock);
	return NULL;
}
EXPORT_SYMBOL_GPL(rndis_get_next_response);
@@ -1084,7 +1090,9 @@ static rndis_resp_t *rndis_add_response(struct rndis_params *params, u32 length)
	r->length = length;
	r->send = 0;

	spin_lock(&params->resp_lock);
	list_add_tail(&r->list, &params->resp_queue);
	spin_unlock(&params->resp_lock);
	return r;
}

+1 −0
Original line number Diff line number Diff line
@@ -174,6 +174,7 @@ typedef struct rndis_params {
	void			(*resp_avail)(void *v);
	void			*v;
	struct list_head	resp_queue;
	spinlock_t		resp_lock;
} rndis_params;

/* RNDIS Message parser and other useless functions */