From: Jan Kiszka <[email protected]> We need to free the previously allocated rtskb to the kmem-cache if mapping fails. Otherwise, that resource leaks.
Signed-off-by: Jan Kiszka <[email protected]> --- kernel/drivers/net/stack/rtskb.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/kernel/drivers/net/stack/rtskb.c b/kernel/drivers/net/stack/rtskb.c index a19ef9f2dc..50611fba04 100644 --- a/kernel/drivers/net/stack/rtskb.c +++ b/kernel/drivers/net/stack/rtskb.c @@ -397,8 +397,10 @@ unsigned int rtskb_pool_extend(struct rtskb_pool *pool, skb->buf_end = skb->buf_start + SKB_DATA_ALIGN(RTSKB_SIZE) - 1; #endif - if (rtdev_map_rtskb(skb) < 0) + if (rtdev_map_rtskb(skb) < 0) { + kmem_cache_free(rtskb_slab_pool, skb); break; + } rtskb_queue_tail(&pool->queue, skb); -- 2.16.4
