From b3d8099d6b4ec1a4a38ce09ea18651b05cb2885c Mon Sep 17 00:00:00 2001 From: Sowmini Varadhan Date: Mon, 6 Jun 2016 12:03:18 -0700 Subject: [PATCH] RDS: TCP: Remove kfreed tcp conn from list Orabug: 23542064 This is a backport of the upstream commit 8200a59f24ae ("rds: Remove kfreed tcp conn from list") All the rds_tcp_connection objects are stored list, but when being freed it should be removed from there. Original author: Pavel Emelyanov Signed-off-by: Pavel Emelyanov Signed-off-by: David S. Miller --- net/rds/tcp.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/net/rds/tcp.c b/net/rds/tcp.c index fe0aaa71a482..499b9cebdf63 100644 --- a/net/rds/tcp.c +++ b/net/rds/tcp.c @@ -234,7 +234,13 @@ static int rds_tcp_conn_alloc(struct rds_connection *conn, gfp_t gfp) static void rds_tcp_conn_free(void *arg) { struct rds_tcp_connection *tc = arg; + unsigned long flags; rdsdebug("freeing tc %p\n", tc); + + spin_lock_irqsave(&rds_tcp_conn_lock, flags); + list_del(&tc->t_tcp_node); + spin_unlock_irqrestore(&rds_tcp_conn_lock, flags); + kmem_cache_free(rds_tcp_conn_slab, tc); } -- 2.50.1