diff --git a/net/tcp/tcp_wrbuffer.c b/net/tcp/tcp_wrbuffer.c index 686f0255035..1ff8cf519b4 100644 --- a/net/tcp/tcp_wrbuffer.c +++ b/net/tcp/tcp_wrbuffer.c @@ -73,10 +73,7 @@ struct wrbuffer_s /* This is the state of the global write buffer resource */ -static struct wrbuffer_s g_wrbuffer = -{ - SEM_INITIALIZER(CONFIG_NET_TCP_NWRBCHAINS), -}; +static struct wrbuffer_s g_wrbuffer; /**************************************************************************** * Public Functions @@ -97,6 +94,10 @@ void tcp_wrbuffer_initialize(void) { int i; + sq_init(&g_wrbuffer.freebuffers); + + nxsem_init(&g_wrbuffer.sem, 0, CONFIG_NET_TCP_NWRBCHAINS); + for (i = 0; i < CONFIG_NET_TCP_NWRBCHAINS; i++) { sq_addfirst(&g_wrbuffer.buffers[i].wb_node, &g_wrbuffer.freebuffers); diff --git a/net/udp/udp_wrbuffer.c b/net/udp/udp_wrbuffer.c index f6a0fd93241..3ae627a774a 100644 --- a/net/udp/udp_wrbuffer.c +++ b/net/udp/udp_wrbuffer.c @@ -72,10 +72,7 @@ struct wrbuffer_s /* This is the state of the global write buffer resource */ -static struct wrbuffer_s g_wrbuffer = -{ - SEM_INITIALIZER(CONFIG_NET_UDP_NWRBCHAINS) -}; +static struct wrbuffer_s g_wrbuffer; /**************************************************************************** * Public Functions @@ -98,6 +95,8 @@ void udp_wrbuffer_initialize(void) sq_init(&g_wrbuffer.freebuffers); + nxsem_init(&g_wrbuffer.sem, 0, CONFIG_NET_UDP_NWRBCHAINS); + for (i = 0; i < CONFIG_NET_UDP_NWRBCHAINS; i++) { sq_addfirst(&g_wrbuffer.buffers[i].wb_node, &g_wrbuffer.freebuffers);