Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2e8ba493 authored by qctecmdr Service's avatar qctecmdr Service Committed by Gerrit - the friendly Code Review server
Browse files

Merge "qrtr: Rename qrtr_all_nodes to qrtr_all_epts"

parents 5485c33a 72f2215d
Loading
Loading
Loading
Loading
+18 −9
Original line number Diff line number Diff line
@@ -106,8 +106,8 @@ static unsigned int qrtr_local_nid = -1;
/* for node ids */
static RADIX_TREE(qrtr_nodes, GFP_KERNEL);
/* broadcast list */
static LIST_HEAD(qrtr_all_nodes);
/* lock for qrtr_nodes, qrtr_all_nodes and node reference */
static LIST_HEAD(qrtr_all_epts);
/* lock for qrtr_nodes, qrtr_all_epts and node reference */
static DEFINE_MUTEX(qrtr_node_lock);

/* local port allocation management */
@@ -150,9 +150,15 @@ static int qrtr_bcast_enqueue(struct qrtr_node *node, struct sk_buff *skb,
static void __qrtr_node_release(struct kref *kref)
{
	struct qrtr_node *node = container_of(kref, struct qrtr_node, ref);
	struct radix_tree_iter iter;
	void **slot;

	if (node->nid != QRTR_EP_NID_AUTO)
		radix_tree_delete(&qrtr_nodes, node->nid);
	if (node->nid != QRTR_EP_NID_AUTO) {
		radix_tree_for_each_slot(slot, &qrtr_nodes, &iter, 0) {
			if (node == *slot)
				radix_tree_delete(&qrtr_nodes, iter.index);
		}
	}

	list_del(&node->item);
	mutex_unlock(&qrtr_node_lock);
@@ -232,11 +238,14 @@ static struct qrtr_node *qrtr_node_lookup(unsigned int nid)
 */
static void qrtr_node_assign(struct qrtr_node *node, unsigned int nid)
{
	if (node->nid != QRTR_EP_NID_AUTO || nid == QRTR_EP_NID_AUTO)
	if (nid == QRTR_EP_NID_AUTO)
		return;

	mutex_lock(&qrtr_node_lock);
	if (!radix_tree_lookup(&qrtr_nodes, nid))
		radix_tree_insert(&qrtr_nodes, nid, node);

	if (node->nid == QRTR_EP_NID_AUTO)
		node->nid = nid;
	mutex_unlock(&qrtr_node_lock);
}
@@ -437,7 +446,7 @@ int qrtr_endpoint_register(struct qrtr_endpoint *ep, unsigned int nid)
	qrtr_node_assign(node, nid);

	mutex_lock(&qrtr_node_lock);
	list_add(&node->item, &qrtr_all_nodes);
	list_add(&node->item, &qrtr_all_epts);
	mutex_unlock(&qrtr_node_lock);
	ep->node = node;

@@ -703,7 +712,7 @@ static int qrtr_bcast_enqueue(struct qrtr_node *node, struct sk_buff *skb,
	struct sk_buff *skbn;

	mutex_lock(&qrtr_node_lock);
	list_for_each_entry(node, &qrtr_all_nodes, item) {
	list_for_each_entry(node, &qrtr_all_epts, item) {
		skbn = skb_clone(skb, GFP_KERNEL);
		if (!skbn)
			break;