From: thomas.petazzoni@free-electrons.com (Thomas Petazzoni)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCHv4 04/11] PCI: Introduce new MSI chip infrastructure
Date: Sat, 6 Jul 2013 00:08:16 +0200 [thread overview]
Message-ID: <20130706000816.3affe558@skate> (raw)
In-Reply-To: <CAErSpo4aodspFnC0uR87yYAgswQQdmU48uoX5NA43UZjbCpOuw@mail.gmail.com>
Dear Bjorn Helgaas,
On Fri, 5 Jul 2013 15:51:10 -0600, Bjorn Helgaas wrote:
> > ---
> > drivers/pci/msi.c | 22 ++++++++++++++++++++++
> > drivers/pci/probe.c | 1 +
> > include/linux/msi.h | 11 +++++++++++
> > include/linux/pci.h | 1 +
> > 4 files changed, 35 insertions(+)
> >
> > diff --git a/drivers/pci/msi.c b/drivers/pci/msi.c
> > index 289fbfd..62eb3d5 100644
> > --- a/drivers/pci/msi.c
> > +++ b/drivers/pci/msi.c
> > @@ -32,15 +32,37 @@ static int pci_msi_enable = 1;
> >
> > int __weak arch_setup_msi_irq(struct pci_dev *dev, struct msi_desc *desc)
> > {
> > + struct msi_chip *chip = dev->bus->msi;
> > +
> > + if (chip && chip->setup_irq) {
> > + int err;
> > +
> > + err = chip->setup_irq(chip, dev, desc);
> > + if (err < 0)
> > + return err;
> > +
> > + irq_set_chip_data(desc->irq, chip);
> > + return err;
> > + }
> > +
> > return -EINVAL;
>
> It's sub-optimal to indent the whole body of a function like this. I
> think this is a bit more readable:
>
> if (!chip || !chip->setup_irq)
> return -EINVAL
>
> err = chip->setup_irq(...);
> ...
> return err;
Right.
> The return value of ->setup_irq() (and hence of arch_setup_msi_irq())
> is a bit unclear. Apparently it can return negative values (errors)
> or positive values (not sure what they mean), or zero (again, not
> sure). A comment would clear this up.
Ok, I'll have to look into this. Maybe Thierry Redding can comment on
this.
> It might even be worth introducing a no-op chip with pointers to no-op
> functions so we don't have to do these checks ("if (chip &&
> chip->xxx)" everywhere. I'm not sure if there's a Linux consensus on
> that -- certainly there are many examples of code that *does* make
> these checks everywhere -- so I'll ack it either way.
Ok, I'll see if it makes the overall thing cleaner.
> > int __weak arch_msi_check_device(struct pci_dev *dev, int nvec, int type)
> > {
> > + struct msi_chip *chip = dev->bus->msi;
> > +
> > + if (chip && chip->check_device)
> > + return chip->check_device(chip, dev, nvec, type);
> > +
>
> These functions are poorly named. They give no clue what
> "check_device" means. Are we checking that it exists, that it
> supports some property, that it's enabled, ... ?
Maybe Thierry Redding can comment on this one?
Thanks,
Thomas
--
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
next prev parent reply other threads:[~2013-07-05 22:08 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-07-01 13:42 [PATCHv4 00/11] MSI support for Marvell EBU PCIe driver Thomas Petazzoni
2013-07-01 13:42 ` [PATCHv4 01/11] irqdomain: add irq_alloc_mapping() function Thomas Petazzoni
2013-07-01 13:42 ` [PATCHv4 02/11] pci: use weak functions for MSI arch-specific functions Thomas Petazzoni
2013-07-02 0:53 ` Michael Ellerman
2013-07-02 5:30 ` Thomas Petazzoni
2013-07-02 6:52 ` Michael Ellerman
2013-07-02 17:14 ` Bjorn Helgaas
2013-07-05 21:32 ` Bjorn Helgaas
2013-07-05 21:34 ` Bjorn Helgaas
2013-07-05 21:40 ` Thomas Petazzoni
2013-07-01 13:42 ` [PATCHv4 03/11] pci: remove ARCH_SUPPORTS_MSI kconfig option Thomas Petazzoni
2013-07-05 21:37 ` Bjorn Helgaas
2013-07-05 21:45 ` Thomas Petazzoni
2013-07-06 13:54 ` Jason Cooper
2013-07-06 15:40 ` Bjorn Helgaas
2013-07-06 16:17 ` Jason Cooper
2013-07-06 16:33 ` Thomas Petazzoni
2013-07-01 13:42 ` [PATCHv4 04/11] PCI: Introduce new MSI chip infrastructure Thomas Petazzoni
2013-07-05 21:51 ` Bjorn Helgaas
2013-07-05 22:08 ` Thomas Petazzoni [this message]
2013-07-08 14:51 ` Thomas Petazzoni
2013-07-09 5:05 ` Thierry Reding
2013-07-09 16:34 ` Bjorn Helgaas
2013-07-01 13:42 ` [PATCHv4 05/11] of: pci: add registry of MSI chips Thomas Petazzoni
2013-07-05 21:56 ` Bjorn Helgaas
2013-07-05 22:06 ` Thomas Petazzoni
2013-07-08 11:23 ` Thomas Petazzoni
2013-07-09 13:43 ` Rob Herring
2013-07-09 14:01 ` Thomas Petazzoni
2013-07-09 16:30 ` Bjorn Helgaas
2013-07-09 22:52 ` Rob Herring
2013-07-01 13:42 ` [PATCHv4 06/11] irqchip: armada-370-xp: properly request resources Thomas Petazzoni
2013-07-01 13:42 ` [PATCHv4 07/11] irqchip: armada-370-xp: implement MSI support Thomas Petazzoni
2013-07-01 13:42 ` [PATCHv4 08/11] arm: pci: add ->add_bus() and ->remove_bus() hooks to hw_pci Thomas Petazzoni
2013-07-01 13:42 ` [PATCHv4 09/11] arm: mvebu: the MPIC now provides MSI controller features Thomas Petazzoni
2013-07-01 13:42 ` [PATCHv4 10/11] pci: mvebu: add support for MSI Thomas Petazzoni
2013-07-05 21:59 ` Bjorn Helgaas
2013-07-01 13:42 ` [PATCHv4 11/11] arm: mvebu: link PCIe controllers to the MSI controller Thomas Petazzoni
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=20130706000816.3affe558@skate \
--to=thomas.petazzoni@free-electrons.com \
--cc=linux-arm-kernel@lists.infradead.org \
/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 NNTP newsgroup(s).