Re: __get_free_pages() problem on ia64

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 2006-09-26 at 10:48 -0600, Matthew Wilcox wrote:
> On Tue, Sep 26, 2006 at 08:46:40PM +0530, Adhiraj wrote:
> > I found a strange thing on ia64 platform. When I allocate pages using
> > __get_free_pages() with GFP_DMA, sometimes the physical addresses of
> > allocated pages fall beyond 4G.
> > 
> > I am working on a device driver where the device does not support
> > addresses above 4G and hence I have to implement bounce buffers. The
> 
> You should be using the services described in
> Documentation/DMA-mapping.txt rather than allocating your own bounce
> buffers.
Ok, thanks, I will look into it. But the question is why do I get
addresses beyond 4G (virt_to_phys() of returned addresses) even when I
use GFP_DMA. Is this a known problem on ia64?

> 
> > The dma mask for the driver is set to 64 bits using pci_set_dma_mask().
> 
> Well, that's one of your problems right there .... if your device can
> only DMA up to 4GB then you should set it to DMA_32BIT_MASK.
> 
> 

-
To unsubscribe from this list: send the line "unsubscribe linux-ia64" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel]     [Sparc Linux]     [DCCP]     [Linux ARM]     [Yosemite News]     [Linux SCSI]     [Linux x86_64]     [Linux for Ham Radio]

  Powered by Linux