All of lore.kernel.org
 help / color / mirror / Atom feed
From: Catalin Marinas <catalin.marinas@arm.com>
To: Robin Murphy <Robin.Murphy@arm.com>
Cc: Murali Karicheri <m-karicheri2@ti.com>,
	"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
	Russell King <linux@arm.linux.org.uk>,
	Arnd Bergmann <arnd@arndb.de>,
	"linux-pci@vger.kernel.org" <linux-pci@vger.kernel.org>,
	Joerg Roedel <joro@8bytes.org>, Will Deacon <Will.Deacon@arm.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"grant.likely@linaro.org" <grant.likely@linaro.org>,
	"iommu@lists.linux-foundation.org"
	<iommu@lists.linux-foundation.org>,
	Rob Herring <robh+dt@kernel.org>,
	"suravee.suthikulpanit@amd.com" <suravee.suthikulpanit@amd.com>,
	Bjorn Helgaas <bhelgaas@google.com>,
	"linux-arm-kernel@lists.infradead.org" 
	<linux-arm-kernel@lists.infradead.org>
Subject: Re: [PATCH v4 3/6] of: fix size when dma-range is not used
Date: Wed, 28 Jan 2015 17:30:48 +0000	[thread overview]
Message-ID: <20150128173048.GE31752@e104818-lin.cambridge.arm.com> (raw)
In-Reply-To: <54C9068D.8050701@arm.com>

On Wed, Jan 28, 2015 at 03:55:57PM +0000, Robin Murphy wrote:
> On 28/01/15 11:05, Catalin Marinas wrote:
> > On Tue, Jan 27, 2015 at 06:55:15PM +0000, Murali Karicheri wrote:
> >> How about having the logic like this?
> >>
> >> 	ret = of_dma_get_range(np, &dma_addr, &paddr, &size);
> >> 	if (ret < 0) {
> >> 		dma_addr = offset = 0;
> >> 		size = dev->coherent_dma_mask + 1;
> >> 	} else {
> >> 		offset = PFN_DOWN(paddr - dma_addr);
> >> 		dev_dbg(dev, "dma_pfn_offset(%#08lx)\n", offset);
> >> 	}
> >>
> >> 	if (is_power_of_2(size + 1))
> >> 		size = size + 1;
> >> 	else if (!is_power_of_2(size))
> >> 	{
> >> 		dev_err(dev, "invalid size\n");
> >> 		return;
> >> 	}
> >
> > In of_dma_configure(), we currently assume that the default coherent
> > mask is 32-bit. In this thread:
> >
> > http://article.gmane.org/gmane.linux.kernel/1835096
> >
> > we talked about setting the coherent mask based on size automatically.
> > I'm not sure about the size but I think we can assume is 32-bit mask + 1
> > if it is not specified in the DT. Instead of just assuming a default
> > mask, let's assume a default size and create the mask based on this
> > (untested):
> >
> > diff --git a/drivers/of/platform.c b/drivers/of/platform.c
> > index 5b33c6a21807..9ff8d1286b44 100644
> > --- a/drivers/of/platform.c
> > +++ b/drivers/of/platform.c
> > @@ -170,10 +170,10 @@ static void of_dma_configure(struct device *dev)
> >   	struct iommu_ops *iommu;
> >
> >   	/*
> > -	 * Set default dma-mask to 32 bit. Drivers are expected to setup
> > -	 * the correct supported dma_mask.
> > +	 * Set default size to cover the 32-bit. Drivers are expected to setup
> > +	 * the correct size and dma_mask.
> >   	 */
> > -	dev->coherent_dma_mask = DMA_BIT_MASK(32);
> > +	size = 1ULL << 32;
> >
> >   	/*
> >   	 * Set it to coherent_dma_mask by default if the architecture
> > @@ -185,13 +185,24 @@ static void of_dma_configure(struct device *dev)
> >   	ret = of_dma_get_range(dev->of_node, &dma_addr, &paddr, &size);
> >   	if (ret < 0) {
> >   		dma_addr = offset = 0;
> > -		size = dev->coherent_dma_mask;
> >   	} else {
> >   		offset = PFN_DOWN(paddr - dma_addr);
> >   		dev_dbg(dev, "dma_pfn_offset(%#08lx)\n", dev->dma_pfn_offset);
> >   	}
> >   	dev->dma_pfn_offset = offset;
> >
> > +	/*
> > +	 * Workaround for DTs setting the size to a mask or 0.
> > +	 */
> > +	if (is_power_of_2(size + 1))
> > +		size += 1;
> 
> In fact, since the ilog2 below ends up effectively rounding down, we 
> might as well do away with this check as well and just add 1 
> unconditionally. The only time it makes any difference is when we want 
> it to anyway!

Well, we could simply ignore the is_power_of_2() check but without
incrementing size as we don't know what arch_setup_dma_ops() does with
it.

I think we can remove this check altogether (we leaved without it for a
while) but we need to add 1 when calculating the mask:

	dev->coherent_dma_mask = min(DMA_BIT_MASK(32),
				     DMA_BIT_MASK(ilog2(size + 1)));

-- 
Catalin

WARNING: multiple messages have this Message-ID (diff)
From: Catalin Marinas <catalin.marinas-5wv7dgnIgG8@public.gmane.org>
To: Robin Murphy <Robin.Murphy-5wv7dgnIgG8@public.gmane.org>
Cc: "devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
	<devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	Russell King <linux-lFZ/pmaqli7XmaaqVzeoHQ@public.gmane.org>,
	Arnd Bergmann <arnd-r2nGTMty4D4@public.gmane.org>,
	"linux-pci-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
	<linux-pci-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	Will Deacon <Will.Deacon-5wv7dgnIgG8@public.gmane.org>,
	"linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
	<linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	Rob Herring <robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
	Bjorn Helgaas <bhelgaas-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>,
	"iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org"
	<iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org>,
	Murali Karicheri <m-karicheri2-l0cyMroinI0@public.gmane.org>,
	"grant.likely-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org"
	<grant.likely-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>,
	"linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org"
	<linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org>
Subject: Re: [PATCH v4 3/6] of: fix size when dma-range is not used
Date: Wed, 28 Jan 2015 17:30:48 +0000	[thread overview]
Message-ID: <20150128173048.GE31752@e104818-lin.cambridge.arm.com> (raw)
In-Reply-To: <54C9068D.8050701-5wv7dgnIgG8@public.gmane.org>

On Wed, Jan 28, 2015 at 03:55:57PM +0000, Robin Murphy wrote:
> On 28/01/15 11:05, Catalin Marinas wrote:
> > On Tue, Jan 27, 2015 at 06:55:15PM +0000, Murali Karicheri wrote:
> >> How about having the logic like this?
> >>
> >> 	ret = of_dma_get_range(np, &dma_addr, &paddr, &size);
> >> 	if (ret < 0) {
> >> 		dma_addr = offset = 0;
> >> 		size = dev->coherent_dma_mask + 1;
> >> 	} else {
> >> 		offset = PFN_DOWN(paddr - dma_addr);
> >> 		dev_dbg(dev, "dma_pfn_offset(%#08lx)\n", offset);
> >> 	}
> >>
> >> 	if (is_power_of_2(size + 1))
> >> 		size = size + 1;
> >> 	else if (!is_power_of_2(size))
> >> 	{
> >> 		dev_err(dev, "invalid size\n");
> >> 		return;
> >> 	}
> >
> > In of_dma_configure(), we currently assume that the default coherent
> > mask is 32-bit. In this thread:
> >
> > http://article.gmane.org/gmane.linux.kernel/1835096
> >
> > we talked about setting the coherent mask based on size automatically.
> > I'm not sure about the size but I think we can assume is 32-bit mask + 1
> > if it is not specified in the DT. Instead of just assuming a default
> > mask, let's assume a default size and create the mask based on this
> > (untested):
> >
> > diff --git a/drivers/of/platform.c b/drivers/of/platform.c
> > index 5b33c6a21807..9ff8d1286b44 100644
> > --- a/drivers/of/platform.c
> > +++ b/drivers/of/platform.c
> > @@ -170,10 +170,10 @@ static void of_dma_configure(struct device *dev)
> >   	struct iommu_ops *iommu;
> >
> >   	/*
> > -	 * Set default dma-mask to 32 bit. Drivers are expected to setup
> > -	 * the correct supported dma_mask.
> > +	 * Set default size to cover the 32-bit. Drivers are expected to setup
> > +	 * the correct size and dma_mask.
> >   	 */
> > -	dev->coherent_dma_mask = DMA_BIT_MASK(32);
> > +	size = 1ULL << 32;
> >
> >   	/*
> >   	 * Set it to coherent_dma_mask by default if the architecture
> > @@ -185,13 +185,24 @@ static void of_dma_configure(struct device *dev)
> >   	ret = of_dma_get_range(dev->of_node, &dma_addr, &paddr, &size);
> >   	if (ret < 0) {
> >   		dma_addr = offset = 0;
> > -		size = dev->coherent_dma_mask;
> >   	} else {
> >   		offset = PFN_DOWN(paddr - dma_addr);
> >   		dev_dbg(dev, "dma_pfn_offset(%#08lx)\n", dev->dma_pfn_offset);
> >   	}
> >   	dev->dma_pfn_offset = offset;
> >
> > +	/*
> > +	 * Workaround for DTs setting the size to a mask or 0.
> > +	 */
> > +	if (is_power_of_2(size + 1))
> > +		size += 1;
> 
> In fact, since the ilog2 below ends up effectively rounding down, we 
> might as well do away with this check as well and just add 1 
> unconditionally. The only time it makes any difference is when we want 
> it to anyway!

Well, we could simply ignore the is_power_of_2() check but without
incrementing size as we don't know what arch_setup_dma_ops() does with
it.

I think we can remove this check altogether (we leaved without it for a
while) but we need to add 1 when calculating the mask:

	dev->coherent_dma_mask = min(DMA_BIT_MASK(32),
				     DMA_BIT_MASK(ilog2(size + 1)));

-- 
Catalin

WARNING: multiple messages have this Message-ID (diff)
From: catalin.marinas@arm.com (Catalin Marinas)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v4 3/6] of: fix size when dma-range is not used
Date: Wed, 28 Jan 2015 17:30:48 +0000	[thread overview]
Message-ID: <20150128173048.GE31752@e104818-lin.cambridge.arm.com> (raw)
In-Reply-To: <54C9068D.8050701@arm.com>

On Wed, Jan 28, 2015 at 03:55:57PM +0000, Robin Murphy wrote:
> On 28/01/15 11:05, Catalin Marinas wrote:
> > On Tue, Jan 27, 2015 at 06:55:15PM +0000, Murali Karicheri wrote:
> >> How about having the logic like this?
> >>
> >> 	ret = of_dma_get_range(np, &dma_addr, &paddr, &size);
> >> 	if (ret < 0) {
> >> 		dma_addr = offset = 0;
> >> 		size = dev->coherent_dma_mask + 1;
> >> 	} else {
> >> 		offset = PFN_DOWN(paddr - dma_addr);
> >> 		dev_dbg(dev, "dma_pfn_offset(%#08lx)\n", offset);
> >> 	}
> >>
> >> 	if (is_power_of_2(size + 1))
> >> 		size = size + 1;
> >> 	else if (!is_power_of_2(size))
> >> 	{
> >> 		dev_err(dev, "invalid size\n");
> >> 		return;
> >> 	}
> >
> > In of_dma_configure(), we currently assume that the default coherent
> > mask is 32-bit. In this thread:
> >
> > http://article.gmane.org/gmane.linux.kernel/1835096
> >
> > we talked about setting the coherent mask based on size automatically.
> > I'm not sure about the size but I think we can assume is 32-bit mask + 1
> > if it is not specified in the DT. Instead of just assuming a default
> > mask, let's assume a default size and create the mask based on this
> > (untested):
> >
> > diff --git a/drivers/of/platform.c b/drivers/of/platform.c
> > index 5b33c6a21807..9ff8d1286b44 100644
> > --- a/drivers/of/platform.c
> > +++ b/drivers/of/platform.c
> > @@ -170,10 +170,10 @@ static void of_dma_configure(struct device *dev)
> >   	struct iommu_ops *iommu;
> >
> >   	/*
> > -	 * Set default dma-mask to 32 bit. Drivers are expected to setup
> > -	 * the correct supported dma_mask.
> > +	 * Set default size to cover the 32-bit. Drivers are expected to setup
> > +	 * the correct size and dma_mask.
> >   	 */
> > -	dev->coherent_dma_mask = DMA_BIT_MASK(32);
> > +	size = 1ULL << 32;
> >
> >   	/*
> >   	 * Set it to coherent_dma_mask by default if the architecture
> > @@ -185,13 +185,24 @@ static void of_dma_configure(struct device *dev)
> >   	ret = of_dma_get_range(dev->of_node, &dma_addr, &paddr, &size);
> >   	if (ret < 0) {
> >   		dma_addr = offset = 0;
> > -		size = dev->coherent_dma_mask;
> >   	} else {
> >   		offset = PFN_DOWN(paddr - dma_addr);
> >   		dev_dbg(dev, "dma_pfn_offset(%#08lx)\n", dev->dma_pfn_offset);
> >   	}
> >   	dev->dma_pfn_offset = offset;
> >
> > +	/*
> > +	 * Workaround for DTs setting the size to a mask or 0.
> > +	 */
> > +	if (is_power_of_2(size + 1))
> > +		size += 1;
> 
> In fact, since the ilog2 below ends up effectively rounding down, we 
> might as well do away with this check as well and just add 1 
> unconditionally. The only time it makes any difference is when we want 
> it to anyway!

Well, we could simply ignore the is_power_of_2() check but without
incrementing size as we don't know what arch_setup_dma_ops() does with
it.

I think we can remove this check altogether (we leaved without it for a
while) but we need to add 1 when calculating the mask:

	dev->coherent_dma_mask = min(DMA_BIT_MASK(32),
				     DMA_BIT_MASK(ilog2(size + 1)));

-- 
Catalin

  reply	other threads:[~2015-01-29  2:28 UTC|newest]

Thread overview: 159+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-01-23 22:32 [PATCH v4 0/6] PCI: get DMA configuration from parent device Murali Karicheri
2015-01-23 22:32 ` Murali Karicheri
2015-01-23 22:32 ` Murali Karicheri
2015-01-23 22:32 ` [PATCH v4 1/6] of: iommu: add ptr to OF node arg to of_iommu_configure() Murali Karicheri
2015-01-23 22:32   ` Murali Karicheri
2015-01-23 22:32   ` Murali Karicheri
2015-01-25 13:32   ` Laurent Pinchart
2015-01-25 13:32     ` Laurent Pinchart
2015-01-25 13:32     ` Laurent Pinchart
2015-01-26 18:49     ` Murali Karicheri
2015-01-26 18:49       ` Murali Karicheri
2015-01-26 18:49       ` Murali Karicheri
2015-01-28 11:33       ` Will Deacon
2015-01-28 11:33         ` Will Deacon
2015-01-28 11:33         ` Will Deacon
2015-01-28 11:33         ` Will Deacon
2015-01-28 12:23         ` Laurent Pinchart
2015-01-28 12:23           ` Laurent Pinchart
2015-01-28 12:23           ` Laurent Pinchart
2015-01-28 12:23           ` Laurent Pinchart
2015-01-28 12:29           ` Will Deacon
2015-01-28 12:29             ` Will Deacon
2015-01-28 12:29             ` Will Deacon
2015-01-28 12:29             ` Will Deacon
2015-01-28 13:15             ` Laurent Pinchart
2015-01-28 13:15               ` Laurent Pinchart
2015-01-28 13:15               ` Laurent Pinchart
2015-01-28 13:15               ` Laurent Pinchart
2015-01-28 13:32               ` Will Deacon
2015-01-28 13:32                 ` Will Deacon
2015-01-28 13:32                 ` Will Deacon
2015-01-28 13:32                 ` Will Deacon
2015-01-28 15:21                 ` Murali Karicheri
2015-01-28 15:21                   ` Murali Karicheri
2015-01-28 15:21                   ` Murali Karicheri
2015-01-28 15:21                   ` Murali Karicheri
2015-01-28 23:32                 ` Laurent Pinchart
2015-01-28 23:32                   ` Laurent Pinchart
2015-01-28 23:32                   ` Laurent Pinchart
2015-01-28 23:32                   ` Laurent Pinchart
2015-01-29 14:59                   ` Murali Karicheri
2015-01-29 14:59                     ` Murali Karicheri
2015-01-29 14:59                     ` Murali Karicheri
2015-01-29 14:59                     ` Murali Karicheri
2015-01-29 16:49                   ` Rob Herring
2015-01-29 16:49                     ` Rob Herring
2015-01-29 16:49                     ` Rob Herring
2015-01-29 16:49                     ` Rob Herring
2015-01-30  0:24                     ` Laurent Pinchart
2015-01-30  0:24                       ` Laurent Pinchart
2015-01-30  0:24                       ` Laurent Pinchart
2015-01-30  0:24                       ` Laurent Pinchart
2015-01-30 15:23                       ` Murali Karicheri
2015-01-30 15:23                         ` Murali Karicheri
2015-01-30 15:23                         ` Murali Karicheri
2015-01-30 15:23                         ` Murali Karicheri
2015-01-23 22:32 ` [PATCH v4 2/6] of: move of_dma_configure() to device.c to help re-use Murali Karicheri
2015-01-23 22:32   ` Murali Karicheri
2015-01-23 22:32   ` Murali Karicheri
2015-01-23 22:32 ` [PATCH v4 3/6] of: fix size when dma-range is not used Murali Karicheri
2015-01-23 22:32   ` Murali Karicheri
2015-01-23 22:32   ` Murali Karicheri
2015-01-27 11:27   ` Robin Murphy
2015-01-27 11:27     ` Robin Murphy
2015-01-27 11:27     ` Robin Murphy
2015-01-27 15:44     ` Murali Karicheri
2015-01-27 15:44       ` Murali Karicheri
2015-01-27 15:44       ` Murali Karicheri
2015-01-27 18:55     ` Murali Karicheri
2015-01-27 18:55       ` Murali Karicheri
2015-01-27 18:55       ` Murali Karicheri
2015-01-27 18:55       ` Murali Karicheri
2015-01-28 11:05       ` Catalin Marinas
2015-01-28 11:05         ` Catalin Marinas
2015-01-28 11:05         ` Catalin Marinas
2015-01-28 11:05         ` Catalin Marinas
2015-01-28 15:45         ` Rob Herring
2015-01-28 15:45           ` Rob Herring
2015-01-28 15:45           ` Rob Herring
2015-01-28 15:45           ` Rob Herring
2015-01-28 17:23           ` Catalin Marinas
2015-01-28 17:23             ` Catalin Marinas
2015-01-28 17:23             ` Catalin Marinas
2015-01-28 17:23             ` Catalin Marinas
2015-01-28 17:34           ` Murali Karicheri
2015-01-28 17:34             ` Murali Karicheri
2015-01-28 17:34             ` Murali Karicheri
2015-01-28 17:34             ` Murali Karicheri
2015-01-28 15:55         ` Robin Murphy
2015-01-28 15:55           ` Robin Murphy
2015-01-28 15:55           ` Robin Murphy
2015-01-28 15:55           ` Robin Murphy
2015-01-28 17:30           ` Catalin Marinas [this message]
2015-01-28 17:30             ` Catalin Marinas
2015-01-28 17:30             ` Catalin Marinas
2015-01-28 17:30             ` Catalin Marinas
2015-01-30 18:06             ` Murali Karicheri
2015-01-30 18:06               ` Murali Karicheri
2015-01-30 18:06               ` Murali Karicheri
2015-02-02 12:18               ` Catalin Marinas
2015-02-02 12:18                 ` Catalin Marinas
2015-02-02 12:18                 ` Catalin Marinas
2015-02-02 12:18                 ` Catalin Marinas
2015-02-02 16:10                 ` Murali Karicheri
2015-02-02 16:10                   ` Murali Karicheri
2015-02-02 16:10                   ` Murali Karicheri
2015-02-02 16:10                   ` Murali Karicheri
2015-02-05 21:42                 ` Murali Karicheri
2015-02-05 21:42                   ` Murali Karicheri
2015-02-05 21:42                   ` Murali Karicheri
2015-02-05 22:44                   ` Catalin Marinas
2015-02-05 22:44                     ` Catalin Marinas
2015-02-05 22:44                     ` Catalin Marinas
2015-02-05 22:44                     ` Catalin Marinas
2015-01-23 22:32 ` [PATCH v4 4/6] of/pci: add of_pci_dma_configure() update dma configuration Murali Karicheri
2015-01-23 22:32   ` Murali Karicheri
2015-01-23 22:32   ` Murali Karicheri
2015-01-23 23:41   ` Bjorn Helgaas
2015-01-23 23:41     ` Bjorn Helgaas
2015-01-23 23:41     ` Bjorn Helgaas
2015-01-26 23:25     ` Murali Karicheri
2015-01-26 23:25       ` Murali Karicheri
2015-01-26 23:25       ` Murali Karicheri
2015-01-26 23:59       ` Bjorn Helgaas
2015-01-26 23:59         ` Bjorn Helgaas
2015-01-26 23:59         ` Bjorn Helgaas
2015-01-27 18:14         ` Murali Karicheri
2015-01-27 18:14           ` Murali Karicheri
2015-01-27 18:14           ` Murali Karicheri
2015-01-27 18:42           ` Bjorn Helgaas
2015-01-27 18:42             ` Bjorn Helgaas
2015-01-27 18:42             ` Bjorn Helgaas
2015-01-27 18:45             ` Murali Karicheri
2015-01-27 18:45               ` Murali Karicheri
2015-01-27 18:45               ` Murali Karicheri
2015-01-23 22:32 ` [PATCH v4 5/6] PCI: update dma configuration from DT Murali Karicheri
2015-01-23 22:32   ` Murali Karicheri
2015-01-23 22:32   ` Murali Karicheri
2015-01-23 23:27   ` Bjorn Helgaas
2015-01-23 23:27     ` Bjorn Helgaas
2015-01-23 23:27     ` Bjorn Helgaas
2015-01-26 23:28     ` Murali Karicheri
2015-01-26 23:28       ` Murali Karicheri
2015-01-26 23:28       ` Murali Karicheri
2015-01-23 22:32 ` [PATCH v4 6/6] arm: dma-mapping: updates to limit dma_mask and iommu mapping size Murali Karicheri
2015-01-23 22:32   ` Murali Karicheri
2015-01-23 22:32   ` Murali Karicheri
2015-01-27 11:12   ` Robin Murphy
2015-01-27 11:12     ` Robin Murphy
2015-01-27 11:12     ` Robin Murphy
2015-01-27 11:12     ` Robin Murphy
2015-01-27 11:34     ` Catalin Marinas
2015-01-27 11:34       ` Catalin Marinas
2015-01-27 11:34       ` Catalin Marinas
2015-01-27 11:34       ` Catalin Marinas
2015-01-27 15:19       ` Murali Karicheri
2015-01-27 15:19         ` Murali Karicheri
2015-01-27 15:19         ` Murali Karicheri
2015-01-27 15:19         ` Murali Karicheri

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=20150128173048.GE31752@e104818-lin.cambridge.arm.com \
    --to=catalin.marinas@arm.com \
    --cc=Robin.Murphy@arm.com \
    --cc=Will.Deacon@arm.com \
    --cc=arnd@arndb.de \
    --cc=bhelgaas@google.com \
    --cc=devicetree@vger.kernel.org \
    --cc=grant.likely@linaro.org \
    --cc=iommu@lists.linux-foundation.org \
    --cc=joro@8bytes.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=linux@arm.linux.org.uk \
    --cc=m-karicheri2@ti.com \
    --cc=robh+dt@kernel.org \
    --cc=suravee.suthikulpanit@amd.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 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.