Commit c5f855e0 authored by Upinder Malhi's avatar Upinder Malhi Committed by Roland Dreier

IB/usnic: Use for_each_sg instead of a for-loop

Use for_each_sg() instead of an explicit for-loop to iterate over
scatter-gather list.
Signed-off-by: default avatarUpinder Malhi <umalhi@cisco.com>
Signed-off-by: default avatarRoland Dreier <roland@purestorage.com>
parent 6a54d9f9
...@@ -80,13 +80,14 @@ static void usnic_uiom_put_pages(struct list_head *chunk_list, int dirty) ...@@ -80,13 +80,14 @@ static void usnic_uiom_put_pages(struct list_head *chunk_list, int dirty)
{ {
struct usnic_uiom_chunk *chunk, *tmp; struct usnic_uiom_chunk *chunk, *tmp;
struct page *page; struct page *page;
struct scatterlist *sg;
int i; int i;
dma_addr_t pa; dma_addr_t pa;
list_for_each_entry_safe(chunk, tmp, chunk_list, list) { list_for_each_entry_safe(chunk, tmp, chunk_list, list) {
for (i = 0; i < chunk->nents; i++) { for_each_sg(chunk->page_list, sg, chunk->nents, i) {
page = sg_page(&chunk->page_list[i]); page = sg_page(sg);
pa = sg_phys(&chunk->page_list[i]); pa = sg_phys(sg);
if (dirty) if (dirty)
set_page_dirty_lock(page); set_page_dirty_lock(page);
put_page(page); put_page(page);
...@@ -100,6 +101,7 @@ static int usnic_uiom_get_pages(unsigned long addr, size_t size, int writable, ...@@ -100,6 +101,7 @@ static int usnic_uiom_get_pages(unsigned long addr, size_t size, int writable,
int dmasync, struct list_head *chunk_list) int dmasync, struct list_head *chunk_list)
{ {
struct page **page_list; struct page **page_list;
struct scatterlist *sg;
struct usnic_uiom_chunk *chunk; struct usnic_uiom_chunk *chunk;
unsigned long locked; unsigned long locked;
unsigned long lock_limit; unsigned long lock_limit;
...@@ -165,11 +167,10 @@ static int usnic_uiom_get_pages(unsigned long addr, size_t size, int writable, ...@@ -165,11 +167,10 @@ static int usnic_uiom_get_pages(unsigned long addr, size_t size, int writable,
chunk->nents = min_t(int, ret, USNIC_UIOM_PAGE_CHUNK); chunk->nents = min_t(int, ret, USNIC_UIOM_PAGE_CHUNK);
sg_init_table(chunk->page_list, chunk->nents); sg_init_table(chunk->page_list, chunk->nents);
for (i = 0; i < chunk->nents; ++i) { for_each_sg(chunk->page_list, sg, chunk->nents, i) {
sg_set_page(&chunk->page_list[i], sg_set_page(sg, page_list[i + off],
page_list[i + off], PAGE_SIZE, 0);
PAGE_SIZE, 0); pa = sg_phys(sg);
pa = sg_phys(&chunk->page_list[i]);
usnic_dbg("va: 0x%lx pa: %pa\n", usnic_dbg("va: 0x%lx pa: %pa\n",
cur_base + i*PAGE_SIZE, &pa); cur_base + i*PAGE_SIZE, &pa);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment