[lkml]   [2003]   [Nov]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: How to allocate pages for a scatter-gather buffer?
On Sun, Nov 09 2003, Alan Stern wrote:
> Jens:
> Thanks for your help in tracking down that problem with the usb-storage
> sddr09 driver.
> Now a slightly different question. Suppose I want to allocate some pages
> as a scatter-gather buffer for I/O to a device. I've got the device's
> dma_mask; what's the right way to convert that to a GFP bitmask for
> alloc_pages() or get_free_pages()?

This is a bit problematic, unfortunately... There really is no good way
to do this, the best you can do is approximate.

> Also, assuming I'll have to use memcpy() to transfer data into or out of
> the scatter-gather buffer (so it will have to get a kernel virtual mapping
> at some point), am I better off using alloc_pages() followed by
> kmap_atomic()/kunmap_atomic() or get_free_pages()? Or even kmalloc()?

My suggestion would be to do page allocations (not kmalloc()). With kmap
that'll work just fine for you, and it's easy to extend to just use the
right gfp mask if/when we ever get something that works for this.

Jens Axboe

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
More majordomo info at
Please read the FAQ at

 \ /
  Last update: 2005-03-22 13:58    [W:0.031 / U:5.596 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site