diff --git a/[refs] b/[refs] index fd4acc342ea5..e7ee945bdffe 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 411447019ab583c659600b0519db5658a2444f11 +refs/heads/master: d5e9b2c737ecaedae66e3dffdd0d92d2a189ec5c diff --git a/trunk/net/dccp/ackvec.c b/trunk/net/dccp/ackvec.c index b4ff14f3d4f8..5c76e81658cf 100644 --- a/trunk/net/dccp/ackvec.c +++ b/trunk/net/dccp/ackvec.c @@ -159,7 +159,17 @@ void dccp_ackvec_free(struct dccp_ackvec *av) { if (unlikely(av == NULL)) return; - WARN_ON(!list_empty(&av->dccpav_records)); + + if (!list_empty(&av->dccpav_records)) { + struct dccp_ackvec_record *avr, *next; + + list_for_each_entry_safe(avr, next, &av->dccpav_records, + dccpavr_node) { + list_del_init(&avr->dccpavr_node); + dccp_ackvec_record_delete(avr); + } + } + kmem_cache_free(dccp_ackvec_slab, av); }