aboutsummaryrefslogtreecommitdiffstats
path: root/net/x25
diff options
context:
space:
mode:
authorEric Dumazet <dada1@cosmosbay.com>2008-01-14 01:27:52 -0500
committerDavid S. Miller <davem@davemloft.net>2008-01-28 18:02:03 -0500
commit6bf1574ee33270e7c0b9d43103e8cedffd9f74db (patch)
tree926e7008acacd0e49c1de0d615073a0d916b5b89 /net/x25
parent4dde4610c4ab54e9d36a4afaa98c23b017f7f9e3 (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.c4
-rw-r--r--net/x25/x25_facilities.c4
-rw-r--r--net/x25/x25_in.c2
-rw-r--r--net/x25/x25_proc.c6
-rw-r--r--net/x25/x25_subr.c2
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 {
83int x25_addr_ntoa(unsigned char *p, struct x25_address *called_addr, 83int 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
43static void *x25_seq_route_start(struct seq_file *seq, loff_t *pos) 43static 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
72static void x25_seq_route_stop(struct seq_file *seq, void *v) 73static 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
107static void *x25_seq_socket_start(struct seq_file *seq, loff_t *pos) 109static 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
129static void x25_seq_socket_stop(struct seq_file *seq, void *v) 132static 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
185static void *x25_seq_forward_start(struct seq_file *seq, loff_t *pos) 189static 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
215static void x25_seq_forward_stop(struct seq_file *seq, void *v) 220static 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;