hc
2024-05-10 23fa18eaa71266feff7ba8d83022d9e1cc83c65a
kernel/net/core/sock_map.c
....@@ -122,7 +122,6 @@
122122 __acquires(&sk->sk_lock.slock)
123123 {
124124 lock_sock(sk);
125
- preempt_disable();
126125 rcu_read_lock();
127126 }
128127
....@@ -130,7 +129,6 @@
130129 __releases(&sk->sk_lock.slock)
131130 {
132131 rcu_read_unlock();
133
- preempt_enable();
134132 release_sock(sk);
135133 }
136134
....@@ -358,11 +356,13 @@
358356
359357 sk = xchg(psk, NULL);
360358 if (sk) {
359
+ sock_hold(sk);
361360 lock_sock(sk);
362361 rcu_read_lock();
363362 sock_map_unref(sk, psk);
364363 rcu_read_unlock();
365364 release_sock(sk);
365
+ sock_put(sk);
366366 }
367367 }
368368