.. | .. |
---|
122 | 122 | __acquires(&sk->sk_lock.slock) |
---|
123 | 123 | { |
---|
124 | 124 | lock_sock(sk); |
---|
125 | | - preempt_disable(); |
---|
126 | 125 | rcu_read_lock(); |
---|
127 | 126 | } |
---|
128 | 127 | |
---|
.. | .. |
---|
130 | 129 | __releases(&sk->sk_lock.slock) |
---|
131 | 130 | { |
---|
132 | 131 | rcu_read_unlock(); |
---|
133 | | - preempt_enable(); |
---|
134 | 132 | release_sock(sk); |
---|
135 | 133 | } |
---|
136 | 134 | |
---|
.. | .. |
---|
358 | 356 | |
---|
359 | 357 | sk = xchg(psk, NULL); |
---|
360 | 358 | if (sk) { |
---|
| 359 | + sock_hold(sk); |
---|
361 | 360 | lock_sock(sk); |
---|
362 | 361 | rcu_read_lock(); |
---|
363 | 362 | sock_map_unref(sk, psk); |
---|
364 | 363 | rcu_read_unlock(); |
---|
365 | 364 | release_sock(sk); |
---|
| 365 | + sock_put(sk); |
---|
366 | 366 | } |
---|
367 | 367 | } |
---|
368 | 368 | |
---|