nr_node 126 include/net/netrom.h static __inline__ void nr_node_put(struct nr_node *nr_node) nr_node 128 include/net/netrom.h if (refcount_dec_and_test(&nr_node->refcount)) { nr_node 129 include/net/netrom.h kfree(nr_node); nr_node 148 include/net/netrom.h static __inline__ void nr_node_lock(struct nr_node *nr_node) nr_node 150 include/net/netrom.h nr_node_hold(nr_node); nr_node 151 include/net/netrom.h spin_lock_bh(&nr_node->node_lock); nr_node 154 include/net/netrom.h static __inline__ void nr_node_unlock(struct nr_node *nr_node) nr_node 156 include/net/netrom.h spin_unlock_bh(&nr_node->node_lock); nr_node 157 include/net/netrom.h nr_node_put(nr_node); nr_node 44 net/netrom/nr_route.c static struct nr_node *nr_node_get(ax25_address *callsign) nr_node 46 net/netrom/nr_route.c struct nr_node *found = NULL; nr_node 47 net/netrom/nr_route.c struct nr_node *nr_node; nr_node 50 net/netrom/nr_route.c nr_node_for_each(nr_node, &nr_node_list) nr_node 51 net/netrom/nr_route.c if (ax25cmp(callsign, &nr_node->callsign) == 0) { nr_node 52 net/netrom/nr_route.c nr_node_hold(nr_node); nr_node 53 net/netrom/nr_route.c found = nr_node; nr_node 81 net/netrom/nr_route.c static void re_sort_routes(struct nr_node *nr_node, int x, int y) nr_node 83 net/netrom/nr_route.c if (nr_node->routes[y].quality > nr_node->routes[x].quality) { nr_node 84 net/netrom/nr_route.c if (nr_node->which == x) nr_node 85 net/netrom/nr_route.c nr_node->which = y; nr_node 86 net/netrom/nr_route.c else if (nr_node->which == y) nr_node 87 net/netrom/nr_route.c nr_node->which = x; nr_node 89 net/netrom/nr_route.c swap(nr_node->routes[x], nr_node->routes[y]); nr_node 101 net/netrom/nr_route.c struct nr_node *nr_node; nr_node 111 net/netrom/nr_route.c nr_node = nr_node_get(nr); nr_node 122 net/netrom/nr_route.c struct nr_node *nr_nodet; nr_node 139 net/netrom/nr_route.c if (quality == 0 && nr_neigh != NULL && nr_node != NULL) { nr_node 141 net/netrom/nr_route.c nr_node_put(nr_node); nr_node 147 net/netrom/nr_route.c if (nr_node) nr_node 148 net/netrom/nr_route.c nr_node_put(nr_node); nr_node 169 net/netrom/nr_route.c if (nr_node) nr_node 170 net/netrom/nr_route.c nr_node_put(nr_node); nr_node 184 net/netrom/nr_route.c if (nr_node == NULL) { nr_node 185 net/netrom/nr_route.c if ((nr_node = kmalloc(sizeof(*nr_node), GFP_ATOMIC)) == NULL) { nr_node 191 net/netrom/nr_route.c nr_node->callsign = *nr; nr_node 192 net/netrom/nr_route.c strcpy(nr_node->mnemonic, mnemonic); nr_node 194 net/netrom/nr_route.c nr_node->which = 0; nr_node 195 net/netrom/nr_route.c nr_node->count = 1; nr_node 196 net/netrom/nr_route.c refcount_set(&nr_node->refcount, 1); nr_node 197 net/netrom/nr_route.c spin_lock_init(&nr_node->node_lock); nr_node 199 net/netrom/nr_route.c nr_node->routes[0].quality = quality; nr_node 200 net/netrom/nr_route.c nr_node->routes[0].obs_count = obs_count; nr_node 201 net/netrom/nr_route.c nr_node->routes[0].neighbour = nr_neigh; nr_node 207 net/netrom/nr_route.c hlist_add_head(&nr_node->node_node, &nr_node_list); nr_node 214 net/netrom/nr_route.c nr_node_lock(nr_node); nr_node 217 net/netrom/nr_route.c strcpy(nr_node->mnemonic, mnemonic); nr_node 219 net/netrom/nr_route.c for (found = 0, i = 0; i < nr_node->count; i++) { nr_node 220 net/netrom/nr_route.c if (nr_node->routes[i].neighbour == nr_neigh) { nr_node 221 net/netrom/nr_route.c nr_node->routes[i].quality = quality; nr_node 222 net/netrom/nr_route.c nr_node->routes[i].obs_count = obs_count; nr_node 230 net/netrom/nr_route.c if (nr_node->count < 3) { nr_node 231 net/netrom/nr_route.c nr_node->routes[2] = nr_node->routes[1]; nr_node 232 net/netrom/nr_route.c nr_node->routes[1] = nr_node->routes[0]; nr_node 234 net/netrom/nr_route.c nr_node->routes[0].quality = quality; nr_node 235 net/netrom/nr_route.c nr_node->routes[0].obs_count = obs_count; nr_node 236 net/netrom/nr_route.c nr_node->routes[0].neighbour = nr_neigh; nr_node 238 net/netrom/nr_route.c nr_node->which++; nr_node 239 net/netrom/nr_route.c nr_node->count++; nr_node 244 net/netrom/nr_route.c if (quality > nr_node->routes[2].quality) { nr_node 245 net/netrom/nr_route.c nr_node->routes[2].neighbour->count--; nr_node 246 net/netrom/nr_route.c nr_neigh_put(nr_node->routes[2].neighbour); nr_node 248 net/netrom/nr_route.c if (nr_node->routes[2].neighbour->count == 0 && !nr_node->routes[2].neighbour->locked) nr_node 249 net/netrom/nr_route.c nr_remove_neigh(nr_node->routes[2].neighbour); nr_node 251 net/netrom/nr_route.c nr_node->routes[2].quality = quality; nr_node 252 net/netrom/nr_route.c nr_node->routes[2].obs_count = obs_count; nr_node 253 net/netrom/nr_route.c nr_node->routes[2].neighbour = nr_neigh; nr_node 262 net/netrom/nr_route.c switch (nr_node->count) { nr_node 264 net/netrom/nr_route.c re_sort_routes(nr_node, 0, 1); nr_node 265 net/netrom/nr_route.c re_sort_routes(nr_node, 1, 2); nr_node 268 net/netrom/nr_route.c re_sort_routes(nr_node, 0, 1); nr_node 273 net/netrom/nr_route.c for (i = 0; i < nr_node->count; i++) { nr_node 274 net/netrom/nr_route.c if (nr_node->routes[i].neighbour == nr_neigh) { nr_node 275 net/netrom/nr_route.c if (i < nr_node->which) nr_node 276 net/netrom/nr_route.c nr_node->which = i; nr_node 282 net/netrom/nr_route.c nr_node_unlock(nr_node); nr_node 283 net/netrom/nr_route.c nr_node_put(nr_node); nr_node 287 net/netrom/nr_route.c static inline void __nr_remove_node(struct nr_node *nr_node) nr_node 289 net/netrom/nr_route.c hlist_del_init(&nr_node->node_node); nr_node 290 net/netrom/nr_route.c nr_node_put(nr_node); nr_node 296 net/netrom/nr_route.c static void nr_remove_node(struct nr_node *nr_node) nr_node 299 net/netrom/nr_route.c __nr_remove_node(nr_node); nr_node 325 net/netrom/nr_route.c struct nr_node *nr_node; nr_node 329 net/netrom/nr_route.c nr_node = nr_node_get(callsign); nr_node 331 net/netrom/nr_route.c if (nr_node == NULL) nr_node 337 net/netrom/nr_route.c nr_node_put(nr_node); nr_node 341 net/netrom/nr_route.c nr_node_lock(nr_node); nr_node 342 net/netrom/nr_route.c for (i = 0; i < nr_node->count; i++) { nr_node 343 net/netrom/nr_route.c if (nr_node->routes[i].neighbour == nr_neigh) { nr_node 351 net/netrom/nr_route.c nr_node->count--; nr_node 353 net/netrom/nr_route.c if (nr_node->count == 0) { nr_node 354 net/netrom/nr_route.c nr_remove_node(nr_node); nr_node 358 net/netrom/nr_route.c nr_node->routes[0] = nr_node->routes[1]; nr_node 361 net/netrom/nr_route.c nr_node->routes[1] = nr_node->routes[2]; nr_node 365 net/netrom/nr_route.c nr_node_put(nr_node); nr_node 367 net/netrom/nr_route.c nr_node_unlock(nr_node); nr_node 373 net/netrom/nr_route.c nr_node_unlock(nr_node); nr_node 374 net/netrom/nr_route.c nr_node_put(nr_node); nr_node 456 net/netrom/nr_route.c struct nr_node *s; nr_node 513 net/netrom/nr_route.c struct nr_node *t; nr_node 710 net/netrom/nr_route.c struct nr_node *nr_node = NULL; nr_node 733 net/netrom/nr_route.c nr_node_for_each(nr_node, &nr_node_list) { nr_node 734 net/netrom/nr_route.c nr_node_lock(nr_node); nr_node 735 net/netrom/nr_route.c if (nr_node->which < nr_node->count && nr_node 736 net/netrom/nr_route.c nr_node->routes[nr_node->which].neighbour == nr_neigh) nr_node 737 net/netrom/nr_route.c nr_node->which++; nr_node 738 net/netrom/nr_route.c nr_node_unlock(nr_node); nr_node 752 net/netrom/nr_route.c struct nr_node *nr_node; nr_node 788 net/netrom/nr_route.c nr_node = nr_node_get(nr_dest); nr_node 789 net/netrom/nr_route.c if (nr_node == NULL) nr_node 791 net/netrom/nr_route.c nr_node_lock(nr_node); nr_node 793 net/netrom/nr_route.c if (nr_node->which >= nr_node->count) { nr_node 794 net/netrom/nr_route.c nr_node_unlock(nr_node); nr_node 795 net/netrom/nr_route.c nr_node_put(nr_node); nr_node 799 net/netrom/nr_route.c nr_neigh = nr_node->routes[nr_node->which].neighbour; nr_node 802 net/netrom/nr_route.c nr_node_unlock(nr_node); nr_node 803 net/netrom/nr_route.c nr_node_put(nr_node); nr_node 811 net/netrom/nr_route.c nr_node_unlock(nr_node); nr_node 812 net/netrom/nr_route.c nr_node_put(nr_node); nr_node 833 net/netrom/nr_route.c nr_node_unlock(nr_node); nr_node 834 net/netrom/nr_route.c nr_node_put(nr_node); nr_node 866 net/netrom/nr_route.c struct nr_node *nr_node = hlist_entry(v, struct nr_node, nr_node 869 net/netrom/nr_route.c nr_node_lock(nr_node); nr_node 871 net/netrom/nr_route.c ax2asc(buf, &nr_node->callsign), nr_node 872 net/netrom/nr_route.c (nr_node->mnemonic[0] == '\0') ? "*" : nr_node->mnemonic, nr_node 873 net/netrom/nr_route.c nr_node->which + 1, nr_node 874 net/netrom/nr_route.c nr_node->count); nr_node 876 net/netrom/nr_route.c for (i = 0; i < nr_node->count; i++) { nr_node 878 net/netrom/nr_route.c nr_node->routes[i].quality, nr_node 879 net/netrom/nr_route.c nr_node->routes[i].obs_count, nr_node 880 net/netrom/nr_route.c nr_node->routes[i].neighbour->number); nr_node 882 net/netrom/nr_route.c nr_node_unlock(nr_node); nr_node 957 net/netrom/nr_route.c struct nr_node *t = NULL;