From: Bjorn Helgaas <bhelgaas@google.com>
To: Arnd Bergmann <arnd@arndb.de>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>,
linux-pci <linux-pci@vger.kernel.org>,
Catalin Marinas <Catalin.Marinas@arm.com>,
Will Deacon <Will.Deacon@arm.com>,
linaro-kernel <linaro-kernel@lists.linaro.org>,
LKML <linux-kernel@vger.kernel.org>,
"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
LAKML <linux-arm-kernel@lists.infradead.org>,
Tanmay Inamdar <tinamdar@apm.com>,
Grant Likely <grant.likely@secretlab.ca>
Subject: Re: [PATCH v7 4/6] pci: Introduce a domain number for pci_host_bridge.
Date: Thu, 10 Apr 2014 07:50:52 -0600 [thread overview]
Message-ID: <CAErSpo6u7kr+QdnhAXBo20izg-DNHR4zHT+kRvq34whp68RJCQ@mail.gmail.com> (raw)
In-Reply-To: <4506772.YFSM2m1eaP@wuerfel>
On Thu, Apr 10, 2014 at 2:00 AM, Arnd Bergmann <arnd@arndb.de> wrote:
> On Wednesday 09 April 2014 21:48:14 Bjorn Helgaas wrote:
>> On Wed, Apr 9, 2014 at 7:27 PM, Liviu Dudau <liviu@dudau.co.uk> wrote:
>> > On Wed, Apr 09, 2014 at 08:02:41AM -0600, Bjorn Helgaas wrote:
>> >> >> struct pci_host_bridge {
>> >> >> int domain;
>> >> >> int node;
>> >> >> struct device *dev;
>> >> >> struct pci_ops *ops;
>> >> >> struct list_head resources;
>> >> >> void *sysdata;
>> >> >> struct pci_bus *bus; /* filled in by core, not by arch */
>> >> >> ... /* other existing contents managed by core */
>> >> >> };
>> >> >>
>> >> >> struct pci_bus *pci_scan_host_bridge(struct pci_host_bridge *bridge);
>> >> >
>> >> > I'm really reluctant to give the arches more rope to hang themselves.
>> >>
>> >> If you mean the sysdata pointer is rope to hang themselves, I think it
>> >> would be great it we didn't need sysdata at all. But I think it would
>> >> be a huge amount of work to get rid of it completely, and keeping it
>> >> would let us work at that incrementally.
>> >
>> > Agree. But then your suggestion was to wrap sysdata inside another structure,
>> > which to me constitutes additional rope.
>>
>> I'll ponder this more, but I don't see your point here yet. The arch
>> already supplies a sysdata pointer to pci_scan_root_bus(), and we
>> stash it in every struct pci_bus already. My idea was just to pass it
>> in differently, as a structure member rather than a separate argument.
>> (And I'm not completely attached to my proposal; it was only to
>> illustrate my concern about the explosion of interfaces if we have to
>> add *_domain(), *_node(), etc.)
>
> As a minor variation of your suggestion, how about passing in a pointer
> to struct pci_host_bridge, and embed that within its own private
> structure? I think this is closer to how a lot of other subsystems
> do the abstraction.
I'm not sure I'm following you; you mean the arch-specific sysdata
structure would contain a pointer to struct pci_host_bridge?
I have to admit that I'm not up on how other subsystems handle this
sort of abstraction. Do you have any pointers to good examples that I
can study?
Bjorn
next prev parent reply other threads:[~2014-04-10 13:50 UTC|newest]
Thread overview: 76+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-03-14 15:34 [PATCH v7 0/6] Support for creating generic host_bridge from device tree Liviu Dudau
2014-03-14 15:34 ` [PATCH v7 1/6] pci: Introduce pci_register_io_range() helper function Liviu Dudau
[not found] ` <1394811272-1547-2-git-send-email-Liviu.Dudau-5wv7dgnIgG8@public.gmane.org>
2014-04-05 0:19 ` Bjorn Helgaas
2014-04-06 9:49 ` Benjamin Herrenschmidt
2014-04-07 8:35 ` Liviu Dudau
2014-04-07 9:13 ` Benjamin Herrenschmidt
2014-04-07 11:16 ` Arnd Bergmann
[not found] ` <20140405001953.GE15806-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2014-04-07 8:31 ` Liviu Dudau
2014-04-07 11:36 ` Arnd Bergmann
2014-04-07 13:42 ` Liviu Dudau
2014-04-07 17:58 ` Bjorn Helgaas
2014-04-08 9:50 ` Liviu Dudau
2014-04-08 10:22 ` Arnd Bergmann
2014-04-08 16:54 ` Bjorn Helgaas
2014-06-26 8:59 ` Catalin Marinas
2014-06-26 9:30 ` Liviu Dudau
[not found] ` <20140626093029.GB12812-2JSQmVVBSi7ZROr8t4l/smS4ubULX0JqMm0uRHvK7Nw@public.gmane.org>
2014-06-26 14:11 ` Catalin Marinas
2014-06-26 14:14 ` Will Deacon
2014-06-27 0:44 ` Rob Herring
2014-06-27 11:03 ` Arnd Bergmann
2014-06-27 12:49 ` Will Deacon
2014-06-27 13:16 ` Arnd Bergmann
2014-06-27 13:38 ` Catalin Marinas
2014-06-27 16:15 ` Rob Herring
2014-06-30 10:17 ` Will Deacon
[not found] ` <CAL_JsqKCHf6VXR3FFcBSu1xuhP54dYsAJCZwT-X9p5iTZAOJfQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-06-27 14:14 ` Catalin Marinas
2014-06-27 14:55 ` Bjorn Helgaas
2014-06-27 15:18 ` Liviu Dudau
2014-04-07 23:21 ` Bjorn Helgaas
2014-04-08 7:12 ` Arnd Bergmann
2014-04-08 9:49 ` Liviu Dudau
2014-04-08 10:11 ` Arnd Bergmann
2014-04-08 16:48 ` Bjorn Helgaas
2014-03-14 15:34 ` [PATCH v7 2/6] pci: OF: Fix the conversion of IO ranges into IO resources Liviu Dudau
2014-03-14 17:05 ` Arnd Bergmann
2014-03-14 17:19 ` Liviu Dudau
2014-03-14 18:46 ` Arnd Bergmann
2014-03-14 19:00 ` Liviu Dudau
[not found] ` <20140314190017.GA6457-2JSQmVVBSi7ZROr8t4l/smS4ubULX0JqMm0uRHvK7Nw@public.gmane.org>
2014-03-14 19:16 ` Arnd Bergmann
2014-03-17 13:41 ` Liviu Dudau
2014-03-14 15:34 ` [PATCH v7 3/6] pci: Create pci_host_bridge before its associated bus in pci_create_root_bus Liviu Dudau
2014-03-14 15:34 ` [PATCH v7 4/6] pci: Introduce a domain number for pci_host_bridge Liviu Dudau
2014-04-05 0:00 ` Bjorn Helgaas
2014-04-07 8:46 ` Liviu Dudau
2014-04-07 9:14 ` Benjamin Herrenschmidt
2014-04-07 10:07 ` Liviu Dudau
2014-04-07 22:44 ` Bjorn Helgaas
2014-04-08 10:20 ` Liviu Dudau
[not found] ` <20140408102043.GV17163-2JSQmVVBSi7ZROr8t4l/smS4ubULX0JqMm0uRHvK7Nw@public.gmane.org>
2014-04-08 16:28 ` Bjorn Helgaas
2014-04-09 12:07 ` Liviu Dudau
2014-04-09 14:02 ` Bjorn Helgaas
2014-04-09 14:08 ` Arnd Bergmann
2014-04-09 23:49 ` Benjamin Herrenschmidt
[not found] ` <CAErSpo4BmoYzf6GxOPRni=q563zhON57s7=5Hz=2Cf-X2ft-1A-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-04-10 1:27 ` Liviu Dudau
2014-04-10 3:48 ` Bjorn Helgaas
2014-04-10 8:00 ` Arnd Bergmann
2014-04-10 13:50 ` Bjorn Helgaas [this message]
[not found] ` <CAErSpo6u7kr+QdnhAXBo20izg-DNHR4zHT+kRvq34whp68RJCQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-04-10 14:07 ` Arnd Bergmann
2014-04-10 14:53 ` Liviu Dudau
2014-04-10 20:46 ` Arnd Bergmann
2014-04-11 5:01 ` Benjamin Herrenschmidt
2014-04-11 8:36 ` Arnd Bergmann
2014-04-11 9:16 ` Benjamin Herrenschmidt
2014-04-11 9:22 ` Liviu Dudau
2014-04-11 13:51 ` Arnd Bergmann
2014-07-01 16:37 ` Liviu Dudau
2014-07-04 14:57 ` Liviu Dudau
2014-07-08 1:11 ` Bjorn Helgaas
2014-07-08 10:21 ` Liviu Dudau
2014-03-14 15:34 ` [PATCH v7 5/6] pci: Export find_pci_host_bridge() function Liviu Dudau
2014-04-04 23:39 ` Bjorn Helgaas
2014-04-07 14:20 ` Liviu Dudau
2014-04-07 14:38 ` One Thousand Gnomes
2014-03-14 15:34 ` [PATCH v7 6/6] pci: Add support for creating a generic host_bridge from device tree Liviu Dudau
2014-04-08 12:57 ` Hanjun Guo
2014-04-08 13:09 ` Liviu Dudau
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=CAErSpo6u7kr+QdnhAXBo20izg-DNHR4zHT+kRvq34whp68RJCQ@mail.gmail.com \
--to=bhelgaas@google.com \
--cc=Catalin.Marinas@arm.com \
--cc=Will.Deacon@arm.com \
--cc=arnd@arndb.de \
--cc=benh@kernel.crashing.org \
--cc=devicetree@vger.kernel.org \
--cc=grant.likely@secretlab.ca \
--cc=linaro-kernel@lists.linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=tinamdar@apm.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 NNTP newsgroup(s).