From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
To: Dejin Zheng <zhengdejin5@gmail.com>
Cc: corbet@lwn.net, jarkko.nikula@linux.intel.com,
mika.westerberg@linux.intel.com, rric@kernel.org,
bhelgaas@google.com, wsa@kernel.org, linux-doc@vger.kernel.org,
linux-i2c@vger.kernel.org, linux-pci@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH v4 3/4] i2c: designware: Use the correct name of device-managed function
Date: Thu, 18 Feb 2021 17:35:20 +0200 [thread overview]
Message-ID: <YC6JONTb8QdREZ1h@smile.fi.intel.com> (raw)
In-Reply-To: <20210218150458.798347-4-zhengdejin5@gmail.com>
On Thu, Feb 18, 2021 at 11:04:57PM +0800, Dejin Zheng wrote:
> Use the new function pcim_alloc_irq_vectors() to allocate IRQ vectors,
> the pcim_alloc_irq_vectors() function, an explicit device-managed version
> of pci_alloc_irq_vectors(). If pcim_enable_device() has been called
> before, then pci_alloc_irq_vectors() is actually a device-managed
> function. It is used here as a device-managed function, So replace it
> with pcim_alloc_irq_vectors(). At the same time, Remove the
> pci_free_irq_vectors() function to simplify the error handling path.
> the freeing resources will take automatically when device is gone.
Acked-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
One side note below.
> Signed-off-by: Dejin Zheng <zhengdejin5@gmail.com>
> ---
> v3 -> v4:
> - add some commit comments.
> v2 -> v3:
> - simplify the error handling path.
> v1 -> v2:
> - Modify some commit messages.
> drivers/i2c/busses/i2c-designware-pcidrv.c | 15 ++++-----------
> 1 file changed, 4 insertions(+), 11 deletions(-)
>
> diff --git a/drivers/i2c/busses/i2c-designware-pcidrv.c b/drivers/i2c/busses/i2c-designware-pcidrv.c
> index 55c83a7a24f3..620b41e373b6 100644
> --- a/drivers/i2c/busses/i2c-designware-pcidrv.c
> +++ b/drivers/i2c/busses/i2c-designware-pcidrv.c
> @@ -219,7 +219,7 @@ static int i2c_dw_pci_probe(struct pci_dev *pdev,
> if (!dev)
> return -ENOMEM;
>
> - r = pci_alloc_irq_vectors(pdev, 1, 1, PCI_IRQ_ALL_TYPES);
> + r = pcim_alloc_irq_vectors(pdev, 1, 1, PCI_IRQ_ALL_TYPES);
> if (r < 0)
> return r;
>
> @@ -234,10 +234,8 @@ static int i2c_dw_pci_probe(struct pci_dev *pdev,
>
> if (controller->setup) {
> r = controller->setup(pdev, controller);
> - if (r) {
> - pci_free_irq_vectors(pdev);
> + if (r)
> return r;
> - }
> }
>
> i2c_dw_adjust_bus_speed(dev);
> @@ -246,10 +244,8 @@ static int i2c_dw_pci_probe(struct pci_dev *pdev,
> i2c_dw_acpi_configure(&pdev->dev);
>
> r = i2c_dw_validate_speed(dev);
> - if (r) {
> - pci_free_irq_vectors(pdev);
> + if (r)
> return r;
> - }
>
> i2c_dw_configure(dev);
>
> @@ -269,10 +265,8 @@ static int i2c_dw_pci_probe(struct pci_dev *pdev,
> adap->nr = controller->bus_num;
>
> r = i2c_dw_probe(dev);
> - if (r) {
> - pci_free_irq_vectors(pdev);
> + if (r)
> return r;
> - }
>
> pm_runtime_set_autosuspend_delay(&pdev->dev, 1000);
> pm_runtime_use_autosuspend(&pdev->dev);
> @@ -292,7 +286,6 @@ static void i2c_dw_pci_remove(struct pci_dev *pdev)
>
> i2c_del_adapter(&dev->adapter);
> devm_free_irq(&pdev->dev, dev->irq, dev);
> - pci_free_irq_vectors(pdev);
I'm wondering if we need explicit devm_free_irq() call now. If we don't, it can
be cleaned up in the separate change with a motivation that we got to device
managed PCI IRQ allocation and thus the ordering will be correct (needs a
double check!).
> }
>
> /* work with hotplug and coldplug */
> --
> 2.25.0
>
--
With Best Regards,
Andy Shevchenko
next prev parent reply other threads:[~2021-02-18 17:55 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-02-18 15:04 [PATCH v4 0/4] Introduce pcim_alloc_irq_vectors() Dejin Zheng
2021-02-18 15:04 ` [PATCH v4 1/4] PCI: " Dejin Zheng
2021-02-19 14:40 ` Robert Richter
2021-02-19 14:48 ` Robert Richter
2021-02-19 16:15 ` Krzysztof Wilczyński
2021-02-22 10:59 ` Robert Richter
2021-02-19 14:48 ` Andy Shevchenko
2021-02-19 15:01 ` Robert Richter
2021-02-19 16:46 ` Dejin Zheng
2021-02-22 10:56 ` Robert Richter
2021-02-22 15:14 ` Dejin Zheng
2021-02-23 8:02 ` Robert Richter
2021-02-23 14:14 ` Dejin Zheng
2021-02-25 9:33 ` Robert Richter
2021-02-26 15:22 ` Dejin Zheng
2021-02-18 15:04 ` [PATCH v4 2/4] Documentation: devres: Add pcim_alloc_irq_vectors() Dejin Zheng
2021-02-18 15:04 ` [PATCH v4 3/4] i2c: designware: Use the correct name of device-managed function Dejin Zheng
2021-02-18 15:35 ` Andy Shevchenko [this message]
2021-02-18 15:04 ` [PATCH v4 4/4] i2c: thunderx: " Dejin Zheng
2021-02-19 15:45 ` Robert Richter
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=YC6JONTb8QdREZ1h@smile.fi.intel.com \
--to=andriy.shevchenko@linux.intel.com \
--cc=bhelgaas@google.com \
--cc=corbet@lwn.net \
--cc=jarkko.nikula@linux.intel.com \
--cc=linux-doc@vger.kernel.org \
--cc=linux-i2c@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=mika.westerberg@linux.intel.com \
--cc=rric@kernel.org \
--cc=wsa@kernel.org \
--cc=zhengdejin5@gmail.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).