Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1324333 > unrolled thread
| Started by | jakeo@microsoft.com |
|---|---|
| First post | 2016-02-02 18:50 +0100 |
| Last post | 2016-02-03 20:00 +0100 |
| Articles | 6 — 4 participants |
Back to article view | Back to linux.kernel
This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by
below is the oldest one visible, not the original post.
[PATCH RESEND 1/3] PCI: Add fwnode_handle to pci_sysdata jakeo@microsoft.com - 2016-02-02 18:50 +0100
Re: [PATCH RESEND 1/3] PCI: Add fwnode_handle to pci_sysdata Bjorn Helgaas <helgaas@kernel.org> - 2016-02-03 19:30 +0100
RE: [PATCH RESEND 1/3] PCI: Add fwnode_handle to pci_sysdata Jake Oshins <jakeo@microsoft.com> - 2016-02-03 19:40 +0100
Re: [PATCH RESEND 1/3] PCI: Add fwnode_handle to pci_sysdata Marc Zyngier <marc.zyngier@arm.com> - 2016-02-03 20:00 +0100
RE: [PATCH RESEND 1/3] PCI: Add fwnode_handle to pci_sysdata Jake Oshins <jakeo@microsoft.com> - 2016-02-04 00:20 +0100
Re: [PATCH RESEND 1/3] PCI: Add fwnode_handle to pci_sysdata Bjorn Helgaas <helgaas@kernel.org> - 2016-02-03 20:00 +0100
| From | jakeo@microsoft.com |
|---|---|
| Date | 2016-02-02 18:50 +0100 |
| Subject | [PATCH RESEND 1/3] PCI: Add fwnode_handle to pci_sysdata |
| Message-ID | <qXNft-6ut-23@gated-at.bofh.it> |
From: Jake Oshins <jakeo@microsoft.com>
This patch adds an fwnode_handle to struct pci_sysdata, which is
used by the next patch in the series when trying to locate an
IRQ domain associated with a root PCI bus.
Signed-off-by: Jake Oshins <jakeo@microsoft.com>
---
arch/x86/include/asm/pci.h | 15 +++++++++++++++
drivers/pci/probe.c | 1 +
include/linux/pci.h | 4 ++++
3 files changed, 20 insertions(+)
diff --git a/arch/x86/include/asm/pci.h b/arch/x86/include/asm/pci.h
index 4625943..6fc3c7c 100644
--- a/arch/x86/include/asm/pci.h
+++ b/arch/x86/include/asm/pci.h
@@ -20,6 +20,9 @@ struct pci_sysdata {
#ifdef CONFIG_X86_64
void *iommu; /* IOMMU private data */
#endif
+#ifdef CONFIG_PCI_MSI_IRQ_DOMAIN
+ void *fwnode; /* IRQ domain for MSI assignment */
+#endif
};
extern int pci_routeirq;
@@ -32,6 +35,7 @@ extern int noioapicreroute;
static inline int pci_domain_nr(struct pci_bus *bus)
{
struct pci_sysdata *sd = bus->sysdata;
+
return sd->domain;
}
@@ -41,6 +45,17 @@ static inline int pci_proc_domain(struct pci_bus *bus)
}
#endif
+#ifdef CONFIG_PCI_MSI_IRQ_DOMAIN
+static inline void *_pci_root_bus_fwnode(struct pci_bus *bus)
+{
+ struct pci_sysdata *sd = bus->sysdata;
+
+ return sd->fwnode;
+}
+
+#define pci_root_bus_fwnode _pci_root_bus_fwnode
+#endif
+
/* Can be used to override the logic in pci_scan_bus for skipping
already-configured bus numbers - to be used for buggy BIOSes
or architectures with incomplete PCI setup by the loader */
diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c
index 6d7ab9b..b207e74 100644
--- a/drivers/pci/probe.c
+++ b/drivers/pci/probe.c
@@ -15,6 +15,7 @@
#include <linux/pci-aspm.h>
#include <linux/aer.h>
#include <linux/acpi.h>
+#include <linux/irqdomain.h>
#include <asm-generic/pci-bridge.h>
#include "pci.h"
diff --git a/include/linux/pci.h b/include/linux/pci.h
index 27df4a6..cd05a8e 100644
--- a/include/linux/pci.h
+++ b/include/linux/pci.h
@@ -1515,6 +1515,10 @@ static inline int pci_get_new_domain_nr(void) { return -ENOSYS; }
#include <asm/pci.h>
+#ifndef pci_root_bus_fwnode
+#define pci_root_bus_fwnode(bus) ((void)(bus), NULL)
+#endif
+
/* these helpers provide future and backwards compatibility
* for accessing popular PCI BAR info */
#define pci_resource_start(dev, bar) ((dev)->resource[(bar)].start)
--
1.9.1
[toc] | [next] | [standalone]
| From | Bjorn Helgaas <helgaas@kernel.org> |
|---|---|
| Date | 2016-02-03 19:30 +0100 |
| Message-ID | <qYalH-5xv-5@gated-at.bofh.it> |
| In reply to | #1324333 |
Hi Jake,
On Tue, Feb 02, 2016 at 05:41:41PM +0000, jakeo@microsoft.com wrote:
> From: Jake Oshins <jakeo@microsoft.com>
>
> This patch adds an fwnode_handle to struct pci_sysdata, which is
> used by the next patch in the series when trying to locate an
> IRQ domain associated with a root PCI bus.
>
> Signed-off-by: Jake Oshins <jakeo@microsoft.com>
> ---
> arch/x86/include/asm/pci.h | 15 +++++++++++++++
> drivers/pci/probe.c | 1 +
> include/linux/pci.h | 4 ++++
> 3 files changed, 20 insertions(+)
>
> diff --git a/arch/x86/include/asm/pci.h b/arch/x86/include/asm/pci.h
> index 4625943..6fc3c7c 100644
> --- a/arch/x86/include/asm/pci.h
> +++ b/arch/x86/include/asm/pci.h
> @@ -20,6 +20,9 @@ struct pci_sysdata {
> #ifdef CONFIG_X86_64
> void *iommu; /* IOMMU private data */
> #endif
> +#ifdef CONFIG_PCI_MSI_IRQ_DOMAIN
> + void *fwnode; /* IRQ domain for MSI assignment */
> +#endif
> };
>
> extern int pci_routeirq;
> @@ -32,6 +35,7 @@ extern int noioapicreroute;
> static inline int pci_domain_nr(struct pci_bus *bus)
> {
> struct pci_sysdata *sd = bus->sysdata;
> +
> return sd->domain;
> }
>
> @@ -41,6 +45,17 @@ static inline int pci_proc_domain(struct pci_bus *bus)
> }
> #endif
>
> +#ifdef CONFIG_PCI_MSI_IRQ_DOMAIN
> +static inline void *_pci_root_bus_fwnode(struct pci_bus *bus)
> +{
> + struct pci_sysdata *sd = bus->sysdata;
> +
> + return sd->fwnode;
> +}
> +
> +#define pci_root_bus_fwnode _pci_root_bus_fwnode
> +#endif
> +
> /* Can be used to override the logic in pci_scan_bus for skipping
> already-configured bus numbers - to be used for buggy BIOSes
> or architectures with incomplete PCI setup by the loader */
> diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c
> index 6d7ab9b..b207e74 100644
> --- a/drivers/pci/probe.c
> +++ b/drivers/pci/probe.c
> @@ -15,6 +15,7 @@
> #include <linux/pci-aspm.h>
> #include <linux/aer.h>
> #include <linux/acpi.h>
> +#include <linux/irqdomain.h>
You're not adding a use of anything in irqdomain.h. It looks like
this hunk should be moved to the second patch.
> #include <asm-generic/pci-bridge.h>
> #include "pci.h"
>
> diff --git a/include/linux/pci.h b/include/linux/pci.h
> index 27df4a6..cd05a8e 100644
> --- a/include/linux/pci.h
> +++ b/include/linux/pci.h
> @@ -1515,6 +1515,10 @@ static inline int pci_get_new_domain_nr(void) { return -ENOSYS; }
>
> #include <asm/pci.h>
>
> +#ifndef pci_root_bus_fwnode
> +#define pci_root_bus_fwnode(bus) ((void)(bus), NULL)
Huh, interesting. This is new for me; I guess the idea is that we at
least evaluate "bus" even when pci_root_bus_fwnode isn't defined, so
the compiler can catch egregious errors?
> +#endif
> +
> /* these helpers provide future and backwards compatibility
> * for accessing popular PCI BAR info */
> #define pci_resource_start(dev, bar) ((dev)->resource[(bar)].start)
> --
> 1.9.1
>
[toc] | [prev] | [next] | [standalone]
| From | Jake Oshins <jakeo@microsoft.com> |
|---|---|
| Date | 2016-02-03 19:40 +0100 |
| Message-ID | <qYavp-5AG-35@gated-at.bofh.it> |
| In reply to | #1325803 |
> -----Original Message-----
> From: Bjorn Helgaas [mailto:helgaas@kernel.org]
> Sent: Wednesday, February 3, 2016 10:25 AM
> To: Jake Oshins <jakeo@microsoft.com>
> Cc: gregkh@linuxfoundation.org; KY Srinivasan <kys@microsoft.com>; linux-
> kernel@vger.kernel.org; devel@linuxdriverproject.org; Haiyang Zhang
> <haiyangz@microsoft.com>; marc.zyngier@arm.com;
> bhelgaas@google.com; linux-pci@vger.kernel.org
> Subject: Re: [PATCH RESEND 1/3] PCI: Add fwnode_handle to pci_sysdata
>
> Hi Jake,
>
> On Tue, Feb 02, 2016 at 05:41:41PM +0000, jakeo@microsoft.com wrote:
> > From: Jake Oshins <jakeo@microsoft.com>
> >
> > This patch adds an fwnode_handle to struct pci_sysdata, which is used
> > by the next patch in the series when trying to locate an IRQ domain
> > associated with a root PCI bus.
> >
> > Signed-off-by: Jake Oshins <jakeo@microsoft.com>
> > ---
> > arch/x86/include/asm/pci.h | 15 +++++++++++++++
> > drivers/pci/probe.c | 1 +
> > include/linux/pci.h | 4 ++++
> > 3 files changed, 20 insertions(+)
> >
> > diff --git a/arch/x86/include/asm/pci.h b/arch/x86/include/asm/pci.h
> > index 4625943..6fc3c7c 100644
> > --- a/arch/x86/include/asm/pci.h
> > +++ b/arch/x86/include/asm/pci.h
> > @@ -20,6 +20,9 @@ struct pci_sysdata { #ifdef CONFIG_X86_64
> > void *iommu; /* IOMMU private data */
> > #endif
> > +#ifdef CONFIG_PCI_MSI_IRQ_DOMAIN
> > + void *fwnode; /* IRQ domain for MSI assignment */
> > +#endif
> > };
> >
> > extern int pci_routeirq;
> > @@ -32,6 +35,7 @@ extern int noioapicreroute; static inline int
> > pci_domain_nr(struct pci_bus *bus) {
> > struct pci_sysdata *sd = bus->sysdata;
> > +
> > return sd->domain;
> > }
> >
> > @@ -41,6 +45,17 @@ static inline int pci_proc_domain(struct pci_bus
> > *bus) } #endif
> >
> > +#ifdef CONFIG_PCI_MSI_IRQ_DOMAIN
> > +static inline void *_pci_root_bus_fwnode(struct pci_bus *bus) {
> > + struct pci_sysdata *sd = bus->sysdata;
> > +
> > + return sd->fwnode;
> > +}
> > +
> > +#define pci_root_bus_fwnode _pci_root_bus_fwnode
> > +#endif
> > +
> > /* Can be used to override the logic in pci_scan_bus for skipping
> > already-configured bus numbers - to be used for buggy BIOSes
> > or architectures with incomplete PCI setup by the loader */ diff
> > --git a/drivers/pci/probe.c b/drivers/pci/probe.c index
> > 6d7ab9b..b207e74 100644
> > --- a/drivers/pci/probe.c
> > +++ b/drivers/pci/probe.c
> > @@ -15,6 +15,7 @@
> > #include <linux/pci-aspm.h>
> > #include <linux/aer.h>
> > #include <linux/acpi.h>
> > +#include <linux/irqdomain.h>
>
> You're not adding a use of anything in irqdomain.h. It looks like this hunk
> should be moved to the second patch.
Wil do.
>
> > #include <asm-generic/pci-bridge.h>
> > #include "pci.h"
> >
> > diff --git a/include/linux/pci.h b/include/linux/pci.h index
> > 27df4a6..cd05a8e 100644
> > --- a/include/linux/pci.h
> > +++ b/include/linux/pci.h
> > @@ -1515,6 +1515,10 @@ static inline int pci_get_new_domain_nr(void) {
> > return -ENOSYS; }
> >
> > #include <asm/pci.h>
> >
> > +#ifndef pci_root_bus_fwnode
> > +#define pci_root_bus_fwnode(bus) ((void)(bus), NULL)
>
> Huh, interesting. This is new for me; I guess the idea is that we at least
> evaluate "bus" even when pci_root_bus_fwnode isn't defined, so the
> compiler can catch egregious errors?
>
This was a suggestion by Mark Zyngier. It made the non-x86 architectures build benignly. If you'd like it done differently, I'm open to suggestion.
Thanks,
Jake Oshins
[toc] | [prev] | [next] | [standalone]
| From | Marc Zyngier <marc.zyngier@arm.com> |
|---|---|
| Date | 2016-02-03 20:00 +0100 |
| Message-ID | <qYaOJ-5HS-1@gated-at.bofh.it> |
| In reply to | #1325820 |
On 03/02/16 18:51, Bjorn Helgaas wrote:
> On Wed, Feb 03, 2016 at 06:32:20PM +0000, Jake Oshins wrote:
>>> -----Original Message-----
>>> From: Bjorn Helgaas [mailto:helgaas@kernel.org]
>>> Sent: Wednesday, February 3, 2016 10:25 AM
>>> To: Jake Oshins <jakeo@microsoft.com>
>>> Cc: gregkh@linuxfoundation.org; KY Srinivasan <kys@microsoft.com>; linux-
>>> kernel@vger.kernel.org; devel@linuxdriverproject.org; Haiyang Zhang
>>> <haiyangz@microsoft.com>; marc.zyngier@arm.com;
>>> bhelgaas@google.com; linux-pci@vger.kernel.org
>>> Subject: Re: [PATCH RESEND 1/3] PCI: Add fwnode_handle to pci_sysdata
>>>
>>> Hi Jake,
>>>
>>> On Tue, Feb 02, 2016 at 05:41:41PM +0000, jakeo@microsoft.com wrote:
>
>>>> diff --git a/include/linux/pci.h b/include/linux/pci.h index
>>>> 27df4a6..cd05a8e 100644
>>>> --- a/include/linux/pci.h
>>>> +++ b/include/linux/pci.h
>>>> @@ -1515,6 +1515,10 @@ static inline int pci_get_new_domain_nr(void) {
>>>> return -ENOSYS; }
>>>>
>>>> #include <asm/pci.h>
>>>>
>>>> +#ifndef pci_root_bus_fwnode
>>>> +#define pci_root_bus_fwnode(bus) ((void)(bus), NULL)
>>>
>>> Huh, interesting. This is new for me; I guess the idea is that we at least
>>> evaluate "bus" even when pci_root_bus_fwnode isn't defined, so the
>>> compiler can catch egregious errors?
>>>
>>
>> This was a suggestion by Mark Zyngier. It made the non-x86 architectures build benignly. If you'd like it done differently, I'm open to suggestion.
I don't remember suggesting the use of the comma operator, but just to
check that pci_root_bus_fwnode wasn't previously defined.
> Something like "#define pci_root_bus_fwnode(bus) NULL" would be
> typical. What I'm curious about is the use of the comma operator.
> I'm not opposed to it; I'm just trying to understand why it makes a
> difference.
I guess it flags the variable as used, and prevents an overly sensitive
compiler from being loud and obnoxious... Just a guess though.
M.
--
Jazz is not dead. It just smells funny...
[toc] | [prev] | [next] | [standalone]
| From | Jake Oshins <jakeo@microsoft.com> |
|---|---|
| Date | 2016-02-04 00:20 +0100 |
| Message-ID | <qYeSm-jz-17@gated-at.bofh.it> |
| In reply to | #1325853 |
> -----Original Message----- > From: Marc Zyngier [mailto:marc.zyngier@arm.com] > Sent: Wednesday, February 3, 2016 10:57 AM > To: Bjorn Helgaas <helgaas@kernel.org>; Jake Oshins > <jakeo@microsoft.com> > Cc: gregkh@linuxfoundation.org; KY Srinivasan <kys@microsoft.com>; linux- > kernel@vger.kernel.org; devel@linuxdriverproject.org; Haiyang Zhang > <haiyangz@microsoft.com>; bhelgaas@google.com; linux- > pci@vger.kernel.org > Subject: Re: [PATCH RESEND 1/3] PCI: Add fwnode_handle to pci_sysdata > > On 03/02/16 18:51, Bjorn Helgaas wrote: > > On Wed, Feb 03, 2016 at 06:32:20PM +0000, Jake Oshins wrote: > >>> -----Original Message----- > >>> From: Bjorn Helgaas [mailto:helgaas@kernel.org] > >>> Sent: Wednesday, February 3, 2016 10:25 AM > >>> To: Jake Oshins <jakeo@microsoft.com> [snip] > >>>> > >>>> +#ifndef pci_root_bus_fwnode > >>>> +#define pci_root_bus_fwnode(bus) ((void)(bus), NULL) > >>> > >>> Huh, interesting. This is new for me; I guess the idea is that we at least > >>> evaluate "bus" even when pci_root_bus_fwnode isn't defined, so the > >>> compiler can catch egregious errors? > >>> > >> > >> This was a suggestion by Mark Zyngier. It made the non-x86 architectures > build benignly. If you'd like it done differently, I'm open to suggestion. > > I don't remember suggesting the use of the comma operator, but just to > check that pci_root_bus_fwnode wasn't previously defined. > > > Something like "#define pci_root_bus_fwnode(bus) NULL" would be > > typical. What I'm curious about is the use of the comma operator. > > I'm not opposed to it; I'm just trying to understand why it makes a > > difference. > > I guess it flags the variable as used, and prevents an overly sensitive > compiler from being loud and obnoxious... Just a guess though. > > M. > -- I was just copying the form that was in the code that Marc pointed out, somewhere else. I have no particular attachment to this construct. Honestly, since I'm still relatively new to the Linux codebase, I just assumed that was a common form that I should follow suit on. If you tell me that the simpler NULL is more typical, I prefer that. I'll simplify this when I resend the patch series. Thanks, Jake
[toc] | [prev] | [next] | [standalone]
| From | Bjorn Helgaas <helgaas@kernel.org> |
|---|---|
| Date | 2016-02-03 20:00 +0100 |
| Message-ID | <qYaOJ-5HS-3@gated-at.bofh.it> |
| In reply to | #1325820 |
On Wed, Feb 03, 2016 at 06:32:20PM +0000, Jake Oshins wrote:
> > -----Original Message-----
> > From: Bjorn Helgaas [mailto:helgaas@kernel.org]
> > Sent: Wednesday, February 3, 2016 10:25 AM
> > To: Jake Oshins <jakeo@microsoft.com>
> > Cc: gregkh@linuxfoundation.org; KY Srinivasan <kys@microsoft.com>; linux-
> > kernel@vger.kernel.org; devel@linuxdriverproject.org; Haiyang Zhang
> > <haiyangz@microsoft.com>; marc.zyngier@arm.com;
> > bhelgaas@google.com; linux-pci@vger.kernel.org
> > Subject: Re: [PATCH RESEND 1/3] PCI: Add fwnode_handle to pci_sysdata
> >
> > Hi Jake,
> >
> > On Tue, Feb 02, 2016 at 05:41:41PM +0000, jakeo@microsoft.com wrote:
> > > diff --git a/include/linux/pci.h b/include/linux/pci.h index
> > > 27df4a6..cd05a8e 100644
> > > --- a/include/linux/pci.h
> > > +++ b/include/linux/pci.h
> > > @@ -1515,6 +1515,10 @@ static inline int pci_get_new_domain_nr(void) {
> > > return -ENOSYS; }
> > >
> > > #include <asm/pci.h>
> > >
> > > +#ifndef pci_root_bus_fwnode
> > > +#define pci_root_bus_fwnode(bus) ((void)(bus), NULL)
> >
> > Huh, interesting. This is new for me; I guess the idea is that we at least
> > evaluate "bus" even when pci_root_bus_fwnode isn't defined, so the
> > compiler can catch egregious errors?
> >
>
> This was a suggestion by Mark Zyngier. It made the non-x86 architectures build benignly. If you'd like it done differently, I'm open to suggestion.
Something like "#define pci_root_bus_fwnode(bus) NULL" would be
typical. What I'm curious about is the use of the comma operator.
I'm not opposed to it; I'm just trying to understand why it makes a
difference.
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web