Re: [PATCH] sctp: make sctp_transport_init() void
From: Xin Long <lucien.xin@gmail.com>
Date: 2025-11-02 15:51:16
Also in:
linux-sctp, lkml
On Sat, Nov 1, 2025 at 12:37 PM Huiwen He [off-list ref] wrote:
quoted hunk ↗ jump to hunk
sctp_transport_init() is static and never returns NULL. It is only called by sctp_transport_new(), so change it to void and remove the redundant return value check. Signed-off-by: Huiwen He <redacted> --- net/sctp/transport.c | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-)diff --git a/net/sctp/transport.c b/net/sctp/transport.c index 4d258a6e8033..97da92390aa7 100644 --- a/net/sctp/transport.c +++ b/net/sctp/transport.c@@ -37,10 +37,10 @@ /* 1st Level Abstractions. */ /* Initialize a new transport from provided memory. */ -static struct sctp_transport *sctp_transport_init(struct net *net, - struct sctp_transport *peer, - const union sctp_addr *addr, - gfp_t gfp) +static void sctp_transport_init(struct net *net, + struct sctp_transport *peer, + const union sctp_addr *addr, + gfp_t gfp) { /* Copy in the address. */ peer->af_specific = sctp_get_af_specific(addr->sa.sa_family);@@ -83,8 +83,6 @@ static struct sctp_transport *sctp_transport_init(struct net *net, get_random_bytes(&peer->hb_nonce, sizeof(peer->hb_nonce)); refcount_set(&peer->refcnt, 1); - - return peer; } /* Allocate and initialize a new transport. */@@ -98,16 +96,12 @@ struct sctp_transport *sctp_transport_new(struct net *net, if (!transport) goto fail;
I think you can return NULL; here, and delete the 'fail:' path below now. Thanks.
- if (!sctp_transport_init(net, transport, addr, gfp))
- goto fail_init;
+ sctp_transport_init(net, transport, addr, gfp);
SCTP_DBG_OBJCNT_INC(transport);
return transport;
-fail_init:
- kfree(transport);
-
fail:
return NULL;
}
--
2.25.1