|
@@ -46,7 +46,7 @@ static DEFINE_SPINLOCK(rose_neigh_list_lock);
|
|
static struct rose_route *rose_route_list;
|
|
static struct rose_route *rose_route_list;
|
|
static DEFINE_SPINLOCK(rose_route_list_lock);
|
|
static DEFINE_SPINLOCK(rose_route_list_lock);
|
|
|
|
|
|
-struct rose_neigh *rose_loopback_neigh;
|
|
|
|
|
|
+struct rose_neigh rose_loopback_neigh;
|
|
|
|
|
|
/*
|
|
/*
|
|
* Add a new route to a node, and in the process add the node and the
|
|
* Add a new route to a node, and in the process add the node and the
|
|
@@ -361,33 +361,30 @@ out:
|
|
/*
|
|
/*
|
|
* Add the loopback neighbour.
|
|
* Add the loopback neighbour.
|
|
*/
|
|
*/
|
|
-int rose_add_loopback_neigh(void)
|
|
|
|
|
|
+void rose_add_loopback_neigh(void)
|
|
{
|
|
{
|
|
- if ((rose_loopback_neigh = kmalloc(sizeof(struct rose_neigh), GFP_ATOMIC)) == NULL)
|
|
|
|
- return -ENOMEM;
|
|
|
|
|
|
+ struct rose_neigh *sn = &rose_loopback_neigh;
|
|
|
|
|
|
- rose_loopback_neigh->callsign = null_ax25_address;
|
|
|
|
- rose_loopback_neigh->digipeat = NULL;
|
|
|
|
- rose_loopback_neigh->ax25 = NULL;
|
|
|
|
- rose_loopback_neigh->dev = NULL;
|
|
|
|
- rose_loopback_neigh->count = 0;
|
|
|
|
- rose_loopback_neigh->use = 0;
|
|
|
|
- rose_loopback_neigh->dce_mode = 1;
|
|
|
|
- rose_loopback_neigh->loopback = 1;
|
|
|
|
- rose_loopback_neigh->number = rose_neigh_no++;
|
|
|
|
- rose_loopback_neigh->restarted = 1;
|
|
|
|
|
|
+ sn->callsign = null_ax25_address;
|
|
|
|
+ sn->digipeat = NULL;
|
|
|
|
+ sn->ax25 = NULL;
|
|
|
|
+ sn->dev = NULL;
|
|
|
|
+ sn->count = 0;
|
|
|
|
+ sn->use = 0;
|
|
|
|
+ sn->dce_mode = 1;
|
|
|
|
+ sn->loopback = 1;
|
|
|
|
+ sn->number = rose_neigh_no++;
|
|
|
|
+ sn->restarted = 1;
|
|
|
|
|
|
- skb_queue_head_init(&rose_loopback_neigh->queue);
|
|
|
|
|
|
+ skb_queue_head_init(&sn->queue);
|
|
|
|
|
|
- init_timer(&rose_loopback_neigh->ftimer);
|
|
|
|
- init_timer(&rose_loopback_neigh->t0timer);
|
|
|
|
|
|
+ init_timer(&sn->ftimer);
|
|
|
|
+ init_timer(&sn->t0timer);
|
|
|
|
|
|
spin_lock_bh(&rose_neigh_list_lock);
|
|
spin_lock_bh(&rose_neigh_list_lock);
|
|
- rose_loopback_neigh->next = rose_neigh_list;
|
|
|
|
- rose_neigh_list = rose_loopback_neigh;
|
|
|
|
|
|
+ sn->next = rose_neigh_list;
|
|
|
|
+ rose_neigh_list = sn;
|
|
spin_unlock_bh(&rose_neigh_list_lock);
|
|
spin_unlock_bh(&rose_neigh_list_lock);
|
|
-
|
|
|
|
- return 0;
|
|
|
|
}
|
|
}
|
|
|
|
|
|
/*
|
|
/*
|
|
@@ -421,13 +418,13 @@ int rose_add_loopback_node(rose_address *address)
|
|
rose_node->mask = 10;
|
|
rose_node->mask = 10;
|
|
rose_node->count = 1;
|
|
rose_node->count = 1;
|
|
rose_node->loopback = 1;
|
|
rose_node->loopback = 1;
|
|
- rose_node->neighbour[0] = rose_loopback_neigh;
|
|
|
|
|
|
+ rose_node->neighbour[0] = &rose_loopback_neigh;
|
|
|
|
|
|
/* Insert at the head of list. Address is always mask=10 */
|
|
/* Insert at the head of list. Address is always mask=10 */
|
|
rose_node->next = rose_node_list;
|
|
rose_node->next = rose_node_list;
|
|
rose_node_list = rose_node;
|
|
rose_node_list = rose_node;
|
|
|
|
|
|
- rose_loopback_neigh->count++;
|
|
|
|
|
|
+ rose_loopback_neigh.count++;
|
|
|
|
|
|
out:
|
|
out:
|
|
spin_unlock_bh(&rose_node_list_lock);
|
|
spin_unlock_bh(&rose_node_list_lock);
|
|
@@ -458,7 +455,7 @@ void rose_del_loopback_node(rose_address *address)
|
|
|
|
|
|
rose_remove_node(rose_node);
|
|
rose_remove_node(rose_node);
|
|
|
|
|
|
- rose_loopback_neigh->count--;
|
|
|
|
|
|
+ rose_loopback_neigh.count--;
|
|
|
|
|
|
out:
|
|
out:
|
|
spin_unlock_bh(&rose_node_list_lock);
|
|
spin_unlock_bh(&rose_node_list_lock);
|