All of lore.kernel.org
 help / color / mirror / Atom feed
From: Joerg Roedel <joerg.roedel@amd.com>
To: Andi Kleen <andi@firstfloor.org>,
	FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Cc: iommu@lists.linux-foundation.org, mingo@redhat.com,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH] x86: fix nommu_alloc_coherent allocation with NULL device argument
Date: Fri, 5 Sep 2008 13:56:55 +0200	[thread overview]
Message-ID: <20080905115655.GC3189@amd.com> (raw)
In-Reply-To: <20080905104049.GY3189@amd.com>

Andi,

I guess you made the dma_mask of the fallback_dev 32 bit a long time
ago. Is there any reason it cannot be 24 bit?

Joerg

On Fri, Sep 05, 2008 at 12:40:49PM +0200, Joerg Roedel wrote:
> I agree with this patch in principle. It fixes the problem. But I think
> we should evaluate if we can change the dma_mask of the fallback_dev to
> 24 bit.
> 
> On Fri, Sep 05, 2008 at 05:58:47PM +0900, FUJITA Tomonori wrote:
> > We need to use __GFP_DMA for NULL device argument (fallback_dev) with
> > pci-nommu. It's a hack for ISA (and some old code) so we need to use
> > GFP_DMA.
> > 
> > Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
> > ---
> >  arch/x86/kernel/pci-nommu.c   |    5 +----
> >  include/asm-x86/dma-mapping.h |    2 ++
> >  2 files changed, 3 insertions(+), 4 deletions(-)
> > 
> > diff --git a/arch/x86/kernel/pci-nommu.c b/arch/x86/kernel/pci-nommu.c
> > index 73853d3..526b2db 100644
> > --- a/arch/x86/kernel/pci-nommu.c
> > +++ b/arch/x86/kernel/pci-nommu.c
> > @@ -83,7 +83,6 @@ nommu_alloc_coherent(struct device *hwdev, size_t size,
> >  	if (hwdev->dma_mask == NULL)
> >  		return NULL;
> >  
> > -	gfp &= ~(__GFP_DMA | __GFP_HIGHMEM | __GFP_DMA32);
> >  	gfp |= __GFP_ZERO;
> >  
> >  	dma_mask = hwdev->coherent_dma_mask;
> > @@ -96,14 +95,12 @@ nommu_alloc_coherent(struct device *hwdev, size_t size,
> >  	node = dev_to_node(hwdev);
> >  
> >  #ifdef CONFIG_X86_64
> > -	if (dma_mask <= DMA_32BIT_MASK)
> > +	if (dma_mask <= DMA_32BIT_MASK && !(gfp & GFP_DMA))
> >  		gfp |= GFP_DMA32;
> >  #endif
> > -
> >  	/* No alloc-free penalty for ISA devices */
> >  	if (dma_mask == DMA_24BIT_MASK)
> >  		gfp |= GFP_DMA;
> > -
> 
> Please leave these spare lines where they are. They increase the
> readability of the code imho.
> 
> >  again:
> >  	page = alloc_pages_node(node, gfp, get_order(size));
> >  	if (!page)
> > diff --git a/include/asm-x86/dma-mapping.h b/include/asm-x86/dma-mapping.h
> > index 3a9a6f5..de4495e 100644
> > --- a/include/asm-x86/dma-mapping.h
> > +++ b/include/asm-x86/dma-mapping.h
> > @@ -246,6 +246,8 @@ dma_alloc_coherent(struct device *dev, size_t size, dma_addr_t *dma_handle,
> >  	struct dma_mapping_ops *ops = get_dma_ops(dev);
> >  	void *memory;
> >  
> > +	gfp &= ~(__GFP_DMA | __GFP_HIGHMEM | __GFP_DMA32);
> > +
> >  	if (dma_alloc_from_coherent(dev, size, dma_handle, &memory))
> >  		return memory;
> >  
> > -- 
> > 1.5.4.2
> > 
> > 
> 
> -- 
>            |           AMD Saxony Limited Liability Company & Co. KG
>  Operating |         Wilschdorfer Landstr. 101, 01109 Dresden, Germany
>  System    |                  Register Court Dresden: HRA 4896
>  Research  |              General Partner authorized to represent:
>  Center    |             AMD Saxony LLC (Wilmington, Delaware, US)
>            | General Manager of AMD Saxony LLC: Dr. Hans-R. Deppe, Thomas McCoy
> 
> _______________________________________________
> iommu mailing list
> iommu@lists.linux-foundation.org
> https://lists.linux-foundation.org/mailman/listinfo/iommu
> 

-- 
           |           AMD Saxony Limited Liability Company & Co. KG
 Operating |         Wilschdorfer Landstr. 101, 01109 Dresden, Germany
 System    |                  Register Court Dresden: HRA 4896
 Research  |              General Partner authorized to represent:
 Center    |             AMD Saxony LLC (Wilmington, Delaware, US)
           | General Manager of AMD Saxony LLC: Dr. Hans-R. Deppe, Thomas McCoy


  parent reply	other threads:[~2008-09-05 11:57 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-09-05  8:58 [PATCH 0/3] fix alloc_coherent allocation issues (tip/x86/iommu) FUJITA Tomonori
2008-09-05  8:58 ` [PATCH] x86: fix nommu_alloc_coherent allocation with NULL device argument FUJITA Tomonori
2008-09-05  8:58   ` [PATCH] x86: use __GFP_NORETRY in the case of GFP_DMA with pci-nommu FUJITA Tomonori
2008-09-05  8:58     ` [PATCH] x86: gart alloc_coherent doesn't need to check NULL device argument FUJITA Tomonori
2008-09-05 10:41       ` Joerg Roedel
2008-09-05 10:43     ` [PATCH] x86: use __GFP_NORETRY in the case of GFP_DMA with pci-nommu Joerg Roedel
2008-09-06 12:18       ` FUJITA Tomonori
2008-09-08 11:41         ` Joerg Roedel
2008-09-05 10:40   ` [PATCH] x86: fix nommu_alloc_coherent allocation with NULL device argument Joerg Roedel
2008-09-05 10:49     ` Ingo Molnar
2008-09-05 11:56     ` Joerg Roedel [this message]
2008-09-06 12:18     ` FUJITA Tomonori
2008-09-05  9:11 ` [PATCH 0/3] fix alloc_coherent allocation issues (tip/x86/iommu) FUJITA Tomonori
2008-09-05 10:45   ` Ingo Molnar
2008-09-08 17:35     ` Ingo Molnar
2008-09-08 18:06       ` FUJITA Tomonori
2008-09-08 18:15         ` Ingo Molnar

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=20080905115655.GC3189@amd.com \
    --to=joerg.roedel@amd.com \
    --cc=andi@firstfloor.org \
    --cc=fujita.tomonori@lab.ntt.co.jp \
    --cc=iommu@lists.linux-foundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.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.