--- a/net/qrtr/qrtr.c +++ b/net/qrtr/qrtr.c @@ -198,9 +198,10 @@ static void __qrtr_node_release(struct k /* Increment reference to node. */ static struct qrtr_node *qrtr_node_acquire(struct qrtr_node *node) { - if (node) - kref_get(&node->ref); - return node; + if (node && kref_get_unless_zero(&node->ref)) + return node; + else + return NULL; } /* Decrement reference to node and release as necessary. */