All of lore.kernel.org
 help / color / mirror / Atom feed
From: Yinghai Lu <yinghai@kernel.org>
To: Yijing Wang <wangyijing@huawei.com>
Cc: Bjorn Helgaas <bhelgaas@google.com>,
	Jiang Liu <jiang.liu@linux.intel.com>,
	"linux-pci@vger.kernel.org" <linux-pci@vger.kernel.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Marc Zyngier <marc.zyngier@arm.com>,
	"linux-arm-kernel@lists.infradead.org"
	<linux-arm-kernel@lists.infradead.org>,
	Russell King <linux@arm.linux.org.uk>,
	the arch/x86 maintainers <x86@kernel.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Rusty Russell <rusty@rustcorp.com.au>,
	Tony Luck <tony.luck@intel.com>,
	"linux-ia64@vger.kernel.org" <linux-ia64@vger.kernel.org>,
	"David S. Miller" <davem@davemloft.net>,
	Guan Xuetao <gxt@mprc.pku.edu.cn>,
	linux-alpha@vger.kernel.org, linux-m68k@lists.linux-m68k.org,
	Liviu Dudau <liviu@dudau.co.uk>, Arnd Bergmann <arnd@arndb.de>,
	Geert Uytterhoeven <geert@linux-m68k.org>
Subject: Re: [PATCH v8 10/30] PCI: Introduce pci_host_bridge_list to manage host bridges
Date: Thu, 26 Mar 2015 09:31:58 -0700	[thread overview]
Message-ID: <CAE9FiQVgXfViM22qhB-sKDSTtnhvLDMk0NTiK_G88UogVMuM_w__48576.3466022492$1427387544$gmane$org@mail.gmail.com> (raw)
In-Reply-To: <1427168064-8657-11-git-send-email-wangyijing@huawei.com>

[-- Attachment #1: Type: text/plain, Size: 493 bytes --]

On Mon, Mar 23, 2015 at 8:34 PM, Yijing Wang <wangyijing@huawei.com> wrote:
> Introduce pci_host_bridge_list to manage pci host
> bridges in system, this make us have the ability
> to check whether the new host would conflict with
> existing one. Then we could remove bus alreay exist
> check in __pci_create_root_bus().

Can we use bus_type instead?
Then we can use bus_find_device for the host_bridge enumeration.

Please refer the patches that I sent out couple years ago.

Thanks

Yinghai

[-- Attachment #2: pci_host_bridge_bus_type_1.patch --]
[-- Type: text/x-patch, Size: 2397 bytes --]

Subject: [PATCH] PCI: Add dummy bus_type for pci_host_bridge

Need to use it for looping registered host_bridges, and kill
pci_root_buses list later.

Signed-off-by: Yinghai Lu <yinghai@kernel.org>

---
 drivers/pci/pci-driver.c |   10 ++++++++++
 drivers/pci/probe.c      |    1 +
 include/linux/pci.h      |    2 ++
 3 files changed, 13 insertions(+)

Index: linux-2.6/include/linux/pci.h
===================================================================
--- linux-2.6.orig/include/linux/pci.h
+++ linux-2.6/include/linux/pci.h
@@ -735,6 +735,7 @@ enum pcie_bus_config_types {
 
 extern enum pcie_bus_config_types pcie_bus_config;
 
+extern struct bus_type pci_host_bridge_bus_type;
 extern struct bus_type pci_bus_type;
 
 /* Do NOT directly access these two variables, unless you are arch-specific PCI
@@ -808,6 +809,7 @@ void pci_stop_root_bus(struct pci_bus *b
 void pci_remove_root_bus(struct pci_bus *bus);
 void pci_setup_cardbus(struct pci_bus *bus);
 void pci_sort_breadthfirst(void);
+#define dev_is_pci_host_bridge(d) ((d)->bus == &pci_host_bridge_bus_type)
 #define dev_is_pci(d) ((d)->bus == &pci_bus_type)
 #define dev_is_pf(d) ((dev_is_pci(d) ? to_pci_dev(d)->is_physfn : false))
 #define dev_num_vf(d) ((dev_is_pci(d) ? pci_num_vf(to_pci_dev(d)) : 0))
Index: linux-2.6/drivers/pci/pci-driver.c
===================================================================
--- linux-2.6.orig/drivers/pci/pci-driver.c
+++ linux-2.6/drivers/pci/pci-driver.c
@@ -1408,6 +1408,16 @@ struct bus_type pci_bus_type = {
 };
 EXPORT_SYMBOL(pci_bus_type);
 
+struct bus_type pci_host_bridge_bus_type = {
+	.name           = "pci_host_bridge",
+};
+
+static int __init pci_host_bridge_driver_init(void)
+{
+	return bus_register(&pci_host_bridge_bus_type);
+}
+postcore_initcall(pci_host_bridge_driver_init);
+
 static int __init pci_driver_init(void)
 {
 	return bus_register(&pci_bus_type);
Index: linux-2.6/drivers/pci/probe.c
===================================================================
--- linux-2.6.orig/drivers/pci/probe.c
+++ linux-2.6/drivers/pci/probe.c
@@ -1949,6 +1949,7 @@ struct pci_bus *pci_create_root_bus(stru
 		goto err_out;
 
 	bridge->dev.parent = parent;
+	bridge->dev.bus = &pci_host_bridge_bus_type;
 	bridge->dev.release = pci_release_host_bridge_dev;
 	dev_set_name(&bridge->dev, "pci%04x:%02x", pci_domain_nr(b), bus);
 	error = pcibios_root_bridge_prepare(bridge);

[-- Attachment #3: for_each_pci_host_bridge.patch --]
[-- Type: text/x-patch, Size: 3445 bytes --]

Subject: [PATCH] PCI: Add for_each_pci_host_bridge() and pci_get_next_host_bridge

Now we have pci_root_buses list, and there is lots of iteration with
list_of_each of it, that is not safe after we add pci root bus hotplug
support after booting stage.

Also pci_find_next_bus is pretty misleading name, and it is only finding
next root bus instead of regular pci bus.

Add pci_get_next_host_bridge and use bus_find_device in driver core to
iterate host bridge and the same time get root bus.

In folllowing patches will replace searching root bus with searching host_bridge.
after using with that host-bridge, will need to call put device to release
reference if break early from the loop.

After those replacing, we even could kill pci_root_buses list.

-v2: fixes compiling error when CONFIG_PCI is not defined that Fengguang found.

Signed-off-by: Yinghai Lu <yinghai@kernel.org>

---
 drivers/pci/search.c |   24 ++++++++++++++++++++++++
 include/linux/pci.h  |    9 +++++++++
 2 files changed, 33 insertions(+)

Index: linux-2.6/include/linux/pci.h
===================================================================
--- linux-2.6.orig/include/linux/pci.h
+++ linux-2.6/include/linux/pci.h
@@ -409,6 +409,8 @@ struct pci_host_bridge {
 };
 
 #define	to_pci_host_bridge(n) container_of(n, struct pci_host_bridge, dev)
+#define for_each_pci_host_bridge(d) while ((d = pci_get_next_host_bridge(d)) != NULL)
+
 void pci_set_host_bridge_release(struct pci_host_bridge *bridge,
 		     void (*release_fn)(struct pci_host_bridge *),
 		     void *release_data);
@@ -831,6 +833,7 @@ int pci_find_ht_capability(struct pci_de
 int pci_find_next_ht_capability(struct pci_dev *dev, int pos, int ht_cap);
 struct pci_bus *pci_find_next_bus(const struct pci_bus *from);
 
+struct pci_host_bridge *pci_get_next_host_bridge(struct pci_host_bridge *from);
 struct pci_dev *pci_get_device(unsigned int vendor, unsigned int device,
 				struct pci_dev *from);
 struct pci_dev *pci_get_subsys(unsigned int vendor, unsigned int device,
@@ -1447,6 +1450,12 @@ static inline int pci_domain_nr(struct p
 static inline struct pci_dev *pci_dev_get(struct pci_dev *dev) { return NULL; }
 static inline int pci_get_new_domain_nr(void) { return -ENOSYS; }
 
+static inline struct pci_host_bridge *pci_get_next_host_bridge(
+			struct pci_host_bridge *host_bridge)
+{
+	return NULL;
+}
+
 #define dev_is_pci(d) (false)
 #define dev_is_pf(d) (false)
 #define dev_num_vf(d) (0)
Index: linux-2.6/drivers/pci/search.c
===================================================================
--- linux-2.6.orig/drivers/pci/search.c
+++ linux-2.6/drivers/pci/search.c
@@ -231,6 +231,30 @@ struct pci_dev *pci_get_domain_bus_and_s
 }
 EXPORT_SYMBOL(pci_get_domain_bus_and_slot);
 
+static int match_pci_host_bridge(struct device *dev, void *data)
+{
+	return 1;
+}
+
+struct pci_host_bridge *pci_get_next_host_bridge(struct pci_host_bridge *from)
+{
+	struct device *dev;
+	struct device *dev_start = NULL;
+	struct pci_host_bridge *bridge = NULL;
+
+	WARN_ON(in_interrupt());
+	if (from)
+		dev_start = &from->dev;
+	dev = bus_find_device(&pci_host_bridge_bus_type, dev_start, NULL,
+			      match_pci_host_bridge);
+	if (dev)
+		bridge = to_pci_host_bridge(dev);
+	if (from)
+		put_device(&from->dev);
+	return bridge;
+}
+EXPORT_SYMBOL_GPL(pci_get_next_host_bridge);
+
 static int match_pci_dev_by_id(struct device *dev, void *data)
 {
 	struct pci_dev *pdev = to_pci_dev(dev);

  parent reply	other threads:[~2015-03-26 16:31 UTC|newest]

Thread overview: 263+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-03-24  3:33 [PATCH v8 00/30] Refine PCI scan interfaces and make generic pci host bridge Yijing Wang
2015-03-24  3:33 ` Yijing Wang
2015-03-24  3:33 ` Yijing Wang
2015-03-24  3:33 ` Yijing Wang
2015-03-24  3:33 ` Yijing Wang
2015-03-24  3:33 ` [PATCH v8 01/30] xen/PCI: Don't use deprecated function pci_scan_bus_parented() Yijing Wang
2015-03-24  3:33   ` Yijing Wang
2015-03-24  3:33   ` Yijing Wang
2015-03-24  3:33   ` Yijing Wang
2015-03-24  3:33   ` Yijing Wang
2015-03-24  3:33 ` Yijing Wang
2015-03-24  3:33 ` Yijing Wang
2015-03-24  3:33 ` [PATCH v8 02/30] PCI: Remove deprecated pci_scan_bus_parented() Yijing Wang
2015-03-24  3:33 ` Yijing Wang
2015-03-24  3:33   ` Yijing Wang
2015-03-24  3:33   ` Yijing Wang
2015-03-24  3:33   ` Yijing Wang
2015-03-24  3:33   ` Yijing Wang
2015-03-24  3:33 ` [PATCH v8 03/30] PCI: Save domain in pci_host_bridge Yijing Wang
2015-03-24  3:33 ` Yijing Wang
2015-03-24  3:33   ` Yijing Wang
2015-03-24  3:33   ` Yijing Wang
2015-03-24  3:33   ` Yijing Wang
2015-03-24  3:33   ` Yijing Wang
2015-03-24  3:33 ` [PATCH v8 04/30] PCI: Move pci_bus_assign_domain_nr() declaration into drivers/pci/pci.h Yijing Wang
2015-03-24  3:33   ` Yijing Wang
2015-03-24  3:33   ` Yijing Wang
2015-03-24  3:33   ` Yijing Wang
2015-03-24  3:33   ` Yijing Wang
2015-03-24  3:33 ` Yijing Wang
2015-03-24  3:33 ` [PATCH v8 05/30] PCI: Introduce pci_host_assign_domain_nr() to assign domain Yijing Wang
2015-03-24  3:33   ` Yijing Wang
2015-03-24  3:33   ` Yijing Wang
2015-03-24  3:33   ` Yijing Wang
2015-03-24  3:33   ` Yijing Wang
2015-03-24  3:34 ` [PATCH v8 06/30] PCI: Separate pci_host_bridge creation out of pci_create_root_bus() Yijing Wang
2015-03-24  3:34 ` Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34 ` [PATCH v8 07/30] PCI: Add default bus resource in pci_host_bridge Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34 ` Yijing Wang
2015-03-24  3:34 ` [PATCH v8 08/30] PCI: Update pci_host_bridge bus resource Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34 ` Yijing Wang
2015-03-24  3:34 ` [PATCH v8 09/30] PCI: Introduce pci_host_first_busnr() function Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34 ` [PATCH v8 10/30] PCI: Introduce pci_host_bridge_list to manage host bridges Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-25 16:42   ` Tomasz Nowicki
2015-03-25 16:42     ` Tomasz Nowicki
2015-03-25 16:42     ` Tomasz Nowicki
2015-03-25 16:42     ` Tomasz Nowicki
2015-03-26  1:34     ` Yijing Wang
2015-03-26  1:34       ` Yijing Wang
2015-03-26  1:34       ` Yijing Wang
2015-03-26  1:34       ` Yijing Wang
2015-03-26  1:34       ` Yijing Wang
2015-03-25 16:42   ` Tomasz Nowicki
2015-03-26 16:31   ` Yinghai Lu [this message]
2015-03-26 16:31   ` Yinghai Lu
2015-03-26 16:31     ` Yinghai Lu
2015-03-26 16:31     ` Yinghai Lu
2015-03-26 16:31     ` Yinghai Lu
2015-03-27  2:31     ` Yijing Wang
2015-03-27  2:31       ` Yijing Wang
2015-03-27  2:31       ` Yijing Wang
2015-03-27  2:31       ` Yijing Wang
2015-03-27  2:31       ` Yijing Wang
2015-03-27  2:31     ` Yijing Wang
2015-03-24  3:34 ` Yijing Wang
2015-03-24  3:34 ` [PATCH v8 11/30] PCI: Save sysdata in pci_host_bridge drvdata Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34 ` [PATCH v8 12/30] powerpc/PCI: Rename pcibios_root_bridge_prepare() to pcibios_set_root_bus_speed() Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34 ` Yijing Wang
2015-03-24  3:34 ` [PATCH v8 13/30] PCI: Move pcibios_root_bridge_prepare() to pci_create_host_bridge() Yijing Wang
2015-03-24  3:34 ` Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34 ` [PATCH v8 14/30] PCI: Introduce pci_host_bridge_ops to support host specific operations Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34 ` [PATCH v8 15/30] PCI: Introduce new scan function pci_scan_host_bridge() Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34 ` [PATCH v8 16/30] PCI: Introduce pci_bus_child_max_busnr() Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34 ` Yijing Wang
2015-03-24  3:34 ` [PATCH v8 17/30] x86/PCI: Refine pci_acpi_scan_root() with generic pci_host_bridge Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34 ` Yijing Wang
2015-03-24  3:34 ` [PATCH v8 18/30] ia64/PCI: " Yijing Wang
2015-03-24  3:34 ` Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34 ` [PATCH v8 19/30] powerpc/pci: Use pci_scan_host_bridge() for simplicity Yijing Wang
2015-03-24  3:34 ` Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24 23:58   ` Daniel Axtens
2015-03-24 23:58   ` Daniel Axtens
2015-03-24 23:58     ` Daniel Axtens
2015-03-24 23:58     ` Daniel Axtens
2015-03-24 23:58     ` Daniel Axtens
2015-03-24 23:58     ` Daniel Axtens
2015-03-25  7:42     ` Yijing Wang
2015-03-25  7:42       ` Yijing Wang
2015-03-25  7:42       ` Yijing Wang
2015-03-25  7:42       ` Yijing Wang
2015-03-25  7:42       ` Yijing Wang
2015-03-25  7:42       ` Yijing Wang
2015-03-25 22:13       ` Daniel Axtens
2015-03-25 22:13       ` Daniel Axtens
2015-03-25 22:13         ` Daniel Axtens
2015-03-25 22:13         ` Daniel Axtens
2015-03-25 22:13         ` Daniel Axtens
2015-03-25 22:13         ` Daniel Axtens
2015-03-26  1:17         ` Yijing Wang
2015-03-26  1:17           ` Yijing Wang
2015-03-26  1:17           ` Yijing Wang
2015-03-26  1:17           ` Yijing Wang
2015-03-26  1:17           ` Yijing Wang
2015-03-26  1:17           ` Yijing Wang
2015-03-26  5:19           ` Daniel Axtens
2015-03-26  5:19             ` Daniel Axtens
2015-03-26  5:19             ` Daniel Axtens
2015-03-26  5:19             ` Daniel Axtens
2015-03-26  5:19             ` Daniel Axtens
2015-03-26  6:20             ` Yijing Wang
2015-03-26  6:20               ` Yijing Wang
2015-03-26  6:20               ` Yijing Wang
2015-03-26  6:20               ` Yijing Wang
2015-03-26  6:20               ` Yijing Wang
2015-03-26  6:20               ` Yijing Wang
2015-03-26  6:20             ` Yijing Wang
2015-03-26  5:19           ` Daniel Axtens
2015-03-25  7:42     ` Yijing Wang
2015-03-24  3:34 ` [PATCH v8 20/30] PCI: Remove pcibios_root_bridge_prepare() and pcibos_set_root_bus_speed() Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34 ` Yijing Wang
2015-03-24  3:34 ` [PATCH v8 21/30] sparc/PCI: Use pci_scan_host_bridge() for simplicity Yijing Wang
2015-03-24  3:34 ` Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34 ` [PATCH v8 22/30] parisc/PCI: Use pci_scan_root_bus() " Yijing Wang
2015-03-24  3:34 ` Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34 ` [PATCH v8 23/30] PCI/mvebu: Use pci_common_init_dev() to simplify code Yijing Wang
2015-03-24  3:34 ` Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-25  8:55   ` Yijing Wang
2015-03-25  8:55     ` Yijing Wang
2015-03-25  8:55     ` Yijing Wang
2015-03-25  8:55     ` Yijing Wang
2015-03-25  8:55     ` Yijing Wang
2015-03-25 16:43     ` Thomas Petazzoni
2015-03-25 16:43       ` Thomas Petazzoni
2015-03-25 16:43       ` Thomas Petazzoni
2015-03-25 16:43       ` Thomas Petazzoni
2015-03-25 16:43       ` Thomas Petazzoni
2015-03-26  1:21       ` Yijing Wang
2015-03-25 16:43     ` Thomas Petazzoni
2015-03-24  3:34 ` [PATCH v8 24/30] PCI/tegra: Remove redundant tegra_pcie_scan_bus() Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24 12:31   ` Thierry Reding
2015-03-24 12:31     ` Thierry Reding
2015-03-24 12:31     ` Thierry Reding
2015-03-24 12:31     ` Thierry Reding
2015-03-25  1:22     ` Yijing Wang
2015-03-25  1:22     ` Yijing Wang
2015-03-25  1:22       ` Yijing Wang
2015-03-25  1:22       ` Yijing Wang
2015-03-25  1:22       ` Yijing Wang
2015-03-25  1:22       ` Yijing Wang
2015-03-24 12:31   ` Thierry Reding
2015-03-24  3:34 ` [PATCH v8 25/30] PCI/designware: Use pci_scan_root_bus() for simplicity Yijing Wang
2015-03-24  3:34 ` Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34 ` [PATCH v8 26/30] PCI/xgene: Use pci_scan_root_bus() instead of pci_create_root_bus() Yijing Wang
2015-03-24  3:34 ` Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34 ` [PATCH v8 27/30] PCI: Rename __pci_create_root_bus() to pci_create_root_bus() Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34 ` Yijing Wang
2015-03-24  3:34 ` [PATCH v8 28/30] PCI: Remove platform specific pci_domain_nr() Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34 ` Yijing Wang
2015-03-24  3:34 ` [PATCH v8 29/30] PCI: Remove pci_bus_assign_domain_nr() Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34 ` [PATCH v8 30/30] PCI: Clean up CONFIG_PCI_DOMAINS_GENERIC Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34   ` Yijing Wang
2015-03-24  3:34 ` Yijing Wang

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='CAE9FiQVgXfViM22qhB-sKDSTtnhvLDMk0NTiK_G88UogVMuM_w__48576.3466022492$1427387544$gmane$org@mail.gmail.com' \
    --to=yinghai@kernel.org \
    --cc=arnd@arndb.de \
    --cc=benh@kernel.crashing.org \
    --cc=bhelgaas@google.com \
    --cc=davem@davemloft.net \
    --cc=geert@linux-m68k.org \
    --cc=gxt@mprc.pku.edu.cn \
    --cc=jiang.liu@linux.intel.com \
    --cc=linux-alpha@vger.kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-ia64@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-m68k@lists.linux-m68k.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=linux@arm.linux.org.uk \
    --cc=liviu@dudau.co.uk \
    --cc=marc.zyngier@arm.com \
    --cc=rusty@rustcorp.com.au \
    --cc=tglx@linutronix.de \
    --cc=tony.luck@intel.com \
    --cc=wangyijing@huawei.com \
    --cc=x86@kernel.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.