From: Lukas Wunner <lukas@wunner.de>
To: Dan Williams <dan.j.williams@intel.com>
Cc: Ira Weiny <ira.weiny@intel.com>,
Jonathan Cameron <jonathan.cameron@huawei.com>,
Smita Koralahalli <Smita.KoralahalliChannabasappa@amd.com>,
Shiju Jose <shiju.jose@huawei.com>,
Yazen Ghannam <yazen.ghannam@amd.com>,
Davidlohr Bueso <dave@stgolabs.net>,
Dave Jiang <dave.jiang@intel.com>,
Alison Schofield <alison.schofield@intel.com>,
Vishal Verma <vishal.l.verma@intel.com>,
Ard Biesheuvel <ardb@kernel.org>,
linux-efi@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-cxl@vger.kernel.org, Bjorn Helgaas <bhelgaas@google.com>
Subject: Re: [PATCH v5 8/9] PCI: Define scoped based management functions
Date: Thu, 4 Jan 2024 08:02:35 +0100 [thread overview]
Message-ID: <20240104070235.GA13468@wunner.de> (raw)
In-Reply-To: <6596539c9729e_8dc6829476@dwillia2-xfh.jf.intel.com.notmuch>
On Wed, Jan 03, 2024 at 10:43:40PM -0800, Dan Williams wrote:
> Lukas Wunner wrote:
> > On Wed, Dec 20, 2023 at 04:17:35PM -0800, Ira Weiny wrote:
> > > --- a/include/linux/pci.h
> > > +++ b/include/linux/pci.h
> > > @@ -1170,6 +1170,7 @@ int pci_get_interrupt_pin(struct pci_dev *dev, struct pci_dev **bridge);
> > > u8 pci_common_swizzle(struct pci_dev *dev, u8 *pinp);
> > > struct pci_dev *pci_dev_get(struct pci_dev *dev);
> > > void pci_dev_put(struct pci_dev *dev);
> > > +DEFINE_FREE(pci_dev_put, struct pci_dev *, if (_T) pci_dev_put(_T))
> >
> > pci_dev_put() already performs a NULL pointer check internally.
> > Why duplicate it here?
>
> Greg asked the same for the introduction of __free(kvfree), and Peter
> clarified:
>
> http://lore.kernel.org/r/20230814161731.GN776869@hirez.programming.kicks-ass.net
>
> Essentially, that check is more for build-time than runtime because when
> the macro is expanded the compiler can notice scenarios where @pdev is
> set to NULL (likely by no_free_ptr()) and skip the call to pci_dev_put()
> altogether. pci_dev_put() also happens to be out-of-line, so saving a
> call when @pdev is NULL a small win in that respect as well.
Doubtful whether that's correct. The kernel is compiled with
-fno-delete-null-pointer-checks since commit a3ca86aea507
("Add '-fno-delete-null-pointer-checks' to gcc CFLAGS").
So these NULL pointer checks are generally not optimized away.
I've just responded to the discussion you've linked above:
https://lore.kernel.org/all/20240104065744.GA6055@wunner.de/
Thanks,
Lukas
next prev parent reply other threads:[~2024-01-04 7:02 UTC|newest]
Thread overview: 51+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-12-21 0:17 [PATCH v5 0/9] efi/cxl-cper: Report CPER CXL component events through trace events Ira Weiny
2023-12-21 0:17 ` [PATCH v5 1/9] cxl/trace: Pass uuid explicitly to event traces Ira Weiny
2024-01-08 12:56 ` Jonathan Cameron
2023-12-21 0:17 ` [PATCH v5 2/9] cxl/events: Promote CXL event structures to a core header Ira Weiny
2024-01-08 13:05 ` Jonathan Cameron
2023-12-21 0:17 ` [PATCH v5 3/9] cxl/events: Create common event UUID defines Ira Weiny
2024-01-08 13:07 ` Jonathan Cameron
2023-12-21 0:17 ` [PATCH v5 4/9] cxl/events: Remove passing a UUID to known event traces Ira Weiny
2024-01-08 13:23 ` Jonathan Cameron
2024-01-09 23:38 ` Dan Williams
2024-01-10 14:22 ` Jonathan Cameron
2023-12-21 0:17 ` [PATCH v5 5/9] cxl/events: Separate UUID from event structures Ira Weiny
2024-01-08 13:27 ` Jonathan Cameron
2023-12-21 0:17 ` [PATCH v5 6/9] cxl/events: Create a CXL event union Ira Weiny
2024-01-08 13:31 ` Jonathan Cameron
2023-12-21 0:17 ` [PATCH v5 7/9] acpi/ghes: Process CXL Component Events Ira Weiny
2024-01-08 13:41 ` Jonathan Cameron
2023-12-21 0:17 ` [PATCH v5 8/9] PCI: Define scoped based management functions Ira Weiny
2024-01-03 22:38 ` Dan Williams
2024-01-03 23:01 ` Bjorn Helgaas
2024-01-04 0:21 ` Dan Williams
2024-01-04 17:17 ` Ira Weiny
2024-01-04 18:32 ` Bjorn Helgaas
2024-01-04 18:59 ` Dan Williams
2024-01-04 21:46 ` Ira Weiny
2024-01-04 22:37 ` Bjorn Helgaas
2024-01-04 23:00 ` Ira Weiny
2024-01-04 6:05 ` Lukas Wunner
2024-01-04 6:43 ` Dan Williams
2024-01-04 7:02 ` Lukas Wunner [this message]
2024-01-04 7:37 ` Ard Biesheuvel
2024-01-04 17:41 ` Dan Williams
2024-01-08 13:44 ` Jonathan Cameron
2023-12-21 0:17 ` [PATCH v5 9/9] cxl/pci: Register for and process CPER events Ira Weiny
2024-01-02 15:14 ` Smita Koralahalli
2024-01-02 20:29 ` Ira Weiny
2024-01-03 22:08 ` Dan Williams
2024-01-04 18:31 ` Ira Weiny
2024-01-08 13:50 ` Jonathan Cameron
2024-01-09 23:59 ` Dan Williams
2024-01-04 22:55 ` [PATCH v5 0/9] efi/cxl-cper: Report CPER CXL component events through trace events Bjorn Helgaas
2024-01-08 16:58 ` Jonathan Cameron
2024-01-08 20:04 ` Smita Koralahalli
2024-01-09 2:08 ` Dan Williams
2024-01-09 2:32 ` Ira Weiny
2024-01-09 2:59 ` Dan Williams
2024-01-09 16:04 ` Jonathan Cameron
2024-01-09 20:49 ` Dan Williams
2024-01-09 23:30 ` Dan Williams
2024-01-09 23:31 ` Ard Biesheuvel
2024-01-10 14:24 ` Jonathan Cameron
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240104070235.GA13468@wunner.de \
--to=lukas@wunner.de \
--cc=Smita.KoralahalliChannabasappa@amd.com \
--cc=alison.schofield@intel.com \
--cc=ardb@kernel.org \
--cc=bhelgaas@google.com \
--cc=dan.j.williams@intel.com \
--cc=dave.jiang@intel.com \
--cc=dave@stgolabs.net \
--cc=ira.weiny@intel.com \
--cc=jonathan.cameron@huawei.com \
--cc=linux-cxl@vger.kernel.org \
--cc=linux-efi@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=shiju.jose@huawei.com \
--cc=vishal.l.verma@intel.com \
--cc=yazen.ghannam@amd.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.