From ff2266cddd69f5e0c9d5121ed9218d2f694406cc Mon Sep 17 00:00:00 2001 From: Daniel Borkmann Date: Mon, 15 Apr 2013 03:27:17 +0000 Subject: net: sctp: remove sctp_ep_common struct member 'malloced' There is actually no need to keep this member in the structure, because after init it's always 1 anyway, thus always kfree called. This seems to be an ancient leftover from the very initial implementation from 2.5 times. Only in case the initialization of an association fails, we leave base.malloced as 0, but we nevertheless kfree it in the error path in sctp_association_new(). Signed-off-by: Daniel Borkmann Acked-by: Vlad Yasevich Signed-off-by: David S. Miller --- net/sctp/associola.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) (limited to 'net/sctp/associola.c') diff --git a/net/sctp/associola.c b/net/sctp/associola.c index d2709e2b7be..b893aa6862f 100644 --- a/net/sctp/associola.c +++ b/net/sctp/associola.c @@ -105,7 +105,6 @@ static struct sctp_association *sctp_association_init(struct sctp_association *a /* Initialize the object handling fields. */ atomic_set(&asoc->base.refcnt, 1); asoc->base.dead = 0; - asoc->base.malloced = 0; /* Initialize the bind addr area. */ sctp_bind_addr_init(&asoc->base.bind_addr, ep->base.bind_addr.port); @@ -371,7 +370,6 @@ struct sctp_association *sctp_association_new(const struct sctp_endpoint *ep, if (!sctp_association_init(asoc, ep, sk, scope, gfp)) goto fail_init; - asoc->base.malloced = 1; SCTP_DBG_OBJCNT_INC(assoc); SCTP_DEBUG_PRINTK("Created asoc %p\n", asoc); @@ -484,10 +482,8 @@ static void sctp_association_destroy(struct sctp_association *asoc) WARN_ON(atomic_read(&asoc->rmem_alloc)); - if (asoc->base.malloced) { - kfree(asoc); - SCTP_DBG_OBJCNT_DEC(assoc); - } + kfree(asoc); + SCTP_DBG_OBJCNT_DEC(assoc); } /* Change the primary destination address for the peer. */ -- cgit v1.2.3-70-g09d2 From 0022d2dd4d76e0e7d5c241c343a5016fdfa2ad4f Mon Sep 17 00:00:00 2001 From: Daniel Borkmann Date: Mon, 15 Apr 2013 03:27:18 +0000 Subject: net: sctp: minor: make sctp_ep_common's member 'dead' a bool Since dead only holds two states (0,1), make it a bool instead of a 'char', which is more appropriate for its purpose. Signed-off-by: Daniel Borkmann Acked-by: Vlad Yasevich Signed-off-by: David S. Miller --- include/net/sctp/structs.h | 2 +- net/sctp/associola.c | 4 ++-- net/sctp/endpointola.c | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) (limited to 'net/sctp/associola.c') diff --git a/include/net/sctp/structs.h b/include/net/sctp/structs.h index 3e80eedab17..e12aa77abc5 100644 --- a/include/net/sctp/structs.h +++ b/include/net/sctp/structs.h @@ -1176,7 +1176,7 @@ struct sctp_ep_common { * dead - Do not attempt to use this object. */ atomic_t refcnt; - char dead; + bool dead; /* What socket does this endpoint belong to? */ struct sock *sk; diff --git a/net/sctp/associola.c b/net/sctp/associola.c index b893aa6862f..423549a714e 100644 --- a/net/sctp/associola.c +++ b/net/sctp/associola.c @@ -104,7 +104,7 @@ static struct sctp_association *sctp_association_init(struct sctp_association *a /* Initialize the object handling fields. */ atomic_set(&asoc->base.refcnt, 1); - asoc->base.dead = 0; + asoc->base.dead = false; /* Initialize the bind addr area. */ sctp_bind_addr_init(&asoc->base.bind_addr, ep->base.bind_addr.port); @@ -407,7 +407,7 @@ void sctp_association_free(struct sctp_association *asoc) /* Mark as dead, so other users can know this structure is * going away. */ - asoc->base.dead = 1; + asoc->base.dead = true; /* Dispose of any data lying around in the outqueue. */ sctp_outq_free(&asoc->outqueue); diff --git a/net/sctp/endpointola.c b/net/sctp/endpointola.c index 46bbfc266ef..5fbd7bc6bb1 100644 --- a/net/sctp/endpointola.c +++ b/net/sctp/endpointola.c @@ -121,7 +121,7 @@ static struct sctp_endpoint *sctp_endpoint_init(struct sctp_endpoint *ep, /* Initialize the basic object fields. */ atomic_set(&ep->base.refcnt, 1); - ep->base.dead = 0; + ep->base.dead = false; /* Create an input queue. */ sctp_inq_init(&ep->base.inqueue); @@ -233,7 +233,7 @@ void sctp_endpoint_add_asoc(struct sctp_endpoint *ep, */ void sctp_endpoint_free(struct sctp_endpoint *ep) { - ep->base.dead = 1; + ep->base.dead = true; ep->base.sk->sk_state = SCTP_SS_CLOSED; -- cgit v1.2.3-70-g09d2