diff options
author | Eric Dumazet <dada1@cosmosbay.com> | 2008-01-14 01:27:52 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-01-28 18:02:03 -0500 |
commit | 6bf1574ee33270e7c0b9d43103e8cedffd9f74db (patch) | |
tree | 926e7008acacd0e49c1de0d615073a0d916b5b89 /net/x25 | |
parent | 4dde4610c4ab54e9d36a4afaa98c23b017f7f9e3 (diff) |
[X25]: Avoid divides and sparse warnings
CHECK net/x25/af_x25.c
net/x25/af_x25.c:117:46: warning: expensive signed divide
CHECK net/x25/x25_facilities.c
net/x25/x25_facilities.c:209:30: warning: expensive signed divide
CHECK net/x25/x25_in.c
net/x25/x25_in.c:250:26: warning: expensive signed divide
CHECK net/x25/x25_proc.c
net/x25/x25_proc.c:48:11: warning: context imbalance in 'x25_seq_route_start'
- wrong count at exit
net/x25/x25_proc.c:72:13: warning: context imbalance in 'x25_seq_route_stop' -
unexpected unlock
net/x25/x25_proc.c:112:11: warning: context imbalance in
'x25_seq_socket_start' - wrong count at exit
net/x25/x25_proc.c:129:13: warning: context imbalance in 'x25_seq_socket_stop'
- unexpected unlock
net/x25/x25_proc.c:190:11: warning: context imbalance in
'x25_seq_forward_start' - wrong count at exit
net/x25/x25_proc.c:215:13: warning: context imbalance in
'x25_seq_forward_stop' - unexpected unlock
CHECK net/x25/x25_subr.c
net/x25/x25_subr.c:362:57: warning: expensive signed divide
Signed-off-by: Eric Dumazet <dada1@cosmosbay.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/x25')
-rw-r--r-- | net/x25/af_x25.c | 4 | ||||
-rw-r--r-- | net/x25/x25_facilities.c | 4 | ||||
-rw-r--r-- | net/x25/x25_in.c | 2 | ||||
-rw-r--r-- | net/x25/x25_proc.c | 6 | ||||
-rw-r--r-- | net/x25/x25_subr.c | 2 |
5 files changed, 11 insertions, 7 deletions
diff --git a/net/x25/af_x25.c b/net/x25/af_x25.c index 92cfe8e3e0b8..07fad7ccf832 100644 --- a/net/x25/af_x25.c +++ b/net/x25/af_x25.c | |||
@@ -83,9 +83,9 @@ struct compat_x25_subscrip_struct { | |||
83 | int x25_addr_ntoa(unsigned char *p, struct x25_address *called_addr, | 83 | int x25_addr_ntoa(unsigned char *p, struct x25_address *called_addr, |
84 | struct x25_address *calling_addr) | 84 | struct x25_address *calling_addr) |
85 | { | 85 | { |
86 | int called_len, calling_len; | 86 | unsigned int called_len, calling_len; |
87 | char *called, *calling; | 87 | char *called, *calling; |
88 | int i; | 88 | unsigned int i; |
89 | 89 | ||
90 | called_len = (*p >> 0) & 0x0F; | 90 | called_len = (*p >> 0) & 0x0F; |
91 | calling_len = (*p >> 4) & 0x0F; | 91 | calling_len = (*p >> 4) & 0x0F; |
diff --git a/net/x25/x25_facilities.c b/net/x25/x25_facilities.c index dec404afa113..a21f6646eb3a 100644 --- a/net/x25/x25_facilities.c +++ b/net/x25/x25_facilities.c | |||
@@ -205,9 +205,7 @@ int x25_create_facilities(unsigned char *buffer, | |||
205 | } | 205 | } |
206 | 206 | ||
207 | if (dte_facs->calling_len && (facil_mask & X25_MASK_CALLING_AE)) { | 207 | if (dte_facs->calling_len && (facil_mask & X25_MASK_CALLING_AE)) { |
208 | unsigned bytecount = (dte_facs->calling_len % 2) ? | 208 | unsigned bytecount = (dte_facs->calling_len + 1) >> 1; |
209 | dte_facs->calling_len / 2 + 1 : | ||
210 | dte_facs->calling_len / 2; | ||
211 | *p++ = X25_FAC_CALLING_AE; | 209 | *p++ = X25_FAC_CALLING_AE; |
212 | *p++ = 1 + bytecount; | 210 | *p++ = 1 + bytecount; |
213 | *p++ = dte_facs->calling_len; | 211 | *p++ = dte_facs->calling_len; |
diff --git a/net/x25/x25_in.c b/net/x25/x25_in.c index 1c88762c2794..7d7c3abf38b5 100644 --- a/net/x25/x25_in.c +++ b/net/x25/x25_in.c | |||
@@ -247,7 +247,7 @@ static int x25_state3_machine(struct sock *sk, struct sk_buff *skb, int frametyp | |||
247 | break; | 247 | break; |
248 | } | 248 | } |
249 | if (atomic_read(&sk->sk_rmem_alloc) > | 249 | if (atomic_read(&sk->sk_rmem_alloc) > |
250 | (sk->sk_rcvbuf / 2)) | 250 | (sk->sk_rcvbuf >> 1)) |
251 | x25->condition |= X25_COND_OWN_RX_BUSY; | 251 | x25->condition |= X25_COND_OWN_RX_BUSY; |
252 | } | 252 | } |
253 | /* | 253 | /* |
diff --git a/net/x25/x25_proc.c b/net/x25/x25_proc.c index 7d55e50c936f..78b05342606e 100644 --- a/net/x25/x25_proc.c +++ b/net/x25/x25_proc.c | |||
@@ -41,6 +41,7 @@ found: | |||
41 | } | 41 | } |
42 | 42 | ||
43 | static void *x25_seq_route_start(struct seq_file *seq, loff_t *pos) | 43 | static void *x25_seq_route_start(struct seq_file *seq, loff_t *pos) |
44 | __acquires(x25_route_list_lock) | ||
44 | { | 45 | { |
45 | loff_t l = *pos; | 46 | loff_t l = *pos; |
46 | 47 | ||
@@ -70,6 +71,7 @@ out: | |||
70 | } | 71 | } |
71 | 72 | ||
72 | static void x25_seq_route_stop(struct seq_file *seq, void *v) | 73 | static void x25_seq_route_stop(struct seq_file *seq, void *v) |
74 | __releases(x25_route_list_lock) | ||
73 | { | 75 | { |
74 | read_unlock_bh(&x25_route_list_lock); | 76 | read_unlock_bh(&x25_route_list_lock); |
75 | } | 77 | } |
@@ -105,6 +107,7 @@ found: | |||
105 | } | 107 | } |
106 | 108 | ||
107 | static void *x25_seq_socket_start(struct seq_file *seq, loff_t *pos) | 109 | static void *x25_seq_socket_start(struct seq_file *seq, loff_t *pos) |
110 | __acquires(x25_list_lock) | ||
108 | { | 111 | { |
109 | loff_t l = *pos; | 112 | loff_t l = *pos; |
110 | 113 | ||
@@ -127,6 +130,7 @@ out: | |||
127 | } | 130 | } |
128 | 131 | ||
129 | static void x25_seq_socket_stop(struct seq_file *seq, void *v) | 132 | static void x25_seq_socket_stop(struct seq_file *seq, void *v) |
133 | __releases(x25_list_lock) | ||
130 | { | 134 | { |
131 | read_unlock_bh(&x25_list_lock); | 135 | read_unlock_bh(&x25_list_lock); |
132 | } | 136 | } |
@@ -183,6 +187,7 @@ found: | |||
183 | } | 187 | } |
184 | 188 | ||
185 | static void *x25_seq_forward_start(struct seq_file *seq, loff_t *pos) | 189 | static void *x25_seq_forward_start(struct seq_file *seq, loff_t *pos) |
190 | __acquires(x25_forward_list_lock) | ||
186 | { | 191 | { |
187 | loff_t l = *pos; | 192 | loff_t l = *pos; |
188 | 193 | ||
@@ -213,6 +218,7 @@ out: | |||
213 | } | 218 | } |
214 | 219 | ||
215 | static void x25_seq_forward_stop(struct seq_file *seq, void *v) | 220 | static void x25_seq_forward_stop(struct seq_file *seq, void *v) |
221 | __releases(x25_forward_list_lock) | ||
216 | { | 222 | { |
217 | read_unlock_bh(&x25_forward_list_lock); | 223 | read_unlock_bh(&x25_forward_list_lock); |
218 | } | 224 | } |
diff --git a/net/x25/x25_subr.c b/net/x25/x25_subr.c index 8d6220aa5d0f..511a5986af3e 100644 --- a/net/x25/x25_subr.c +++ b/net/x25/x25_subr.c | |||
@@ -359,7 +359,7 @@ void x25_check_rbuf(struct sock *sk) | |||
359 | { | 359 | { |
360 | struct x25_sock *x25 = x25_sk(sk); | 360 | struct x25_sock *x25 = x25_sk(sk); |
361 | 361 | ||
362 | if (atomic_read(&sk->sk_rmem_alloc) < (sk->sk_rcvbuf / 2) && | 362 | if (atomic_read(&sk->sk_rmem_alloc) < (sk->sk_rcvbuf >> 1) && |
363 | (x25->condition & X25_COND_OWN_RX_BUSY)) { | 363 | (x25->condition & X25_COND_OWN_RX_BUSY)) { |
364 | x25->condition &= ~X25_COND_OWN_RX_BUSY; | 364 | x25->condition &= ~X25_COND_OWN_RX_BUSY; |
365 | x25->condition &= ~X25_COND_ACK_PENDING; | 365 | x25->condition &= ~X25_COND_ACK_PENDING; |