diff options
Diffstat (limited to 'net/ax25')
-rw-r--r-- | net/ax25/af_ax25.c | 15 | ||||
-rw-r--r-- | net/ax25/ax25_ds_subr.c | 6 | ||||
-rw-r--r-- | net/ax25/ax25_ds_timer.c | 3 | ||||
-rw-r--r-- | net/ax25/ax25_iface.c | 3 | ||||
-rw-r--r-- | net/ax25/ax25_uid.c | 11 |
5 files changed, 13 insertions, 25 deletions
diff --git a/net/ax25/af_ax25.c b/net/ax25/af_ax25.c index 69a06c47b648..7b11f8bc5071 100644 --- a/net/ax25/af_ax25.c +++ b/net/ax25/af_ax25.c | |||
@@ -81,14 +81,13 @@ static void ax25_kill_by_device(struct net_device *dev) | |||
81 | { | 81 | { |
82 | ax25_dev *ax25_dev; | 82 | ax25_dev *ax25_dev; |
83 | ax25_cb *s; | 83 | ax25_cb *s; |
84 | struct hlist_node *node; | ||
85 | 84 | ||
86 | if ((ax25_dev = ax25_dev_ax25dev(dev)) == NULL) | 85 | if ((ax25_dev = ax25_dev_ax25dev(dev)) == NULL) |
87 | return; | 86 | return; |
88 | 87 | ||
89 | spin_lock_bh(&ax25_list_lock); | 88 | spin_lock_bh(&ax25_list_lock); |
90 | again: | 89 | again: |
91 | ax25_for_each(s, node, &ax25_list) { | 90 | ax25_for_each(s, &ax25_list) { |
92 | if (s->ax25_dev == ax25_dev) { | 91 | if (s->ax25_dev == ax25_dev) { |
93 | s->ax25_dev = NULL; | 92 | s->ax25_dev = NULL; |
94 | spin_unlock_bh(&ax25_list_lock); | 93 | spin_unlock_bh(&ax25_list_lock); |
@@ -158,10 +157,9 @@ struct sock *ax25_find_listener(ax25_address *addr, int digi, | |||
158 | struct net_device *dev, int type) | 157 | struct net_device *dev, int type) |
159 | { | 158 | { |
160 | ax25_cb *s; | 159 | ax25_cb *s; |
161 | struct hlist_node *node; | ||
162 | 160 | ||
163 | spin_lock(&ax25_list_lock); | 161 | spin_lock(&ax25_list_lock); |
164 | ax25_for_each(s, node, &ax25_list) { | 162 | ax25_for_each(s, &ax25_list) { |
165 | if ((s->iamdigi && !digi) || (!s->iamdigi && digi)) | 163 | if ((s->iamdigi && !digi) || (!s->iamdigi && digi)) |
166 | continue; | 164 | continue; |
167 | if (s->sk && !ax25cmp(&s->source_addr, addr) && | 165 | if (s->sk && !ax25cmp(&s->source_addr, addr) && |
@@ -187,10 +185,9 @@ struct sock *ax25_get_socket(ax25_address *my_addr, ax25_address *dest_addr, | |||
187 | { | 185 | { |
188 | struct sock *sk = NULL; | 186 | struct sock *sk = NULL; |
189 | ax25_cb *s; | 187 | ax25_cb *s; |
190 | struct hlist_node *node; | ||
191 | 188 | ||
192 | spin_lock(&ax25_list_lock); | 189 | spin_lock(&ax25_list_lock); |
193 | ax25_for_each(s, node, &ax25_list) { | 190 | ax25_for_each(s, &ax25_list) { |
194 | if (s->sk && !ax25cmp(&s->source_addr, my_addr) && | 191 | if (s->sk && !ax25cmp(&s->source_addr, my_addr) && |
195 | !ax25cmp(&s->dest_addr, dest_addr) && | 192 | !ax25cmp(&s->dest_addr, dest_addr) && |
196 | s->sk->sk_type == type) { | 193 | s->sk->sk_type == type) { |
@@ -213,10 +210,9 @@ ax25_cb *ax25_find_cb(ax25_address *src_addr, ax25_address *dest_addr, | |||
213 | ax25_digi *digi, struct net_device *dev) | 210 | ax25_digi *digi, struct net_device *dev) |
214 | { | 211 | { |
215 | ax25_cb *s; | 212 | ax25_cb *s; |
216 | struct hlist_node *node; | ||
217 | 213 | ||
218 | spin_lock_bh(&ax25_list_lock); | 214 | spin_lock_bh(&ax25_list_lock); |
219 | ax25_for_each(s, node, &ax25_list) { | 215 | ax25_for_each(s, &ax25_list) { |
220 | if (s->sk && s->sk->sk_type != SOCK_SEQPACKET) | 216 | if (s->sk && s->sk->sk_type != SOCK_SEQPACKET) |
221 | continue; | 217 | continue; |
222 | if (s->ax25_dev == NULL) | 218 | if (s->ax25_dev == NULL) |
@@ -248,10 +244,9 @@ void ax25_send_to_raw(ax25_address *addr, struct sk_buff *skb, int proto) | |||
248 | { | 244 | { |
249 | ax25_cb *s; | 245 | ax25_cb *s; |
250 | struct sk_buff *copy; | 246 | struct sk_buff *copy; |
251 | struct hlist_node *node; | ||
252 | 247 | ||
253 | spin_lock(&ax25_list_lock); | 248 | spin_lock(&ax25_list_lock); |
254 | ax25_for_each(s, node, &ax25_list) { | 249 | ax25_for_each(s, &ax25_list) { |
255 | if (s->sk != NULL && ax25cmp(&s->source_addr, addr) == 0 && | 250 | if (s->sk != NULL && ax25cmp(&s->source_addr, addr) == 0 && |
256 | s->sk->sk_type == SOCK_RAW && | 251 | s->sk->sk_type == SOCK_RAW && |
257 | s->sk->sk_protocol == proto && | 252 | s->sk->sk_protocol == proto && |
diff --git a/net/ax25/ax25_ds_subr.c b/net/ax25/ax25_ds_subr.c index 5ea7fd3e2af9..e05bd57b5afd 100644 --- a/net/ax25/ax25_ds_subr.c +++ b/net/ax25/ax25_ds_subr.c | |||
@@ -39,7 +39,6 @@ void ax25_ds_nr_error_recovery(ax25_cb *ax25) | |||
39 | void ax25_ds_enquiry_response(ax25_cb *ax25) | 39 | void ax25_ds_enquiry_response(ax25_cb *ax25) |
40 | { | 40 | { |
41 | ax25_cb *ax25o; | 41 | ax25_cb *ax25o; |
42 | struct hlist_node *node; | ||
43 | 42 | ||
44 | /* Please note that neither DK4EG's nor DG2FEF's | 43 | /* Please note that neither DK4EG's nor DG2FEF's |
45 | * DAMA spec mention the following behaviour as seen | 44 | * DAMA spec mention the following behaviour as seen |
@@ -80,7 +79,7 @@ void ax25_ds_enquiry_response(ax25_cb *ax25) | |||
80 | ax25_ds_set_timer(ax25->ax25_dev); | 79 | ax25_ds_set_timer(ax25->ax25_dev); |
81 | 80 | ||
82 | spin_lock(&ax25_list_lock); | 81 | spin_lock(&ax25_list_lock); |
83 | ax25_for_each(ax25o, node, &ax25_list) { | 82 | ax25_for_each(ax25o, &ax25_list) { |
84 | if (ax25o == ax25) | 83 | if (ax25o == ax25) |
85 | continue; | 84 | continue; |
86 | 85 | ||
@@ -159,10 +158,9 @@ static int ax25_check_dama_slave(ax25_dev *ax25_dev) | |||
159 | { | 158 | { |
160 | ax25_cb *ax25; | 159 | ax25_cb *ax25; |
161 | int res = 0; | 160 | int res = 0; |
162 | struct hlist_node *node; | ||
163 | 161 | ||
164 | spin_lock(&ax25_list_lock); | 162 | spin_lock(&ax25_list_lock); |
165 | ax25_for_each(ax25, node, &ax25_list) | 163 | ax25_for_each(ax25, &ax25_list) |
166 | if (ax25->ax25_dev == ax25_dev && (ax25->condition & AX25_COND_DAMA_MODE) && ax25->state > AX25_STATE_1) { | 164 | if (ax25->ax25_dev == ax25_dev && (ax25->condition & AX25_COND_DAMA_MODE) && ax25->state > AX25_STATE_1) { |
167 | res = 1; | 165 | res = 1; |
168 | break; | 166 | break; |
diff --git a/net/ax25/ax25_ds_timer.c b/net/ax25/ax25_ds_timer.c index 993c439b4f71..951cd57bb07d 100644 --- a/net/ax25/ax25_ds_timer.c +++ b/net/ax25/ax25_ds_timer.c | |||
@@ -70,7 +70,6 @@ static void ax25_ds_timeout(unsigned long arg) | |||
70 | { | 70 | { |
71 | ax25_dev *ax25_dev = (struct ax25_dev *) arg; | 71 | ax25_dev *ax25_dev = (struct ax25_dev *) arg; |
72 | ax25_cb *ax25; | 72 | ax25_cb *ax25; |
73 | struct hlist_node *node; | ||
74 | 73 | ||
75 | if (ax25_dev == NULL || !ax25_dev->dama.slave) | 74 | if (ax25_dev == NULL || !ax25_dev->dama.slave) |
76 | return; /* Yikes! */ | 75 | return; /* Yikes! */ |
@@ -81,7 +80,7 @@ static void ax25_ds_timeout(unsigned long arg) | |||
81 | } | 80 | } |
82 | 81 | ||
83 | spin_lock(&ax25_list_lock); | 82 | spin_lock(&ax25_list_lock); |
84 | ax25_for_each(ax25, node, &ax25_list) { | 83 | ax25_for_each(ax25, &ax25_list) { |
85 | if (ax25->ax25_dev != ax25_dev || !(ax25->condition & AX25_COND_DAMA_MODE)) | 84 | if (ax25->ax25_dev != ax25_dev || !(ax25->condition & AX25_COND_DAMA_MODE)) |
86 | continue; | 85 | continue; |
87 | 86 | ||
diff --git a/net/ax25/ax25_iface.c b/net/ax25/ax25_iface.c index 7d5f24b82cc8..7f16e8a931b2 100644 --- a/net/ax25/ax25_iface.c +++ b/net/ax25/ax25_iface.c | |||
@@ -193,10 +193,9 @@ int ax25_listen_mine(ax25_address *callsign, struct net_device *dev) | |||
193 | void ax25_link_failed(ax25_cb *ax25, int reason) | 193 | void ax25_link_failed(ax25_cb *ax25, int reason) |
194 | { | 194 | { |
195 | struct ax25_linkfail *lf; | 195 | struct ax25_linkfail *lf; |
196 | struct hlist_node *node; | ||
197 | 196 | ||
198 | spin_lock_bh(&linkfail_lock); | 197 | spin_lock_bh(&linkfail_lock); |
199 | hlist_for_each_entry(lf, node, &ax25_linkfail_list, lf_node) | 198 | hlist_for_each_entry(lf, &ax25_linkfail_list, lf_node) |
200 | lf->func(ax25, reason); | 199 | lf->func(ax25, reason); |
201 | spin_unlock_bh(&linkfail_lock); | 200 | spin_unlock_bh(&linkfail_lock); |
202 | } | 201 | } |
diff --git a/net/ax25/ax25_uid.c b/net/ax25/ax25_uid.c index 957999e43ff7..71c4badbc807 100644 --- a/net/ax25/ax25_uid.c +++ b/net/ax25/ax25_uid.c | |||
@@ -54,10 +54,9 @@ EXPORT_SYMBOL(ax25_uid_policy); | |||
54 | ax25_uid_assoc *ax25_findbyuid(kuid_t uid) | 54 | ax25_uid_assoc *ax25_findbyuid(kuid_t uid) |
55 | { | 55 | { |
56 | ax25_uid_assoc *ax25_uid, *res = NULL; | 56 | ax25_uid_assoc *ax25_uid, *res = NULL; |
57 | struct hlist_node *node; | ||
58 | 57 | ||
59 | read_lock(&ax25_uid_lock); | 58 | read_lock(&ax25_uid_lock); |
60 | ax25_uid_for_each(ax25_uid, node, &ax25_uid_list) { | 59 | ax25_uid_for_each(ax25_uid, &ax25_uid_list) { |
61 | if (uid_eq(ax25_uid->uid, uid)) { | 60 | if (uid_eq(ax25_uid->uid, uid)) { |
62 | ax25_uid_hold(ax25_uid); | 61 | ax25_uid_hold(ax25_uid); |
63 | res = ax25_uid; | 62 | res = ax25_uid; |
@@ -74,7 +73,6 @@ EXPORT_SYMBOL(ax25_findbyuid); | |||
74 | int ax25_uid_ioctl(int cmd, struct sockaddr_ax25 *sax) | 73 | int ax25_uid_ioctl(int cmd, struct sockaddr_ax25 *sax) |
75 | { | 74 | { |
76 | ax25_uid_assoc *ax25_uid; | 75 | ax25_uid_assoc *ax25_uid; |
77 | struct hlist_node *node; | ||
78 | ax25_uid_assoc *user; | 76 | ax25_uid_assoc *user; |
79 | unsigned long res; | 77 | unsigned long res; |
80 | 78 | ||
@@ -82,7 +80,7 @@ int ax25_uid_ioctl(int cmd, struct sockaddr_ax25 *sax) | |||
82 | case SIOCAX25GETUID: | 80 | case SIOCAX25GETUID: |
83 | res = -ENOENT; | 81 | res = -ENOENT; |
84 | read_lock(&ax25_uid_lock); | 82 | read_lock(&ax25_uid_lock); |
85 | ax25_uid_for_each(ax25_uid, node, &ax25_uid_list) { | 83 | ax25_uid_for_each(ax25_uid, &ax25_uid_list) { |
86 | if (ax25cmp(&sax->sax25_call, &ax25_uid->call) == 0) { | 84 | if (ax25cmp(&sax->sax25_call, &ax25_uid->call) == 0) { |
87 | res = from_kuid_munged(current_user_ns(), ax25_uid->uid); | 85 | res = from_kuid_munged(current_user_ns(), ax25_uid->uid); |
88 | break; | 86 | break; |
@@ -126,7 +124,7 @@ int ax25_uid_ioctl(int cmd, struct sockaddr_ax25 *sax) | |||
126 | 124 | ||
127 | ax25_uid = NULL; | 125 | ax25_uid = NULL; |
128 | write_lock(&ax25_uid_lock); | 126 | write_lock(&ax25_uid_lock); |
129 | ax25_uid_for_each(ax25_uid, node, &ax25_uid_list) { | 127 | ax25_uid_for_each(ax25_uid, &ax25_uid_list) { |
130 | if (ax25cmp(&sax->sax25_call, &ax25_uid->call) == 0) | 128 | if (ax25cmp(&sax->sax25_call, &ax25_uid->call) == 0) |
131 | break; | 129 | break; |
132 | } | 130 | } |
@@ -212,11 +210,10 @@ const struct file_operations ax25_uid_fops = { | |||
212 | void __exit ax25_uid_free(void) | 210 | void __exit ax25_uid_free(void) |
213 | { | 211 | { |
214 | ax25_uid_assoc *ax25_uid; | 212 | ax25_uid_assoc *ax25_uid; |
215 | struct hlist_node *node; | ||
216 | 213 | ||
217 | write_lock(&ax25_uid_lock); | 214 | write_lock(&ax25_uid_lock); |
218 | again: | 215 | again: |
219 | ax25_uid_for_each(ax25_uid, node, &ax25_uid_list) { | 216 | ax25_uid_for_each(ax25_uid, &ax25_uid_list) { |
220 | hlist_del_init(&ax25_uid->uid_node); | 217 | hlist_del_init(&ax25_uid->uid_node); |
221 | ax25_uid_put(ax25_uid); | 218 | ax25_uid_put(ax25_uid); |
222 | goto again; | 219 | goto again; |