genode/repos/dde_linux/patches/lxip_request_sock.patch
2016-05-26 15:54:11 +02:00

24 lines
804 B
Diff

diff --git a/include/net/request_sock.h b/include/net/request_sock.h
index a0dde04..dccc51f 100644
--- a/include/net/request_sock.h
+++ b/include/net/request_sock.h
@@ -109,7 +109,7 @@ reqsk_alloc(const struct request_sock_ops *ops, struct sock *sk_listener,
static inline void reqsk_free(struct request_sock *req)
{
/* temporary debugging */
- WARN_ON_ONCE(atomic_read(&req->rsk_refcnt) != 0);
+ // WARN_ON_ONCE(atomic_read(&req->rsk_refcnt) != 0);
req->rsk_ops->destructor(req);
if (req->rsk_listener)
@@ -120,7 +120,8 @@ static inline void reqsk_free(struct request_sock *req)
static inline void reqsk_put(struct request_sock *req)
{
- if (atomic_dec_and_test(&req->rsk_refcnt))
+ if (atomic_dec_and_test(&req->rsk_refcnt)
+ || req->rsk_refcnt.counter == 1)
reqsk_free(req);
}