relay: use simple_malloc()/simple_free()
PATCH 4/7 relay: use simple_malloc()/simple_free()
simple_malloc()/simple_free() are same as current code. so we simple_malloc()/simple_free() instead of current code.
Signed-off-by Lai Jiangshan <[email protected]>
---
kernel/relay.c +4 -32
@@ -65,35 +65,6 @@ static struct vm_operations_struct relay_file_mmap_ops = { .close = relay_file_mmap_close, }; -/* -* allocate an array of pointers of struct page -*/ -static struct page **relay_alloc_page_array (unsigned int n_pages) -{ -struct page **array; -size_t pa_size = n_pages *sizeof (struct page *); - -if (pa_size >PAGE_SIZE ) { - array =vmalloc (pa_size); -if (array) -memset (array,0 , pa_size); - }else { - array =kzalloc (pa_size,GFP_KERNEL ); - } -return array; -} - -/* -* free an array of pointers of struct page -*/ -static void relay_free_page_array (struct page **array) -{ -if (is_vmalloc_addr (array)) -vfree (array); -else -kfree (array); -} -/** * relay_mmap_buf: - mmap channel buffer to process address space * @buf: relay channel buffer
@@ -138,9 +109,10 @@ static void *relay_alloc_buf(struct rchan_buf *buf, size_t *size) *size =PAGE_ALIGN (*size); n_pages = *size >>PAGE_SHIFT ; - buf->page_array =relay_alloc_page_array (n_pages); + buf->page_array =simple_malloc (sizeof (struct page *) * n_pages);if (!buf->page_array)return NULL ; +memset (buf->page_array,0 ,sizeof (struct page *) * n_pages);for (i =0 ; i < n_pages; i++) { buf->page_array[i] =alloc_page (GFP_KERNEL );
@@ -159,7 +131,7 @@ static void *relay_alloc_buf(struct rchan_buf *buf, size_t *size) depopulate:for (j =0 ; j < i; j++)__free_page (buf->page_array[j]); -relay_free_page_array (buf->page_array); +simple_free (buf->page_array);return NULL ; }
@@ -218,7 +190,7 @@ static void relay_destroy_buf(struct rchan_buf *buf)vunmap (buf->start);for (i =0 ; i < buf->page_count; i++)__free_page (buf->page_array[i]); -relay_free_page_array (buf->page_array); +simple_free (buf->page_array); } chan->buf[buf->cpu] =NULL ;kfree (buf->padding);