Re: [PATCH net-next v2 5/6] gtp: add socket to pdp context
From: Pablo Neira Ayuso <pablo@netfilter.org>
Date: 2017-02-02 13:57:06
On Mon, Jan 30, 2017 at 05:37:12PM +0100, Andreas Schultz wrote:
quoted hunk ↗ jump to hunk
Having the socket present in context simplifies the sending logic. It also fixes the invalid assumption that we have to use the same sending socket for all client IP's on a specific gtp interface. Signed-off-by: Andreas Schultz <redacted> --- drivers/net/gtp.c | 72 ++++++++++++++++++++++++++++++------------------------- 1 file changed, 39 insertions(+), 33 deletions(-)diff --git a/drivers/net/gtp.c b/drivers/net/gtp.c index 68c6c9b..ff00597 100644 --- a/drivers/net/gtp.c +++ b/drivers/net/gtp.c
[...]
quoted hunk ↗ jump to hunk
@@ -984,16 +966,26 @@ static int ipv4_pdp_add(struct gtp_dev *gtp, struct genl_info *info) return 0; } +static void pdp_context_free(struct rcu_head *head) +{ + struct pdp_ctx *pctx = container_of(head, struct pdp_ctx, rcu_head); + + sock_put(pctx->sk); + kfree(pctx); +} + static void pdp_context_delete(struct pdp_ctx *pctx) { hlist_del_rcu(&pctx->hlist_tid); hlist_del_rcu(&pctx->hlist_addr); - kfree(pctx); + call_rcu(&pctx->rcu_head, pdp_context_free);
This is fixing incorrect rcu conversion in 4/6. Please, fix this there.