lkml.org 
[lkml]   [2008]   [Nov]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[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 <laijs@cn.fujitsu.com>
    ---
    diff --git a/kernel/relay.c b/kernel/relay.c
    index 8d13a78..718dd60 100644
    --- a/kernel/relay.c
    +++ b/kernel/relay.c
    @@ -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);



    \
     
     \ /
      Last update: 2008-11-16 05:41    [W:0.041 / U:159.504 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site