nr_kill_by_device(dev);
nr_rt_device_down(dev);
-
+
return NOTIFY_DONE;
}
sk_for_each(s, node, &nr_list)
if (!ax25cmp(&nr_sk(s)->source_addr, addr) &&
s->sk_state == TCP_LISTEN) {
- bh_lock_sock(s);
+ bh_lock_sock(s);
goto found;
}
s = NULL;
spin_lock_bh(&nr_list_lock);
sk_for_each(s, node, &nr_list) {
struct nr_sock *nr = nr_sk(s);
-
+
if (nr->my_index == index && nr->my_id == id) {
bh_lock_sock(s);
goto found;
spin_lock_bh(&nr_list_lock);
sk_for_each(s, node, &nr_list) {
struct nr_sock *nr = nr_sk(s);
-
+
if (nr->your_index == index && nr->your_id == id &&
!ax25cmp(&nr->dest_addr, dest)) {
- bh_lock_sock(s);
+ bh_lock_sock(s);
goto found;
}
}
struct sock *sk = sock->sk;
struct nr_sock *nr = nr_sk(sk);
int val = 0;
- int len;
+ int len;
if (level != SOL_NETROM)
return -ENOPROTOOPT;
-
+
if (get_user(len, optlen))
return -EFAULT;
if (len < 0)
return -EINVAL;
-
+
switch (optname) {
case NETROM_T1:
val = nr->t1 / HZ;
break;
}
- sock->sk = NULL;
+ sock->sk = NULL;
release_sock(sk);
sock_put(sk);
return -EISCONN; /* No reconnect on a seqpacket socket */
}
- sk->sk_state = TCP_CLOSE;
+ sk->sk_state = TCP_CLOSE;
sock->state = SS_UNCONNECTED;
if (addr_len != sizeof(struct sockaddr_ax25) && addr_len != sizeof(struct full_sockaddr_ax25)) {
release_sock(sk);
return -EINPROGRESS;
}
-
+
/*
* A Connect Ack with Choke or timeout or failed routing will go to
* closed.
int nr_rx_frame(struct sk_buff *skb, struct net_device *dev)
{
struct sock *sk;
- struct sock *make;
+ struct sock *make;
struct nr_sock *nr_make;
ax25_address *src, *dest, *user;
unsigned short circuit_index, circuit_id;
{
++*pos;
- return (v == SEQ_START_TOKEN) ? sk_head(&nr_list)
+ return (v == SEQ_START_TOKEN) ? sk_head(&nr_list)
: sk_next((struct sock *)v);
}
-
+
static void nr_info_stop(struct seq_file *seq, void *v)
{
spin_unlock_bh(&nr_list_lock);
seq_printf(seq, "%-9s ", ax2asc(buf, &nr->user_addr));
seq_printf(seq, "%-9s ", ax2asc(buf, &nr->dest_addr));
- seq_printf(seq,
+ seq_printf(seq,
"%-9s %-3s %02X/%02X %02X/%02X %2d %3d %3d %3d %3lu/%03lu %2lu/%02lu %3lu/%03lu %3lu/%03lu %2d/%02d %3d %5d %5d %ld\n",
ax2asc(buf, &nr->source_addr),
devname,
.stop = nr_info_stop,
.show = nr_info_show,
};
-
+
static int nr_info_open(struct inode *inode, struct file *file)
{
return seq_open(file, &nr_info_seqops);
}
-
+
static struct file_operations nr_info_fops = {
.owner = THIS_MODULE,
.open = nr_info_open,
printk(KERN_ERR "NET/ROM: nr_proto_init - unable to allocate device structure\n");
goto fail;
}
-
+
dev->base_addr = i;
if (register_netdev(dev)) {
printk(KERN_ERR "NET/ROM: nr_proto_init - unable to register network device\n");
printk(KERN_ERR "NET/ROM: nr_proto_init - unable to register socket family\n");
goto fail;
}
-
+
register_netdevice_notifier(&nr_dev_notifier);
ax25_register_pid(&nr_pid);
if (ax25 != NULL) {
ret = nr_add_node(nr_src, "", &ax25->dest_addr, ax25->digipeat,
- ax25->ax25_dev->dev, 0,
- sysctl_netrom_obsolescence_count_initialiser);
+ ax25->ax25_dev->dev, 0,
+ sysctl_netrom_obsolescence_count_initialiser);
if (ret)
return ret;
}
struct nr_node *nr_node;
struct hlist_node *node;
int i = 1;
-
- spin_lock_bh(&nr_node_list_lock);
+
+ spin_lock_bh(&nr_node_list_lock);
if (*pos == 0)
return SEQ_START_TOKEN;
{
struct hlist_node *node;
++*pos;
-
- node = (v == SEQ_START_TOKEN)
+
+ node = (v == SEQ_START_TOKEN)
? nr_node_list.first
: ((struct nr_node *)v)->node_node.next;
{
struct hlist_node *node;
++*pos;
-
- node = (v == SEQ_START_TOKEN)
+
+ node = (v == SEQ_START_TOKEN)
? nr_neigh_list.first
: ((struct nr_neigh *)v)->neigh_node.next;
if (nr_neigh->digipeat != NULL) {
for (i = 0; i < nr_neigh->digipeat->ndigi; i++)
- seq_printf(seq, " %s",
+ seq_printf(seq, " %s",
ax2asc(buf, &nr_neigh->digipeat->calls[i]));
}
*/
if (nrom->va != nr) {
while (skb_peek(&nrom->ack_queue) != NULL && nrom->va != nr) {
- skb = skb_dequeue(&nrom->ack_queue);
+ skb = skb_dequeue(&nrom->ack_queue);
kfree_skb(skb);
nrom->va = (nrom->va + 1) % NR_MODULUS;
}
init_timer(&nr->t1timer);
nr->t1timer.data = (unsigned long)sk;
nr->t1timer.function = &nr_t1timer_expiry;
-
+
init_timer(&nr->t2timer);
nr->t2timer.data = (unsigned long)sk;
nr->t2timer.function = &nr_t2timer_expiry;
static struct ctl_table_header *nr_table_header;
static ctl_table nr_table[] = {
- {
+ {
.ctl_name = NET_NETROM_DEFAULT_PATH_QUALITY,
.procname = "default_path_quality",
.data = &sysctl_netrom_default_path_quality,
.extra1 = &min_quality,
.extra2 = &max_quality
},
- {
+ {
.ctl_name = NET_NETROM_OBSOLESCENCE_COUNT_INITIALISER,
.procname = "obsolescence_count_initialiser",
.data = &sysctl_netrom_obsolescence_count_initialiser,
.maxlen = sizeof(int),
.mode = 0644,
- .proc_handler = &proc_dointvec_minmax,
+ .proc_handler = &proc_dointvec_minmax,
.strategy = &sysctl_intvec,
.extra1 = &min_obs,
.extra2 = &max_obs
},
- {
+ {
.ctl_name = NET_NETROM_NETWORK_TTL_INITIALISER,
.procname = "network_ttl_initialiser",
.data = &sysctl_netrom_network_ttl_initialiser,
.extra1 = &min_ttl,
.extra2 = &max_ttl
},
- {
+ {
.ctl_name = NET_NETROM_TRANSPORT_TIMEOUT,
.procname = "transport_timeout",
.data = &sysctl_netrom_transport_timeout,
.extra1 = &min_t1,
.extra2 = &max_t1
},
- {
+ {
.ctl_name = NET_NETROM_TRANSPORT_MAXIMUM_TRIES,
.procname = "transport_maximum_tries",
.data = &sysctl_netrom_transport_maximum_tries,
.extra1 = &min_n2,
.extra2 = &max_n2
},
- {
+ {
.ctl_name = NET_NETROM_TRANSPORT_ACKNOWLEDGE_DELAY,
.procname = "transport_acknowledge_delay",
.data = &sysctl_netrom_transport_acknowledge_delay,
.extra1 = &min_t2,
.extra2 = &max_t2
},
- {
+ {
.ctl_name = NET_NETROM_TRANSPORT_BUSY_DELAY,
.procname = "transport_busy_delay",
.data = &sysctl_netrom_transport_busy_delay,
.extra1 = &min_t4,
.extra2 = &max_t4
},
- {
+ {
.ctl_name = NET_NETROM_TRANSPORT_REQUESTED_WINDOW_SIZE,
.procname = "transport_requested_window_size",
.data = &sysctl_netrom_transport_requested_window_size,
.extra1 = &min_window,
.extra2 = &max_window
},
- {
+ {
.ctl_name = NET_NETROM_TRANSPORT_NO_ACTIVITY_TIMEOUT,
.procname = "transport_no_activity_timeout",
.data = &sysctl_netrom_transport_no_activity_timeout,
.extra1 = &min_idle,
.extra2 = &max_idle
},
- {
+ {
.ctl_name = NET_NETROM_ROUTING_CONTROL,
.procname = "routing_control",
.data = &sysctl_netrom_routing_control,
.extra1 = &min_route,
.extra2 = &max_route
},
- {
+ {
.ctl_name = NET_NETROM_LINK_FAILS_COUNT,
.procname = "link_fails_count",
.data = &sysctl_netrom_link_fails_count,
.extra1 = &min_fails,
.extra2 = &max_fails
},
- {
+ {
.ctl_name = NET_NETROM_RESET,
.procname = "reset",
.data = &sysctl_netrom_reset_circuit,