aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohn Heffner <jheffner@psc.edu>2007-09-12 04:44:19 -0400
committerDavid S. Miller <davem@sunset.davemloft.net>2007-10-10 19:49:01 -0400
commitd2e9117c7aa9544d910634e17e3519fd67155229 (patch)
tree531507ed5d2031fa80775036fec1b57584a236cb
parent02b3d34631831a19ee691516e233756b270eac6d (diff)
[NET]: Change type of owner in sock_lock_t to int, rename
The type of owner in sock_lock_t is currently (struct sock_iocb *), presumably for historical reasons. It is never used as this type, only tested as NULL or set to (void *)1. For clarity, this changes it to type int, and renames to owned, to avoid any possible type casting errors. Signed-off-by: John Heffner <jheffner@psc.edu> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--include/net/sock.h7
-rw-r--r--net/core/sock.c6
2 files changed, 6 insertions, 7 deletions
diff --git a/include/net/sock.h b/include/net/sock.h
index 802c670ba820..5ed9fa42b6e8 100644
--- a/include/net/sock.h
+++ b/include/net/sock.h
@@ -76,10 +76,9 @@
76 * between user contexts and software interrupt processing, whereas the 76 * between user contexts and software interrupt processing, whereas the
77 * mini-semaphore synchronizes multiple users amongst themselves. 77 * mini-semaphore synchronizes multiple users amongst themselves.
78 */ 78 */
79struct sock_iocb;
80typedef struct { 79typedef struct {
81 spinlock_t slock; 80 spinlock_t slock;
82 struct sock_iocb *owner; 81 int owned;
83 wait_queue_head_t wq; 82 wait_queue_head_t wq;
84 /* 83 /*
85 * We express the mutex-alike socket_lock semantics 84 * We express the mutex-alike socket_lock semantics
@@ -737,7 +736,7 @@ static inline int sk_stream_wmem_schedule(struct sock *sk, int size)
737 * Since ~2.3.5 it is also exclusive sleep lock serializing 736 * Since ~2.3.5 it is also exclusive sleep lock serializing
738 * accesses from user process context. 737 * accesses from user process context.
739 */ 738 */
740#define sock_owned_by_user(sk) ((sk)->sk_lock.owner) 739#define sock_owned_by_user(sk) ((sk)->sk_lock.owned)
741 740
742/* 741/*
743 * Macro so as to not evaluate some arguments when 742 * Macro so as to not evaluate some arguments when
@@ -748,7 +747,7 @@ static inline int sk_stream_wmem_schedule(struct sock *sk, int size)
748 */ 747 */
749#define sock_lock_init_class_and_name(sk, sname, skey, name, key) \ 748#define sock_lock_init_class_and_name(sk, sname, skey, name, key) \
750do { \ 749do { \
751 sk->sk_lock.owner = NULL; \ 750 sk->sk_lock.owned = 0; \
752 init_waitqueue_head(&sk->sk_lock.wq); \ 751 init_waitqueue_head(&sk->sk_lock.wq); \
753 spin_lock_init(&(sk)->sk_lock.slock); \ 752 spin_lock_init(&(sk)->sk_lock.slock); \
754 debug_check_no_locks_freed((void *)&(sk)->sk_lock, \ 753 debug_check_no_locks_freed((void *)&(sk)->sk_lock, \
diff --git a/net/core/sock.c b/net/core/sock.c
index 190de61cd648..beb924c248e8 100644
--- a/net/core/sock.c
+++ b/net/core/sock.c
@@ -1585,9 +1585,9 @@ void fastcall lock_sock_nested(struct sock *sk, int subclass)
1585{ 1585{
1586 might_sleep(); 1586 might_sleep();
1587 spin_lock_bh(&sk->sk_lock.slock); 1587 spin_lock_bh(&sk->sk_lock.slock);
1588 if (sk->sk_lock.owner) 1588 if (sk->sk_lock.owned)
1589 __lock_sock(sk); 1589 __lock_sock(sk);
1590 sk->sk_lock.owner = (void *)1; 1590 sk->sk_lock.owned = 1;
1591 spin_unlock(&sk->sk_lock.slock); 1591 spin_unlock(&sk->sk_lock.slock);
1592 /* 1592 /*
1593 * The sk_lock has mutex_lock() semantics here: 1593 * The sk_lock has mutex_lock() semantics here:
@@ -1608,7 +1608,7 @@ void fastcall release_sock(struct sock *sk)
1608 spin_lock_bh(&sk->sk_lock.slock); 1608 spin_lock_bh(&sk->sk_lock.slock);
1609 if (sk->sk_backlog.tail) 1609 if (sk->sk_backlog.tail)
1610 __release_sock(sk); 1610 __release_sock(sk);
1611 sk->sk_lock.owner = NULL; 1611 sk->sk_lock.owned = 0;
1612 if (waitqueue_active(&sk->sk_lock.wq)) 1612 if (waitqueue_active(&sk->sk_lock.wq))
1613 wake_up(&sk->sk_lock.wq); 1613 wake_up(&sk->sk_lock.wq);
1614 spin_unlock_bh(&sk->sk_lock.slock); 1614 spin_unlock_bh(&sk->sk_lock.slock);