linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
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

  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).