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>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Rusty Russell <rusty@rustcorp.com.au>,
	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 v7 30/31] PCI: Remove pci_bus_assign_domain_nr()
Date: Mon, 23 Mar 2015 20:40:56 +0800	[thread overview]
Message-ID: <1427114457-16687-31-git-send-email-wangyijing__31664.6707746715$1427114878$gmane$org@huawei.com> (raw)
In-Reply-To: <1427114457-16687-1-git-send-email-wangyijing@huawei.com>

Now we save the domain number in pci_host_bridge,
we could remove pci_bus_assign_domain_nr() and
clean the domain member in pci_bus. Also move
pci_host_assign_domain_nr() to drivers/pci/host-bridge.c
for simplicity.

Signed-off-by: Yijing Wang <wangyijing@huawei.com>
---
 drivers/pci/host-bridge.c |   61 +++++++++++++++++++++++++++++++++++++++++
 drivers/pci/pci.c         |   67 ---------------------------------------------
 drivers/pci/pci.h         |   13 ---------
 drivers/pci/probe.c       |   11 ++-----
 include/linux/pci.h       |    3 --
 5 files changed, 64 insertions(+), 91 deletions(-)

diff --git a/drivers/pci/host-bridge.c b/drivers/pci/host-bridge.c
index fa19023..5b85621 100644
--- a/drivers/pci/host-bridge.c
+++ b/drivers/pci/host-bridge.c
@@ -11,6 +11,8 @@
 static LIST_HEAD(pci_host_bridge_list);
 static DEFINE_MUTEX(pci_host_mutex);
 
+void pci_host_assign_domain_nr(struct pci_host_bridge *host);
+
 static void pci_release_host_bridge_dev(struct device *dev)
 {
 	struct pci_host_bridge *bridge = to_pci_host_bridge(dev);
@@ -159,6 +161,65 @@ int pci_domain_nr(struct pci_bus *bus)
 	return host->domain;
 }
 EXPORT_SYMBOL(pci_domain_nr);
+
+static atomic_t __domain_nr = ATOMIC_INIT(-1);
+
+int pci_get_new_domain_nr(void)
+{
+	return atomic_inc_return(&__domain_nr);
+}
+
+#ifdef CONFIG_PCI_DOMAINS_GENERIC
+static int pci_assign_domain_nr(struct device *dev)
+{
+	static int use_dt_domains = -1;
+	int domain = of_get_pci_domain_nr(dev->of_node);
+
+	/*
+	 * Check DT domain and use_dt_domains values.
+	 *
+	 * If DT domain property is valid (domain >= 0) and
+	 * use_dt_domains != 0, the DT assignment is valid since this means
+	 * we have not previously allocated a domain number by using
+	 * pci_get_new_domain_nr(); we should also update use_dt_domains to
+	 * 1, to indicate that we have just assigned a domain number from
+	 * DT.
+	 *
+	 * If DT domain property value is not valid (ie domain < 0), and we
+	 * have not previously assigned a domain number from DT
+	 * (use_dt_domains != 1) we should assign a domain number by
+	 * using the:
+	 *
+	 * pci_get_new_domain_nr()
+	 *
+	 * API and update the use_dt_domains value to keep track of method we
+	 * are using to assign domain numbers (use_dt_domains = 0).
+	 *
+	 * All other combinations imply we have a platform that is trying
+	 * to mix domain numbers obtained from DT and pci_get_new_domain_nr(),
+	 * which is a recipe for domain mishandling and it is prevented by
+	 * invalidating the domain value (domain = -1) and printing a
+	 * corresponding error.
+	 */
+	if (domain >= 0 && use_dt_domains) {
+		use_dt_domains = 1;
+	} else if (domain < 0 && use_dt_domains != 1) {
+		use_dt_domains = 0;
+		domain = pci_get_new_domain_nr();
+	} else {
+		dev_err(dev, "Node %s has inconsistent \"linux,pci-domain\" property in DT\n",
+			dev->of_node->full_name);
+		domain = -1;
+	}
+
+	return domain;
+}
+
+void pci_host_assign_domain_nr(struct pci_host_bridge *host)
+{
+	host->domain = pci_assign_domain_nr(host->dev.parent);
+}
+#endif
 #endif
 
 void pci_set_host_bridge_release(struct pci_host_bridge *bridge,
diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
index 8a2f12c..044801c 100644
--- a/drivers/pci/pci.c
+++ b/drivers/pci/pci.c
@@ -4515,73 +4515,6 @@ static void pci_no_domains(void)
 #endif
 }
 
-#ifdef CONFIG_PCI_DOMAINS
-static atomic_t __domain_nr = ATOMIC_INIT(-1);
-
-int pci_get_new_domain_nr(void)
-{
-	return atomic_inc_return(&__domain_nr);
-}
-
-#ifdef CONFIG_PCI_DOMAINS_GENERIC
-static int pci_assign_domain_nr(struct device *dev)
-{
-	static int use_dt_domains = -1;
-	int domain = of_get_pci_domain_nr(dev->of_node);
-
-	/*
-	 * Check DT domain and use_dt_domains values.
-	 *
-	 * If DT domain property is valid (domain >= 0) and
-	 * use_dt_domains != 0, the DT assignment is valid since this means
-	 * we have not previously allocated a domain number by using
-	 * pci_get_new_domain_nr(); we should also update use_dt_domains to
-	 * 1, to indicate that we have just assigned a domain number from
-	 * DT.
-	 *
-	 * If DT domain property value is not valid (ie domain < 0), and we
-	 * have not previously assigned a domain number from DT
-	 * (use_dt_domains != 1) we should assign a domain number by
-	 * using the:
-	 *
-	 * pci_get_new_domain_nr()
-	 *
-	 * API and update the use_dt_domains value to keep track of method we
-	 * are using to assign domain numbers (use_dt_domains = 0).
-	 *
-	 * All other combinations imply we have a platform that is trying
-	 * to mix domain numbers obtained from DT and pci_get_new_domain_nr(),
-	 * which is a recipe for domain mishandling and it is prevented by
-	 * invalidating the domain value (domain = -1) and printing a
-	 * corresponding error.
-	 */
-	if (domain >= 0 && use_dt_domains) {
-		use_dt_domains = 1;
-	} else if (domain < 0 && use_dt_domains != 1) {
-		use_dt_domains = 0;
-		domain = pci_get_new_domain_nr();
-	} else {
-		dev_err(dev, "Node %s has inconsistent \"linux,pci-domain\" property in DT\n",
-			dev->of_node->full_name);
-		domain = -1;
-	}
-
-	return domain;
-}
-
-void pci_bus_assign_domain_nr(struct pci_bus *bus, struct device *parent)
-{
-	bus->domain_nr = pci_assign_domain_nr(parent);
-}
-
-void pci_host_assign_domain_nr(struct pci_host_bridge *host)
-{
-	host->domain = pci_assign_domain_nr(host->dev.parent);
-}
-
-#endif
-#endif
-
 /**
  * pci_ext_cfg_avail - can we access extended PCI config space?
  *
diff --git a/drivers/pci/pci.h b/drivers/pci/pci.h
index ef10cc1..a6e4d8f 100644
--- a/drivers/pci/pci.h
+++ b/drivers/pci/pci.h
@@ -321,19 +321,6 @@ static inline int pci_dev_specific_reset(struct pci_dev *dev, int probe)
 }
 #endif
 
-#ifdef CONFIG_PCI_DOMAINS_GENERIC
-void pci_bus_assign_domain_nr(struct pci_bus *bus, struct device *parent);
-void pci_host_assign_domain_nr(struct pci_host_bridge *host);
-#else
-static inline void pci_bus_assign_domain_nr(struct pci_bus *bus,
-					struct device *parent)
-{
-}
-static inline void pci_host_assign_domain_nr(struct pci_host_bridge *host)
-{
-}
-#endif
-
 struct pci_host_bridge *pci_create_host_bridge(
 		struct device *parent, int domain, int bus, void *sysdata,
 		struct list_head *resources, struct pci_host_bridge_ops *ops);
diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c
index cb0237f..53e4887 100644
--- a/drivers/pci/probe.c
+++ b/drivers/pci/probe.c
@@ -480,7 +480,7 @@ void pci_read_bridge_bases(struct pci_bus *child)
 	}
 }
 
-static struct pci_bus *pci_alloc_bus(struct pci_bus *parent)
+static struct pci_bus *pci_alloc_bus(void)
 {
 	struct pci_bus *b;
 
@@ -495,10 +495,6 @@ static struct pci_bus *pci_alloc_bus(struct pci_bus *parent)
 	INIT_LIST_HEAD(&b->resources);
 	b->max_bus_speed = PCI_SPEED_UNKNOWN;
 	b->cur_bus_speed = PCI_SPEED_UNKNOWN;
-#ifdef CONFIG_PCI_DOMAINS_GENERIC
-	if (parent)
-		b->domain_nr = parent->domain_nr;
-#endif
 	return b;
 }
 
@@ -645,7 +641,7 @@ static struct pci_bus *pci_alloc_child_bus(struct pci_bus *parent,
 	/*
 	 * Allocate a new bus, and inherit stuff from the parent..
 	 */
-	child = pci_alloc_bus(parent);
+	child = pci_alloc_bus();
 	if (!child)
 		return NULL;
 
@@ -1865,7 +1861,7 @@ static struct pci_bus *pci_create_root_bus(
 	char *fmt;
 
 	parent = bridge->dev.parent;
-	b = pci_alloc_bus(NULL);
+	b = pci_alloc_bus();
 	if (!b)
 		return NULL;
 
@@ -1873,7 +1869,6 @@ static struct pci_bus *pci_create_root_bus(
 	b->ops = ops;
 	b->number = b->busn_res.start =
 		pci_host_first_busnr(bridge);
-	pci_bus_assign_domain_nr(b, parent);
 
 	bridge->bus = b;
 	b->bridge = get_device(&bridge->dev);
diff --git a/include/linux/pci.h b/include/linux/pci.h
index c2c6675..7ef205c 100644
--- a/include/linux/pci.h
+++ b/include/linux/pci.h
@@ -469,9 +469,6 @@ struct pci_bus {
 	unsigned char	primary;	/* number of primary bridge */
 	unsigned char	max_bus_speed;	/* enum pci_bus_speed */
 	unsigned char	cur_bus_speed;	/* enum pci_bus_speed */
-#ifdef CONFIG_PCI_DOMAINS_GENERIC
-	int		domain_nr;
-#endif
 
 	char		name[48];
 
-- 
1.7.1

  parent reply	other threads:[~2015-03-23 12:40 UTC|newest]

Thread overview: 191+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-03-23 12:40 [PATCH v7 00/31] Refine PCI scan interfaces and make generic pci host bridge Yijing Wang
2015-03-23 12:40 ` Yijing Wang
2015-03-23 12:40 ` Yijing Wang
2015-03-23 12:40 ` Yijing Wang
2015-03-23 12:40 ` Yijing Wang
2015-03-23 12:40 ` [PATCH v7 01/31] xen/PCI: Don't use deprecated function pci_scan_bus_parented() Yijing Wang
2015-03-23 12:40 ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40 ` Yijing Wang
2015-03-23 12:40 ` [PATCH v7 02/31] PCI: Remove deprecated pci_scan_bus_parented() Yijing Wang
2015-03-23 12:40 ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40 ` [PATCH v7 03/31] PCI: Save domain in pci_host_bridge Yijing Wang
2015-03-23 12:40 ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40 ` [PATCH v7 04/31] PCI: Move pci_bus_assign_domain_nr() declaration into drivers/pci/pci.h Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40 ` Yijing Wang
2015-03-23 12:40 ` [PATCH v7 05/31] PCI: Introduce pci_host_assign_domain_nr() to assign domain Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40 ` Yijing Wang
2015-03-23 12:40 ` [PATCH v7 06/31] PCI: Separate pci_host_bridge creation out of pci_create_root_bus() Yijing Wang
2015-03-23 12:40 ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40 ` [PATCH v7 07/31] PCI: Add default bus resource in pci_host_bridge Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40 ` Yijing Wang
2015-03-23 12:40 ` [PATCH v7 08/31] PCI: Update pci_host_bridge bus resource Yijing Wang
2015-03-23 12:40 ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40 ` [PATCH v7 09/31] PCI: Introduce pci_host_first_busnr() function Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40 ` [PATCH v7 10/31] PCI: Introduce pci_host_bridge_list to manage host bridges Yijing Wang
2015-03-23 12:40 ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40 ` [PATCH v7 11/31] PCI: Save sysdata in pci_host_bridge drvdata Yijing Wang
2015-03-23 12:40 ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40 ` [PATCH v7 12/31] powerpc/PCI: Rename pcibios_root_bridge_prepare() to pcibios_set_root_bus_speed() Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40 ` Yijing Wang
2015-03-23 12:40 ` [PATCH v7 13/31] PCI: Move pcibios_root_bridge_prepare() to pci_create_host_bridge() Yijing Wang
2015-03-23 12:40 ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40 ` [PATCH v7 14/31] PCI: Introduce pci_host_bridge_ops to support host specific operations Yijing Wang
2015-03-23 12:40 ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40 ` [PATCH v7 15/31] PCI: Introduce new scan function pci_scan_host_bridge() Yijing Wang
2015-03-23 12:40 ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40 ` [PATCH v7 16/31] PCI: Introduce pci_bus_child_max_busnr() Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40 ` Yijing Wang
2015-03-23 12:40 ` [PATCH v7 17/31] x86/PCI: Refine pci_acpi_scan_root() with generic pci_host_bridge Yijing Wang
2015-03-23 12:40 ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40 ` [PATCH v7 18/31] ia64/PCI: " Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40 ` [PATCH v7 19/31] powerpc/pci: Use pci_scan_host_bridge() for simplicity Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40 ` Yijing Wang
2015-03-23 12:40 ` [PATCH v7 20/31] PCI: Remove pcibios_root_bridge_prepare() and pcibos_set_root_bus_speed() Yijing Wang
2015-03-23 12:40 ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40 ` [PATCH v7 21/31] sparc/PCI: Use pci_scan_host_bridge() for simplicity Yijing Wang
2015-03-23 12:40 ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40 ` [PATCH v7 22/31] parisc/PCI: Use pci_scan_root_bus() " Yijing Wang
2015-03-23 12:40 ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40 ` [PATCH v7 23/31] PCI/mvebu: Use pci_common_init_dev() to simplify code Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40 ` Yijing Wang
     [not found] ` <1427114457-16687-1-git-send-email-wangyijing-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>
2015-03-23 12:40   ` [PATCH v7 24/31] PCI/tegra: Remove redundant tegra_pcie_scan_bus() Yijing Wang
2015-03-23 12:40     ` Yijing Wang
2015-03-23 12:40     ` Yijing Wang
2015-03-23 12:40     ` Yijing Wang
2015-03-23 12:40     ` Yijing Wang
2015-03-23 12:40 ` Yijing Wang
2015-03-23 12:40 ` [PATCH v7 25/31] PCI/designware: Use pci_scan_root_bus() for simplicity Yijing Wang
2015-03-23 12:40 ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40 ` [PATCH v7 26/31] PCI/xgene: Use pci_scan_root_bus() instead of pci_create_root_bus() Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40 ` Yijing Wang
2015-03-23 12:40 ` [PATCH v7 27/31] PCI: Rename __pci_create_root_bus() to pci_create_root_bus() Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40 ` [PATCH v7 28/31] PCI: rename to pci_find_host_bridge() Yijing Wang
2015-03-23 12:40 ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40 ` [PATCH v7 29/31] PCI: Remove platform specific pci_domain_nr() Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40 ` Yijing Wang
2015-03-23 12:40 ` Yijing Wang [this message]
2015-03-23 12:40 ` [PATCH v7 30/31] PCI: Remove pci_bus_assign_domain_nr() Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40 ` [PATCH v7 31/31] PCI: Clean up CONFIG_PCI_DOMAINS_GENERIC Yijing Wang
2015-03-23 12:40 ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40   ` Yijing Wang
2015-03-23 12:40   ` 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='1427114457-16687-31-git-send-email-wangyijing__31664.6707746715$1427114878$gmane$org@huawei.com' \
    --to=wangyijing@huawei.com \
    --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=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.