diff --git a/net/tcp/tcp_wrbuffer.c b/net/tcp/tcp_wrbuffer.c index 686f025503..1ff8cf519b 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 f6a0fd9324..3ae627a774 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);