diff options
Diffstat (limited to 'lib/kunit/resource.c')
-rw-r--r-- | lib/kunit/resource.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/lib/kunit/resource.c b/lib/kunit/resource.c index 8f8057aad78fd..b3ba0d98d89e3 100644 --- a/lib/kunit/resource.c +++ b/lib/kunit/resource.c @@ -98,11 +98,15 @@ EXPORT_SYMBOL_GPL(kunit_alloc_and_get_resource); void kunit_remove_resource(struct kunit *test, struct kunit_resource *res) { unsigned long flags; + bool was_linked; spin_lock_irqsave(&test->lock, flags); - list_del(&res->node); + was_linked = !list_empty(&res->node); + list_del_init(&res->node); spin_unlock_irqrestore(&test->lock, flags); - kunit_put_resource(res); + + if (was_linked) + kunit_put_resource(res); } EXPORT_SYMBOL_GPL(kunit_remove_resource); |