[Bluetooth] Remove global conf_mtu variable from L2CAP
[pandora-kernel.git] / net / ipv4 / inet_connection_sock.c
index 9d68837..8fb6ca2 100644 (file)
@@ -31,10 +31,21 @@ EXPORT_SYMBOL(inet_csk_timer_bug_msg);
 
 /*
  * This array holds the first and last local port number.
- * For high-usage systems, use sysctl to change this to
- * 32768-61000
  */
-int sysctl_local_port_range[2] = { 1024, 4999 };
+int sysctl_local_port_range[2] = { 32768, 61000 };
+DEFINE_SEQLOCK(sysctl_port_range_lock);
+
+void inet_get_local_port_range(int *low, int *high)
+{
+       unsigned seq;
+       do {
+               seq = read_seqbegin(&sysctl_port_range_lock);
+
+               *low = sysctl_local_port_range[0];
+               *high = sysctl_local_port_range[1];
+       } while (read_seqretry(&sysctl_port_range_lock, seq));
+}
+EXPORT_SYMBOL(inet_get_local_port_range);
 
 int inet_csk_bind_conflict(const struct sock *sk,
                           const struct inet_bind_bucket *tb)
@@ -79,10 +90,11 @@ int inet_csk_get_port(struct inet_hashinfo *hashinfo,
 
        local_bh_disable();
        if (!snum) {
-               int low = sysctl_local_port_range[0];
-               int high = sysctl_local_port_range[1];
-               int remaining = (high - low) + 1;
-               int rover = net_random() % (high - low) + low;
+               int remaining, rover, low, high;
+
+               inet_get_local_port_range(&low, &high);
+               remaining = (high - low) + 1;
+               rover = net_random() % remaining + low;
 
                do {
                        head = &hashinfo->bhash[inet_bhashfn(rover, hashinfo->bhash_size)];
@@ -149,7 +161,7 @@ success:
        if (!inet_csk(sk)->icsk_bind_hash)
                inet_bind_hash(sk, tb, snum);
        BUG_TRAP(inet_csk(sk)->icsk_bind_hash == tb);
-       ret = 0;
+       ret = 0;
 
 fail_unlock:
        spin_unlock(&head->lock);
@@ -255,7 +267,7 @@ EXPORT_SYMBOL(inet_csk_accept);
 
 /*
  * Using different timers for retransmit, delayed acks and probes
- * We may wish use just one timer maintaining a list of expire jiffies 
+ * We may wish use just one timer maintaining a list of expire jiffies
  * to optimize.
  */
 void inet_csk_init_xmit_timers(struct sock *sk,
@@ -273,7 +285,7 @@ void inet_csk_init_xmit_timers(struct sock *sk,
        icsk->icsk_delack_timer.function     = delack_handler;
        sk->sk_timer.function                = keepalive_handler;
 
-       icsk->icsk_retransmit_timer.data = 
+       icsk->icsk_retransmit_timer.data =
                icsk->icsk_delack_timer.data =
                        sk->sk_timer.data  = (unsigned long)sk;