From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-11.6 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS,T_DKIMWL_WL_MED,USER_IN_DEF_DKIM_WL autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id A0335C282CE for ; Tue, 4 Jun 2019 23:35:15 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 7561B206B8 for ; Tue, 4 Jun 2019 23:35:15 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="n7729tdV" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726179AbfFDXfO (ORCPT ); Tue, 4 Jun 2019 19:35:14 -0400 Received: from mail-lf1-f67.google.com ([209.85.167.67]:45055 "EHLO mail-lf1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726502AbfFDXfN (ORCPT ); Tue, 4 Jun 2019 19:35:13 -0400 Received: by mail-lf1-f67.google.com with SMTP id r15so17700473lfm.11 for ; Tue, 04 Jun 2019 16:35:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=yUmGpFNz6fygF8JqTGIH7xCmXTGijTn5zshzVeIRyeU=; b=n7729tdVd3jiiQzxyuAeBqRs5Gxta2lFj3c+5zHccv1uoJt2AmyWyIDUmg3JxWlagm M7C85QUZ1yXvYp4uRNAObTU5YeMqh3a1wo5N9AJPUoMbdbPZFo/1bO/N1rShEEWiWI/v Q5BI60V/NuZ52yrsR6VbaGcuc0c695fmqthfBEC0S0U3y4gF1Q08eneEUDigrRf9hMyB iQhbHsK661Yo5QjuEON5MQg+g2Pkp/H8jIb/fz9zGMrFKEuNEFNEvKupY/jJ8Vu91CzS 9bZX4E1E7GESuDjTm/u2NlMe8YNUYbmht0QRBeMkkioK7eHniavWPW592kDJkctLp/+R YphA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=yUmGpFNz6fygF8JqTGIH7xCmXTGijTn5zshzVeIRyeU=; b=i2Asw0zpZDZIBtomrKvBoGg9Hq9PJefDvi0vdRT8bn6XnuPVZPje6CCl+rPZ/1BoXk 9OxHkiA9MNChLCeqyqD27shmNTNLHmt6ODKiDfCtcAlFqyQIfjtxXHS4PpEHhgAaYGCN lwXUqIFhuTOvFPjNv70ENvFDqBnyUeLwIwLsJLVDk9J9SgxSNXRyG38QwS+TasLRnh7S 9AWqRr8NDbT7pCp5Wk+lCgGXUqjcJ9xQk3T34IjKs/KND9lrQdxLP0pf0u/9f6FoMhUn P9aWS+TN6Nc8Vi1Zh+Fsn5znEyWERpmQqW9XRDOUuoSqDDa67TCabnq7z+KNpKmPkoZX 3t7w== X-Gm-Message-State: APjAAAXcsdXg3wiRii9ujHaTwPxi0O7UhmH4jmcLvVQOgkrouUv8am6p UuEIW1bd269CRRExAL7YXtk9hOYw+5g/liGZG+BeYQ== X-Google-Smtp-Source: APXvYqxFVfsY2uUyOvHDHQWsWPz6JVCPCIp44WWY+H6aJDJ/TaoNNgHz4dGto/MoXWH1ptk3ODVootrUgExaXb/yDLQ= X-Received: by 2002:a19:7110:: with SMTP id m16mr18059760lfc.4.1559691310771; Tue, 04 Jun 2019 16:35:10 -0700 (PDT) MIME-Version: 1.0 References: <20190514221711.248228-1-brendanhiggins@google.com> <20190514221711.248228-3-brendanhiggins@google.com> <20190517003847.0962F2082E@mail.kernel.org> In-Reply-To: <20190517003847.0962F2082E@mail.kernel.org> From: Brendan Higgins Date: Tue, 4 Jun 2019 16:34:58 -0700 Message-ID: Subject: Re: [PATCH v4 02/18] kunit: test: add test resource management API To: Stephen Boyd Cc: Frank Rowand , Greg KH , Josh Poimboeuf , Kees Cook , Kieran Bingham , Luis Chamberlain , Peter Zijlstra , Rob Herring , shuah , "Theodore Ts'o" , Masahiro Yamada , devicetree , dri-devel , kunit-dev@googlegroups.com, "open list:DOCUMENTATION" , linux-fsdevel@vger.kernel.org, linux-kbuild , Linux Kernel Mailing List , "open list:KERNEL SELFTEST FRAMEWORK" , linux-nvdimm , linux-um@lists.infradead.org, Sasha Levin , "Bird, Timothy" , Amir Goldstein , Dan Carpenter , Daniel Vetter , Jeff Dike , Joel Stanley , Julia Lawall , Kevin Hilman , Knut Omang , Logan Gunthorpe , Michael Ellerman , Petr Mladek , Randy Dunlap , Richard Weinberger , David Rientjes , Steven Rostedt , wfg@linux.intel.com Content-Type: text/plain; charset="UTF-8" Sender: linux-fsdevel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-fsdevel@vger.kernel.org On Thu, May 16, 2019 at 5:38 PM Stephen Boyd wrote: > > Quoting Brendan Higgins (2019-05-14 15:16:55) > > diff --git a/kunit/test.c b/kunit/test.c > > index 86f65ba2bcf92..a15e6f8c41582 100644 > > --- a/kunit/test.c > > +++ b/kunit/test.c > [..] > > + > > +void *kunit_kmalloc(struct kunit *test, size_t size, gfp_t gfp) > > +{ > > + struct kunit_kmalloc_params params; > > + struct kunit_resource *res; > > + > > + params.size = size; > > + params.gfp = gfp; > > + > > + res = kunit_alloc_resource(test, > > + kunit_kmalloc_init, > > + kunit_kmalloc_free, > > + ¶ms); > > + > > + if (res) > > + return res->allocation; > > + else > > + return NULL; > > Can be written as > > if (res) > return .... > return > > and some static analysis tools prefer this. Sounds reasonable, will fix in next revision. > > +} > > + > > +void kunit_cleanup(struct kunit *test) > > +{ > > + struct kunit_resource *resource, *resource_safe; > > + unsigned long flags; > > + > > + spin_lock_irqsave(&test->lock, flags); > > Ah ok, test->lock is protecting everything now? Does it need to be a > spinlock, or can it be a mutex? No it needs to be a spin lock. There are some conceivable circumstances where the test object can be accessed by code in which it isn't safe to sleep. > > + list_for_each_entry_safe(resource, > > + resource_safe, > > + &test->resources, > > + node) { > > + kunit_free_resource(test, resource); > > + } > > + spin_unlock_irqrestore(&test->lock, flags); > > +} > > +