All of lore.kernel.org
 help / color / mirror / Atom feed
From: Yijing Wang <wangyijing@huawei.com>
To: Bjorn Helgaas <bhelgaas@google.com>
Cc: Jiang Liu <jiang.liu@linux.intel.com>,
	<linux-pci@vger.kernel.org>, Yinghai Lu <yinghai@kernel.org>,
	<linux-kernel@vger.kernel.org>,
	Marc Zyngier <marc.zyngier@arm.com>,
	<linux-arm-kernel@lists.infradead.org>,
	Russell King <linux@arm.linux.org.uk>, <x86@kernel.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Tony Luck <tony.luck@intel.com>, <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@vger.kernel.org>,
	Liviu Dudau <liviu@dudau.co.uk>, "Arnd Bergmann" <arnd@arndb.de>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	"Yijing Wang" <wangyijing@huawei.com>
Subject: [PATCH 10/28] PCI: Save sysdata in pci_host_bridge drvdata
Date: Fri, 16 Jan 2015 09:44:08 +0800	[thread overview]
Message-ID: <1421372666-12288-11-git-send-email-wangyijing@huawei.com> (raw)
In-Reply-To: <1421372666-12288-1-git-send-email-wangyijing@huawei.com>

Save platform specific sysdata in pci_host_bridge
drvdata, host bridge specific operation need to
access it before the pci bus creation.

Signed-off-by: Yijing Wang <wangyijing@huawei.com>
---
 drivers/pci/host-bridge.c |    4 +++-
 drivers/pci/probe.c       |   18 ++++++++----------
 include/linux/pci.h       |    3 ++-
 3 files changed, 13 insertions(+), 12 deletions(-)

diff --git a/drivers/pci/host-bridge.c b/drivers/pci/host-bridge.c
index c9ee582..0b6ba5c 100644
--- a/drivers/pci/host-bridge.c
+++ b/drivers/pci/host-bridge.c
@@ -23,7 +23,8 @@ static void pci_release_host_bridge_dev(struct device *dev)
 }
 
 struct pci_host_bridge *pci_create_host_bridge(
-		struct device *parent, u32 db, struct list_head *resources)
+		struct device *parent, u32 db,
+		struct list_head *resources, void *sysdata)
 {
 	int error;
 	int bus = PCI_BUSNUM(db);
@@ -58,6 +59,7 @@ struct pci_host_bridge *pci_create_host_bridge(
 	host->dev.parent = parent;
 	INIT_LIST_HEAD(&host->windows);
 	host->dev.release = pci_release_host_bridge_dev;
+	dev_set_drvdata(&host->dev, sysdata);
 	dev_set_name(&host->dev, "pci%04x:%02x", host->domain, 
 			host->busnum);
 
diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c
index 2e0b952..98a8d97 100644
--- a/drivers/pci/probe.c
+++ b/drivers/pci/probe.c
@@ -1865,8 +1865,7 @@ void __weak pcibios_remove_bus(struct pci_bus *bus)
 }
 
 static struct pci_bus *__pci_create_root_bus(
-		struct pci_host_bridge *bridge, struct pci_ops *ops,
-		void *sysdata)
+		struct pci_host_bridge *bridge, struct pci_ops *ops)
 {
 	int error;
 	struct pci_bus *b;
@@ -1882,7 +1881,7 @@ static struct pci_bus *__pci_create_root_bus(
 	if (!b)
 		return NULL;
 
-	b->sysdata = sysdata;
+	b->sysdata = dev_get_drvdata(&bridge->dev);
 	b->ops = ops;
 	b->number = b->busn_res.start = bridge->busnum;
 	pci_bus_assign_domain_nr(b, parent);
@@ -1954,11 +1953,11 @@ struct pci_bus *pci_create_root_bus(struct device *parent, u32 db,
 {
 	struct pci_host_bridge *host;
 
-	host = pci_create_host_bridge(parent, db, resources);
+	host = pci_create_host_bridge(parent, db, resources, sysdata);
 	if (!host)
 		return NULL;
 	
-	return __pci_create_root_bus(host, ops, sysdata);
+	return __pci_create_root_bus(host, ops);
 }
 
 int pci_bus_insert_busn_res(struct pci_bus *b, int bus, int bus_max)
@@ -2025,8 +2024,7 @@ void pci_bus_release_busn_res(struct pci_bus *b)
 }
 
 static struct pci_bus *__pci_scan_root_bus(
-		struct pci_host_bridge *host, struct pci_ops *ops,
-		void *sysdata)
+		struct pci_host_bridge *host, struct pci_ops *ops)
 {
 
 	struct pci_host_bridge_window *window;
@@ -2040,7 +2038,7 @@ static struct pci_bus *__pci_scan_root_bus(
 			break;
 		}
 
-	b = __pci_create_root_bus(host, ops, sysdata);
+	b = __pci_create_root_bus(host, ops);
 	if (!b) {
 		pci_free_host_bridge(host);
 		return NULL;
@@ -2066,11 +2064,11 @@ struct pci_bus *pci_scan_root_bus(struct device *parent, u32 db,
 {
 	struct pci_host_bridge *host;
 
-	host = pci_create_host_bridge(parent, db, resources);
+	host = pci_create_host_bridge(parent, db, resources, sysdata);
 	if (!host)
 		return NULL;
 
-	return __pci_scan_root_bus(host, ops, sysdata);
+	return __pci_scan_root_bus(host, ops);
 }
 EXPORT_SYMBOL(pci_scan_root_bus);
 
diff --git a/include/linux/pci.h b/include/linux/pci.h
index 5ee0033..3ee8436 100644
--- a/include/linux/pci.h
+++ b/include/linux/pci.h
@@ -419,7 +419,8 @@ void pci_set_host_bridge_release(struct pci_host_bridge *bridge,
 
 int pcibios_root_bridge_prepare(struct pci_host_bridge *bridge);
 struct pci_host_bridge *pci_create_host_bridge(
-		struct device *parent, u32 dombus, struct list_head *resources);
+		struct device *parent, u32 dombus,
+		struct list_head *resources, void *sysdata);
 /*
  * The first PCI_BRIDGE_RESOURCE_NUM PCI bus resources (those that correspond
  * to P2P or CardBus bridge windows) go in a table.  Additional ones (for
-- 
1.7.1


WARNING: multiple messages have this Message-ID (diff)
From: Yijing Wang <wangyijing@huawei.com>
To: Bjorn Helgaas <bhelgaas@google.com>
Cc: Jiang Liu <jiang.liu@linux.intel.com>,
	<linux-pci@vger.kernel.org>, Yinghai Lu <yinghai@kernel.org>,
	<linux-kernel@vger.kernel.org>,
	Marc Zyngier <marc.zyngier@arm.com>,
	<linux-arm-kernel@lists.infradead.org>,
	Russell King <linux@arm.linux.org.uk>, <x86@kernel.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Tony Luck <tony.luck@intel.com>, <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>,
	"Yijing Wang" <wangyijing@huawei.com>
Subject: [PATCH 10/28] PCI: Save sysdata in pci_host_bridge drvdata
Date: Fri, 16 Jan 2015 09:44:08 +0800	[thread overview]
Message-ID: <1421372666-12288-11-git-send-email-wangyijing@huawei.com> (raw)
In-Reply-To: <1421372666-12288-1-git-send-email-wangyijing@huawei.com>

Save platform specific sysdata in pci_host_bridge
drvdata, host bridge specific operation need to
access it before the pci bus creation.

Signed-off-by: Yijing Wang <wangyijing@huawei.com>
---
 drivers/pci/host-bridge.c |    4 +++-
 drivers/pci/probe.c       |   18 ++++++++----------
 include/linux/pci.h       |    3 ++-
 3 files changed, 13 insertions(+), 12 deletions(-)

diff --git a/drivers/pci/host-bridge.c b/drivers/pci/host-bridge.c
index c9ee582..0b6ba5c 100644
--- a/drivers/pci/host-bridge.c
+++ b/drivers/pci/host-bridge.c
@@ -23,7 +23,8 @@ static void pci_release_host_bridge_dev(struct device *dev)
 }
 
 struct pci_host_bridge *pci_create_host_bridge(
-		struct device *parent, u32 db, struct list_head *resources)
+		struct device *parent, u32 db,
+		struct list_head *resources, void *sysdata)
 {
 	int error;
 	int bus = PCI_BUSNUM(db);
@@ -58,6 +59,7 @@ struct pci_host_bridge *pci_create_host_bridge(
 	host->dev.parent = parent;
 	INIT_LIST_HEAD(&host->windows);
 	host->dev.release = pci_release_host_bridge_dev;
+	dev_set_drvdata(&host->dev, sysdata);
 	dev_set_name(&host->dev, "pci%04x:%02x", host->domain, 
 			host->busnum);
 
diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c
index 2e0b952..98a8d97 100644
--- a/drivers/pci/probe.c
+++ b/drivers/pci/probe.c
@@ -1865,8 +1865,7 @@ void __weak pcibios_remove_bus(struct pci_bus *bus)
 }
 
 static struct pci_bus *__pci_create_root_bus(
-		struct pci_host_bridge *bridge, struct pci_ops *ops,
-		void *sysdata)
+		struct pci_host_bridge *bridge, struct pci_ops *ops)
 {
 	int error;
 	struct pci_bus *b;
@@ -1882,7 +1881,7 @@ static struct pci_bus *__pci_create_root_bus(
 	if (!b)
 		return NULL;
 
-	b->sysdata = sysdata;
+	b->sysdata = dev_get_drvdata(&bridge->dev);
 	b->ops = ops;
 	b->number = b->busn_res.start = bridge->busnum;
 	pci_bus_assign_domain_nr(b, parent);
@@ -1954,11 +1953,11 @@ struct pci_bus *pci_create_root_bus(struct device *parent, u32 db,
 {
 	struct pci_host_bridge *host;
 
-	host = pci_create_host_bridge(parent, db, resources);
+	host = pci_create_host_bridge(parent, db, resources, sysdata);
 	if (!host)
 		return NULL;
 	
-	return __pci_create_root_bus(host, ops, sysdata);
+	return __pci_create_root_bus(host, ops);
 }
 
 int pci_bus_insert_busn_res(struct pci_bus *b, int bus, int bus_max)
@@ -2025,8 +2024,7 @@ void pci_bus_release_busn_res(struct pci_bus *b)
 }
 
 static struct pci_bus *__pci_scan_root_bus(
-		struct pci_host_bridge *host, struct pci_ops *ops,
-		void *sysdata)
+		struct pci_host_bridge *host, struct pci_ops *ops)
 {
 
 	struct pci_host_bridge_window *window;
@@ -2040,7 +2038,7 @@ static struct pci_bus *__pci_scan_root_bus(
 			break;
 		}
 
-	b = __pci_create_root_bus(host, ops, sysdata);
+	b = __pci_create_root_bus(host, ops);
 	if (!b) {
 		pci_free_host_bridge(host);
 		return NULL;
@@ -2066,11 +2064,11 @@ struct pci_bus *pci_scan_root_bus(struct device *parent, u32 db,
 {
 	struct pci_host_bridge *host;
 
-	host = pci_create_host_bridge(parent, db, resources);
+	host = pci_create_host_bridge(parent, db, resources, sysdata);
 	if (!host)
 		return NULL;
 
-	return __pci_scan_root_bus(host, ops, sysdata);
+	return __pci_scan_root_bus(host, ops);
 }
 EXPORT_SYMBOL(pci_scan_root_bus);
 
diff --git a/include/linux/pci.h b/include/linux/pci.h
index 5ee0033..3ee8436 100644
--- a/include/linux/pci.h
+++ b/include/linux/pci.h
@@ -419,7 +419,8 @@ void pci_set_host_bridge_release(struct pci_host_bridge *bridge,
 
 int pcibios_root_bridge_prepare(struct pci_host_bridge *bridge);
 struct pci_host_bridge *pci_create_host_bridge(
-		struct device *parent, u32 dombus, struct list_head *resources);
+		struct device *parent, u32 dombus,
+		struct list_head *resources, void *sysdata);
 /*
  * The first PCI_BRIDGE_RESOURCE_NUM PCI bus resources (those that correspond
  * to P2P or CardBus bridge windows) go in a table.  Additional ones (for
-- 
1.7.1


WARNING: multiple messages have this Message-ID (diff)
From: wangyijing@huawei.com (Yijing Wang)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 10/28] PCI: Save sysdata in pci_host_bridge drvdata
Date: Fri, 16 Jan 2015 09:44:08 +0800	[thread overview]
Message-ID: <1421372666-12288-11-git-send-email-wangyijing@huawei.com> (raw)
In-Reply-To: <1421372666-12288-1-git-send-email-wangyijing@huawei.com>

Save platform specific sysdata in pci_host_bridge
drvdata, host bridge specific operation need to
access it before the pci bus creation.

Signed-off-by: Yijing Wang <wangyijing@huawei.com>
---
 drivers/pci/host-bridge.c |    4 +++-
 drivers/pci/probe.c       |   18 ++++++++----------
 include/linux/pci.h       |    3 ++-
 3 files changed, 13 insertions(+), 12 deletions(-)

diff --git a/drivers/pci/host-bridge.c b/drivers/pci/host-bridge.c
index c9ee582..0b6ba5c 100644
--- a/drivers/pci/host-bridge.c
+++ b/drivers/pci/host-bridge.c
@@ -23,7 +23,8 @@ static void pci_release_host_bridge_dev(struct device *dev)
 }
 
 struct pci_host_bridge *pci_create_host_bridge(
-		struct device *parent, u32 db, struct list_head *resources)
+		struct device *parent, u32 db,
+		struct list_head *resources, void *sysdata)
 {
 	int error;
 	int bus = PCI_BUSNUM(db);
@@ -58,6 +59,7 @@ struct pci_host_bridge *pci_create_host_bridge(
 	host->dev.parent = parent;
 	INIT_LIST_HEAD(&host->windows);
 	host->dev.release = pci_release_host_bridge_dev;
+	dev_set_drvdata(&host->dev, sysdata);
 	dev_set_name(&host->dev, "pci%04x:%02x", host->domain, 
 			host->busnum);
 
diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c
index 2e0b952..98a8d97 100644
--- a/drivers/pci/probe.c
+++ b/drivers/pci/probe.c
@@ -1865,8 +1865,7 @@ void __weak pcibios_remove_bus(struct pci_bus *bus)
 }
 
 static struct pci_bus *__pci_create_root_bus(
-		struct pci_host_bridge *bridge, struct pci_ops *ops,
-		void *sysdata)
+		struct pci_host_bridge *bridge, struct pci_ops *ops)
 {
 	int error;
 	struct pci_bus *b;
@@ -1882,7 +1881,7 @@ static struct pci_bus *__pci_create_root_bus(
 	if (!b)
 		return NULL;
 
-	b->sysdata = sysdata;
+	b->sysdata = dev_get_drvdata(&bridge->dev);
 	b->ops = ops;
 	b->number = b->busn_res.start = bridge->busnum;
 	pci_bus_assign_domain_nr(b, parent);
@@ -1954,11 +1953,11 @@ struct pci_bus *pci_create_root_bus(struct device *parent, u32 db,
 {
 	struct pci_host_bridge *host;
 
-	host = pci_create_host_bridge(parent, db, resources);
+	host = pci_create_host_bridge(parent, db, resources, sysdata);
 	if (!host)
 		return NULL;
 	
-	return __pci_create_root_bus(host, ops, sysdata);
+	return __pci_create_root_bus(host, ops);
 }
 
 int pci_bus_insert_busn_res(struct pci_bus *b, int bus, int bus_max)
@@ -2025,8 +2024,7 @@ void pci_bus_release_busn_res(struct pci_bus *b)
 }
 
 static struct pci_bus *__pci_scan_root_bus(
-		struct pci_host_bridge *host, struct pci_ops *ops,
-		void *sysdata)
+		struct pci_host_bridge *host, struct pci_ops *ops)
 {
 
 	struct pci_host_bridge_window *window;
@@ -2040,7 +2038,7 @@ static struct pci_bus *__pci_scan_root_bus(
 			break;
 		}
 
-	b = __pci_create_root_bus(host, ops, sysdata);
+	b = __pci_create_root_bus(host, ops);
 	if (!b) {
 		pci_free_host_bridge(host);
 		return NULL;
@@ -2066,11 +2064,11 @@ struct pci_bus *pci_scan_root_bus(struct device *parent, u32 db,
 {
 	struct pci_host_bridge *host;
 
-	host = pci_create_host_bridge(parent, db, resources);
+	host = pci_create_host_bridge(parent, db, resources, sysdata);
 	if (!host)
 		return NULL;
 
-	return __pci_scan_root_bus(host, ops, sysdata);
+	return __pci_scan_root_bus(host, ops);
 }
 EXPORT_SYMBOL(pci_scan_root_bus);
 
diff --git a/include/linux/pci.h b/include/linux/pci.h
index 5ee0033..3ee8436 100644
--- a/include/linux/pci.h
+++ b/include/linux/pci.h
@@ -419,7 +419,8 @@ void pci_set_host_bridge_release(struct pci_host_bridge *bridge,
 
 int pcibios_root_bridge_prepare(struct pci_host_bridge *bridge);
 struct pci_host_bridge *pci_create_host_bridge(
-		struct device *parent, u32 dombus, struct list_head *resources);
+		struct device *parent, u32 dombus,
+		struct list_head *resources, void *sysdata);
 /*
  * The first PCI_BRIDGE_RESOURCE_NUM PCI bus resources (those that correspond
  * to P2P or CardBus bridge windows) go in a table.  Additional ones (for
-- 
1.7.1

WARNING: multiple messages have this Message-ID (diff)
From: Yijing Wang <wangyijing@huawei.com>
To: Bjorn Helgaas <bhelgaas@google.com>
Cc: Jiang Liu <jiang.liu@linux.intel.com>,
	linux-pci@vger.kernel.org, Yinghai Lu <yinghai@kernel.org>,
	linux-kernel@vger.kernel.org, Marc Zyngier <marc.zyngier@arm.com>,
	linux-arm-kernel@lists.infradead.org,
	Russell King <linux@arm.linux.org.uk>,
	x86@kernel.org, Thomas Gleixner <tglx@linutronix.de>,
	Tony Luck <tony.luck@intel.com>,
	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@vger.kernel.org,
	Liviu Dudau <liviu@dudau.co.uk>, Arnd Bergmann <arnd@arndb.de>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	Yijing Wang <wangyijing@huawei.com>
Subject: [PATCH 10/28] PCI: Save sysdata in pci_host_bridge drvdata
Date: Fri, 16 Jan 2015 01:44:08 +0000	[thread overview]
Message-ID: <1421372666-12288-11-git-send-email-wangyijing@huawei.com> (raw)
In-Reply-To: <1421372666-12288-1-git-send-email-wangyijing@huawei.com>

Save platform specific sysdata in pci_host_bridge
drvdata, host bridge specific operation need to
access it before the pci bus creation.

Signed-off-by: Yijing Wang <wangyijing@huawei.com>
---
 drivers/pci/host-bridge.c |    4 +++-
 drivers/pci/probe.c       |   18 ++++++++----------
 include/linux/pci.h       |    3 ++-
 3 files changed, 13 insertions(+), 12 deletions(-)

diff --git a/drivers/pci/host-bridge.c b/drivers/pci/host-bridge.c
index c9ee582..0b6ba5c 100644
--- a/drivers/pci/host-bridge.c
+++ b/drivers/pci/host-bridge.c
@@ -23,7 +23,8 @@ static void pci_release_host_bridge_dev(struct device *dev)
 }
 
 struct pci_host_bridge *pci_create_host_bridge(
-		struct device *parent, u32 db, struct list_head *resources)
+		struct device *parent, u32 db,
+		struct list_head *resources, void *sysdata)
 {
 	int error;
 	int bus = PCI_BUSNUM(db);
@@ -58,6 +59,7 @@ struct pci_host_bridge *pci_create_host_bridge(
 	host->dev.parent = parent;
 	INIT_LIST_HEAD(&host->windows);
 	host->dev.release = pci_release_host_bridge_dev;
+	dev_set_drvdata(&host->dev, sysdata);
 	dev_set_name(&host->dev, "pci%04x:%02x", host->domain, 
 			host->busnum);
 
diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c
index 2e0b952..98a8d97 100644
--- a/drivers/pci/probe.c
+++ b/drivers/pci/probe.c
@@ -1865,8 +1865,7 @@ void __weak pcibios_remove_bus(struct pci_bus *bus)
 }
 
 static struct pci_bus *__pci_create_root_bus(
-		struct pci_host_bridge *bridge, struct pci_ops *ops,
-		void *sysdata)
+		struct pci_host_bridge *bridge, struct pci_ops *ops)
 {
 	int error;
 	struct pci_bus *b;
@@ -1882,7 +1881,7 @@ static struct pci_bus *__pci_create_root_bus(
 	if (!b)
 		return NULL;
 
-	b->sysdata = sysdata;
+	b->sysdata = dev_get_drvdata(&bridge->dev);
 	b->ops = ops;
 	b->number = b->busn_res.start = bridge->busnum;
 	pci_bus_assign_domain_nr(b, parent);
@@ -1954,11 +1953,11 @@ struct pci_bus *pci_create_root_bus(struct device *parent, u32 db,
 {
 	struct pci_host_bridge *host;
 
-	host = pci_create_host_bridge(parent, db, resources);
+	host = pci_create_host_bridge(parent, db, resources, sysdata);
 	if (!host)
 		return NULL;
 	
-	return __pci_create_root_bus(host, ops, sysdata);
+	return __pci_create_root_bus(host, ops);
 }
 
 int pci_bus_insert_busn_res(struct pci_bus *b, int bus, int bus_max)
@@ -2025,8 +2024,7 @@ void pci_bus_release_busn_res(struct pci_bus *b)
 }
 
 static struct pci_bus *__pci_scan_root_bus(
-		struct pci_host_bridge *host, struct pci_ops *ops,
-		void *sysdata)
+		struct pci_host_bridge *host, struct pci_ops *ops)
 {
 
 	struct pci_host_bridge_window *window;
@@ -2040,7 +2038,7 @@ static struct pci_bus *__pci_scan_root_bus(
 			break;
 		}
 
-	b = __pci_create_root_bus(host, ops, sysdata);
+	b = __pci_create_root_bus(host, ops);
 	if (!b) {
 		pci_free_host_bridge(host);
 		return NULL;
@@ -2066,11 +2064,11 @@ struct pci_bus *pci_scan_root_bus(struct device *parent, u32 db,
 {
 	struct pci_host_bridge *host;
 
-	host = pci_create_host_bridge(parent, db, resources);
+	host = pci_create_host_bridge(parent, db, resources, sysdata);
 	if (!host)
 		return NULL;
 
-	return __pci_scan_root_bus(host, ops, sysdata);
+	return __pci_scan_root_bus(host, ops);
 }
 EXPORT_SYMBOL(pci_scan_root_bus);
 
diff --git a/include/linux/pci.h b/include/linux/pci.h
index 5ee0033..3ee8436 100644
--- a/include/linux/pci.h
+++ b/include/linux/pci.h
@@ -419,7 +419,8 @@ void pci_set_host_bridge_release(struct pci_host_bridge *bridge,
 
 int pcibios_root_bridge_prepare(struct pci_host_bridge *bridge);
 struct pci_host_bridge *pci_create_host_bridge(
-		struct device *parent, u32 dombus, struct list_head *resources);
+		struct device *parent, u32 dombus,
+		struct list_head *resources, void *sysdata);
 /*
  * The first PCI_BRIDGE_RESOURCE_NUM PCI bus resources (those that correspond
  * to P2P or CardBus bridge windows) go in a table.  Additional ones (for
-- 
1.7.1


WARNING: multiple messages have this Message-ID (diff)
From: Yijing Wang <wangyijing@huawei.com>
To: Bjorn Helgaas <bhelgaas@google.com>
Cc: Jiang Liu <jiang.liu@linux.intel.com>,
	linux-pci@vger.kernel.org, Yinghai Lu <yinghai@kernel.org>,
	linux-kernel@vger.kernel.org, Marc Zyngier <marc.zyngier@arm.com>,
	linux-arm-kernel@lists.infradead.org,
	Russell King <linux@arm.linux.org.uk>,
	x86@kernel.org, Thomas Gleixner <tglx@linutronix.de>,
	Tony Luck <tony.luck@intel.com>,
	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>,
	Yijing Wang <wangyijing@huawei.com>
Subject: [PATCH 10/28] PCI: Save sysdata in pci_host_bridge drvdata
Date: Fri, 16 Jan 2015 09:44:08 +0800	[thread overview]
Message-ID: <1421372666-12288-11-git-send-email-wangyijing@huawei.com> (raw)
In-Reply-To: <1421372666-12288-1-git-send-email-wangyijing@huawei.com>

Save platform specific sysdata in pci_host_bridge
drvdata, host bridge specific operation need to
access it before the pci bus creation.

Signed-off-by: Yijing Wang <wangyijing@huawei.com>
---
 drivers/pci/host-bridge.c |    4 +++-
 drivers/pci/probe.c       |   18 ++++++++----------
 include/linux/pci.h       |    3 ++-
 3 files changed, 13 insertions(+), 12 deletions(-)

diff --git a/drivers/pci/host-bridge.c b/drivers/pci/host-bridge.c
index c9ee582..0b6ba5c 100644
--- a/drivers/pci/host-bridge.c
+++ b/drivers/pci/host-bridge.c
@@ -23,7 +23,8 @@ static void pci_release_host_bridge_dev(struct device *dev)
 }
 
 struct pci_host_bridge *pci_create_host_bridge(
-		struct device *parent, u32 db, struct list_head *resources)
+		struct device *parent, u32 db,
+		struct list_head *resources, void *sysdata)
 {
 	int error;
 	int bus = PCI_BUSNUM(db);
@@ -58,6 +59,7 @@ struct pci_host_bridge *pci_create_host_bridge(
 	host->dev.parent = parent;
 	INIT_LIST_HEAD(&host->windows);
 	host->dev.release = pci_release_host_bridge_dev;
+	dev_set_drvdata(&host->dev, sysdata);
 	dev_set_name(&host->dev, "pci%04x:%02x", host->domain, 
 			host->busnum);
 
diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c
index 2e0b952..98a8d97 100644
--- a/drivers/pci/probe.c
+++ b/drivers/pci/probe.c
@@ -1865,8 +1865,7 @@ void __weak pcibios_remove_bus(struct pci_bus *bus)
 }
 
 static struct pci_bus *__pci_create_root_bus(
-		struct pci_host_bridge *bridge, struct pci_ops *ops,
-		void *sysdata)
+		struct pci_host_bridge *bridge, struct pci_ops *ops)
 {
 	int error;
 	struct pci_bus *b;
@@ -1882,7 +1881,7 @@ static struct pci_bus *__pci_create_root_bus(
 	if (!b)
 		return NULL;
 
-	b->sysdata = sysdata;
+	b->sysdata = dev_get_drvdata(&bridge->dev);
 	b->ops = ops;
 	b->number = b->busn_res.start = bridge->busnum;
 	pci_bus_assign_domain_nr(b, parent);
@@ -1954,11 +1953,11 @@ struct pci_bus *pci_create_root_bus(struct device *parent, u32 db,
 {
 	struct pci_host_bridge *host;
 
-	host = pci_create_host_bridge(parent, db, resources);
+	host = pci_create_host_bridge(parent, db, resources, sysdata);
 	if (!host)
 		return NULL;
 	
-	return __pci_create_root_bus(host, ops, sysdata);
+	return __pci_create_root_bus(host, ops);
 }
 
 int pci_bus_insert_busn_res(struct pci_bus *b, int bus, int bus_max)
@@ -2025,8 +2024,7 @@ void pci_bus_release_busn_res(struct pci_bus *b)
 }
 
 static struct pci_bus *__pci_scan_root_bus(
-		struct pci_host_bridge *host, struct pci_ops *ops,
-		void *sysdata)
+		struct pci_host_bridge *host, struct pci_ops *ops)
 {
 
 	struct pci_host_bridge_window *window;
@@ -2040,7 +2038,7 @@ static struct pci_bus *__pci_scan_root_bus(
 			break;
 		}
 
-	b = __pci_create_root_bus(host, ops, sysdata);
+	b = __pci_create_root_bus(host, ops);
 	if (!b) {
 		pci_free_host_bridge(host);
 		return NULL;
@@ -2066,11 +2064,11 @@ struct pci_bus *pci_scan_root_bus(struct device *parent, u32 db,
 {
 	struct pci_host_bridge *host;
 
-	host = pci_create_host_bridge(parent, db, resources);
+	host = pci_create_host_bridge(parent, db, resources, sysdata);
 	if (!host)
 		return NULL;
 
-	return __pci_scan_root_bus(host, ops, sysdata);
+	return __pci_scan_root_bus(host, ops);
 }
 EXPORT_SYMBOL(pci_scan_root_bus);
 
diff --git a/include/linux/pci.h b/include/linux/pci.h
index 5ee0033..3ee8436 100644
--- a/include/linux/pci.h
+++ b/include/linux/pci.h
@@ -419,7 +419,8 @@ void pci_set_host_bridge_release(struct pci_host_bridge *bridge,
 
 int pcibios_root_bridge_prepare(struct pci_host_bridge *bridge);
 struct pci_host_bridge *pci_create_host_bridge(
-		struct device *parent, u32 dombus, struct list_head *resources);
+		struct device *parent, u32 dombus,
+		struct list_head *resources, void *sysdata);
 /*
  * The first PCI_BRIDGE_RESOURCE_NUM PCI bus resources (those that correspond
  * to P2P or CardBus bridge windows) go in a table.  Additional ones (for
-- 
1.7.1


  parent reply	other threads:[~2015-01-16  3:47 UTC|newest]

Thread overview: 320+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-01-16  1:43 [PATCH 00/28] Refine PCI scan interfaces and make generic pci host bridge Yijing Wang
2015-01-16  1:43 ` Yijing Wang
2015-01-16  1:43 ` Yijing Wang
2015-01-16  1:43 ` Yijing Wang
2015-01-16  1:43 ` Yijing Wang
2015-01-16  1:43 ` [PATCH 01/28] PCI: Rip out pci_bus_add_devices() from pci_scan_bus() Yijing Wang
2015-01-16  1:43 ` Yijing Wang
2015-01-16  1:43   ` Yijing Wang
2015-01-16  1:43   ` Yijing Wang
2015-01-16  1:43   ` Yijing Wang
2015-01-16  1:43   ` Yijing Wang
2015-01-16  1:43   ` Yijing Wang
2015-01-16 23:15   ` Yinghai Lu
2015-01-16 23:15     ` Yinghai Lu
2015-01-16 23:15     ` Yinghai Lu
2015-01-16 23:15     ` Yinghai Lu
2015-01-16 23:15     ` Yinghai Lu
2015-01-16 23:16     ` Yinghai Lu
2015-01-16 23:16       ` Yinghai Lu
2015-01-16 23:16       ` Yinghai Lu
2015-01-16 23:16       ` Yinghai Lu
2015-01-16 23:16       ` Yinghai Lu
2015-01-19  2:04       ` Yijing Wang
2015-01-19  2:04         ` Yijing Wang
2015-01-19  2:04         ` Yijing Wang
2015-01-19  2:04         ` Yijing Wang
2015-01-19  2:04         ` Yijing Wang
2015-01-19  2:04         ` Yijing Wang
2015-01-19  4:59         ` Greg Ungerer
2015-01-19  4:59         ` Greg Ungerer
2015-01-19  4:59           ` Greg Ungerer
2015-01-19  4:59           ` Greg Ungerer
2015-01-19  4:59           ` Greg Ungerer
2015-01-19  4:59           ` Greg Ungerer
2015-01-19  4:59           ` Greg Ungerer
2015-01-19  2:04       ` Yijing Wang
2015-01-19  8:23       ` Arnd Bergmann
2015-01-19  8:23         ` Arnd Bergmann
2015-01-19  8:23         ` Arnd Bergmann
2015-01-19  8:23         ` Arnd Bergmann
2015-01-19  8:23         ` Arnd Bergmann
2015-01-19  8:23       ` Arnd Bergmann
2015-01-16 23:15   ` Yinghai Lu
2015-01-16  1:44 ` [PATCH 02/28] PCI: Rip out pci_bus_add_devices() from pci_scan_root_bus() Yijing Wang
2015-01-16  1:44 ` Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44 ` [PATCH 03/28] xen/PCI: Don't use deprecated function pci_scan_bus_parented() Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44 ` Yijing Wang
2015-01-16  1:44 ` [PATCH 04/28] PCI: Remove deprecated pci_scan_bus_parented() Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44 ` Yijing Wang
2015-01-16  1:44 ` [PATCH 05/28] PCI: Rename pci_scan_bus() to pci_scan_bus_legacy() Yijing Wang
2015-01-16  1:44 ` Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44 ` [PATCH 06/28] PCI: Combine PCI domain and bus number in u32 arg Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44 ` Yijing Wang
2015-01-16  1:44 ` [PATCH 07/28] PCI: Pass PCI domain number combined with root bus number Yijing Wang
2015-01-16  1:44 ` Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44 ` [PATCH 08/28] PCI: Introduce pci_host_assign_domain_nr() to assign domain Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  9:08   ` Arnd Bergmann
2015-01-16  9:08   ` Arnd Bergmann
2015-01-16  9:08     ` Arnd Bergmann
2015-01-16  9:08     ` Arnd Bergmann
2015-01-16  9:08     ` Arnd Bergmann
2015-01-16  9:08     ` Arnd Bergmann
2015-01-16  9:40     ` Arnd Bergmann
2015-01-16  9:40     ` Arnd Bergmann
2015-01-16  9:40       ` Arnd Bergmann
2015-01-16  9:40       ` Arnd Bergmann
2015-01-16  9:40       ` Arnd Bergmann
2015-01-19  2:14       ` Yijing Wang
2015-01-19  2:14       ` Yijing Wang
2015-01-19  2:14         ` Yijing Wang
2015-01-19  2:14         ` Yijing Wang
2015-01-19  2:14         ` Yijing Wang
2015-01-19  2:14         ` Yijing Wang
2015-01-19  9:50         ` Arnd Bergmann
2015-01-19  9:50           ` Arnd Bergmann
2015-01-19  9:50           ` Arnd Bergmann
2015-01-19  9:50           ` Arnd Bergmann
2015-01-19 10:56           ` Yijing Wang
2015-01-19 10:56           ` Yijing Wang
2015-01-19 10:56             ` Yijing Wang
2015-01-19 10:56             ` Yijing Wang
2015-01-19 10:56             ` Yijing Wang
2015-01-19 10:56             ` Yijing Wang
2015-01-16  1:44 ` Yijing Wang
2015-01-16  1:44 ` [PATCH 09/28] PCI: Separate pci_host_bridge creation out of pci_create_root_bus() Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  9:14   ` Arnd Bergmann
2015-01-16  9:14     ` Arnd Bergmann
2015-01-16  9:14     ` Arnd Bergmann
2015-01-16  9:14     ` Arnd Bergmann
2015-01-16  9:14   ` Arnd Bergmann
2015-01-16  9:34   ` Arnd Bergmann
2015-01-16  9:34   ` Arnd Bergmann
2015-01-16  9:34     ` Arnd Bergmann
2015-01-16  9:34     ` Arnd Bergmann
2015-01-16  9:34     ` Arnd Bergmann
2015-01-19  2:39     ` Yijing Wang
2015-01-19  2:39       ` Yijing Wang
2015-01-19  2:39       ` Yijing Wang
2015-01-19  2:39       ` Yijing Wang
2015-01-19  2:39       ` Yijing Wang
2015-01-16  1:44 ` Yijing Wang
2015-01-16  1:44 ` Yijing Wang [this message]
2015-01-16  1:44   ` [PATCH 10/28] PCI: Save sysdata in pci_host_bridge drvdata Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  9:18   ` Arnd Bergmann
2015-01-16  9:18     ` Arnd Bergmann
2015-01-16  9:18     ` Arnd Bergmann
2015-01-16  9:18     ` Arnd Bergmann
2015-01-19  3:12     ` Yijing Wang
2015-01-19  3:12       ` Yijing Wang
2015-01-19  3:12       ` Yijing Wang
2015-01-19  3:12       ` Yijing Wang
2015-01-19  3:12       ` Yijing Wang
2015-01-19  9:52       ` Arnd Bergmann
2015-01-19  9:52         ` Arnd Bergmann
2015-01-19  9:52         ` Arnd Bergmann
2015-01-19  9:52         ` Arnd Bergmann
2015-01-19  3:12     ` Yijing Wang
2015-01-16  1:44 ` Yijing Wang
2015-01-16  1:44 ` [PATCH 11/28] PCI: Introduce pci_host_bridge_ops to setup host bridge Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  9:23   ` Arnd Bergmann
2015-01-16  9:23     ` Arnd Bergmann
2015-01-16  9:23     ` Arnd Bergmann
2015-01-16  9:23     ` Arnd Bergmann
2015-01-16  9:35     ` Arnd Bergmann
2015-01-16  9:35     ` Arnd Bergmann
2015-01-16  9:35       ` Arnd Bergmann
2015-01-16  9:35       ` Arnd Bergmann
2015-01-16  9:35       ` Arnd Bergmann
2015-01-16  9:23   ` Arnd Bergmann
2015-01-16  1:44 ` Yijing Wang
2015-01-16  1:44 ` [PATCH 12/28] PCI: Introduce new scan function pci_scan_root_bridge() Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44 ` Yijing Wang
2015-01-16  1:44 ` [PATCH 13/28] PCI/x86: Refine pci_acpi_scan_root() with generic pci_host_bridge Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44 ` Yijing Wang
2015-01-16  1:44 ` [PATCH 14/28] PCI/IA64: " Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44 ` Yijing Wang
2015-01-16  1:44 ` [PATCH 15/28] PCI/powerpc: Rename pcibios_root_bridge_prepare() for better readability Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44 ` Yijing Wang
2015-01-16  1:44 ` [PATCH 16/28] PCI/powerpc: Use pci_scan_root_bridge() for simplicity Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44 ` Yijing Wang
2015-01-16  1:44 ` [PATCH 17/28] PCI: Remove weak pcibios_root_bridge_prepare() Yijing Wang
2015-01-16  1:44 ` Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44 ` [PATCH 18/28] PCI/sparc: Use pci_scan_root_bridge() for simplicity Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16 10:01   ` Arnd Bergmann
2015-01-16 10:01   ` Arnd Bergmann
2015-01-16 10:01     ` Arnd Bergmann
2015-01-16 10:01     ` Arnd Bergmann
2015-01-16 10:01     ` Arnd Bergmann
2015-01-19  3:17     ` Yijing Wang
2015-01-19  3:17     ` Yijing Wang
2015-01-19  3:17       ` Yijing Wang
2015-01-19  3:17       ` Yijing Wang
2015-01-19  3:17       ` Yijing Wang
2015-01-19  3:17       ` Yijing Wang
2015-01-19  8:44       ` Arnd Bergmann
2015-01-19  8:44         ` Arnd Bergmann
2015-01-19  8:44         ` Arnd Bergmann
2015-01-19  8:44         ` Arnd Bergmann
2015-01-19 10:53         ` Yijing Wang
2015-01-19 10:53         ` Yijing Wang
2015-01-19 10:53           ` Yijing Wang
2015-01-19 10:53           ` Yijing Wang
2015-01-19 10:53           ` Yijing Wang
2015-01-19 10:53           ` Yijing Wang
2015-01-16  1:44 ` Yijing Wang
2015-01-16  1:44 ` [PATCH 19/28] PCI: Introduce pci_bus_child_max_busnr() Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44 ` Yijing Wang
2015-01-16  1:44 ` [PATCH 20/28] PCI/Parisc: Use pci_scan_root_bus() for simplicity Yijing Wang
2015-01-16  1:44 ` Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44 ` [PATCH 21/28] PCI/mvebu: Use pci_common_init_dev() to simplify code Yijing Wang
2015-01-16  1:44 ` Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44 ` [PATCH 22/28] PCI/tegra: Remove redundant tegra_pcie_scan_bus() Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44 ` Yijing Wang
2015-01-16  1:44 ` [PATCH 23/28] PCI/designware: Use pci_scan_root_bus() for simplicity Yijing Wang
2015-01-16  1:44 ` Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-17 16:39   ` Sergei Shtylyov
2015-01-17 16:39   ` Sergei Shtylyov
2015-01-17 16:39     ` Sergei Shtylyov
2015-01-17 16:39     ` Sergei Shtylyov
2015-01-17 16:39     ` Sergei Shtylyov
2015-01-19  3:17     ` Yijing Wang
2015-01-19  3:17       ` Yijing Wang
2015-01-19  3:17       ` Yijing Wang
2015-01-19  3:17       ` Yijing Wang
2015-01-19  3:17       ` Yijing Wang
2015-01-19  3:17     ` Yijing Wang
2015-01-16  1:44 ` [PATCH 24/28] PCI/xgene: Use pci_scan_root_bus() instead of pci_create_root_bus() Yijing Wang
2015-01-16  1:44 ` Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44 ` [PATCH 25/28] PCI: Rename __pci_create_root_bus() to pci_create_root_bus() Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44 ` Yijing Wang
2015-01-16  1:44 ` [PATCH 26/28] PCI: Export find_pci_host_bridge() Yijing Wang
2015-01-16  1:44 ` Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44 ` [PATCH 27/28] PCI: Remove platform specific pci_domain_nr() Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  9:44   ` Arnd Bergmann
2015-01-16  9:44   ` Arnd Bergmann
2015-01-16  9:44     ` Arnd Bergmann
2015-01-16  9:44     ` Arnd Bergmann
2015-01-16  9:44     ` Arnd Bergmann
2015-01-19  3:19     ` Yijing Wang
2015-01-19  3:19       ` Yijing Wang
2015-01-19  3:19       ` Yijing Wang
2015-01-19  3:19       ` Yijing Wang
2015-01-19  3:19       ` Yijing Wang
2015-01-19  3:19     ` Yijing Wang
2015-01-16  1:44 ` Yijing Wang
2015-01-16  1:44 ` [PATCH 28/28] PCI: Remove pci_bus_assign_domain_nr() Yijing Wang
2015-01-16  1:44 ` Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16  1:44   ` Yijing Wang
2015-01-16 10:12 ` [PATCH 00/28] Refine PCI scan interfaces and make generic pci host bridge Arnd Bergmann
2015-01-16 10:12 ` Arnd Bergmann
2015-01-16 10:12   ` Arnd Bergmann
2015-01-16 10:12   ` Arnd Bergmann
2015-01-16 10:12   ` Arnd Bergmann

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=1421372666-12288-11-git-send-email-wangyijing@huawei.com \
    --to=wangyijing@huawei.com \
    --cc=arnd@arndb.de \
    --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@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=linux@arm.linux.org.uk \
    --cc=liviu@dudau.co.uk \
    --cc=marc.zyngier@arm.com \
    --cc=tglx@linutronix.de \
    --cc=tony.luck@intel.com \
    --cc=x86@kernel.org \
    --cc=yinghai@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.