On Mon, Aug 12, 2019 at 4:59 PM Stephen Boyd <sboyd@xxxxxxxxxx> wrote: > > Quoting Brendan Higgins (2019-08-12 16:33:36) > > On Mon, Aug 12, 2019 at 03:55:19PM -0700, Stephen Boyd wrote: > > > Quoting Brendan Higgins (2019-08-12 11:24:06) > > > > +void string_stream_clear(struct string_stream *stream) > > > > +{ > > > > + struct string_stream_fragment *frag_container, *frag_container_safe; > > > > + > > > > + spin_lock(&stream->lock); > > > > + list_for_each_entry_safe(frag_container, > > > > + frag_container_safe, > > > > + &stream->fragments, > > > > + node) { > > > > + list_del(&frag_container->node); > > > > > > Shouldn't we free the allocation here? Otherwise, if some test is going > > > to add, add, clear, add, it's going to leak until the test is over? > > > > So basically this means I should add a kunit_kfree and > > kunit_resource_destroy (respective equivalents to devm_kfree, and > > devres_destroy) and use kunit_kfree here? > > > > Yes, or drop the API entirely? Does anything need this functionality? Drop the kunit_resource API? I would strongly prefer not to. string_stream uses it; the expectation stuff uses it via string stream; some of the tests in this patchset allocate memory as part of the test setup that uses it. The intention is that we would provide a kunit_res_* version of many (hopefully eventually most) common resources required by tests and it would be used in the same way that the devm_* stuff is. Nevertheless, I am fine adding the kunit_resource_destroy, etc. I just wanted to make sure I understood what you were asking.