mem = vmap(buf->page_array, n_pages, GFP_KERNEL, PAGE_KERNEL); 
mem = vmap(buf->page_array, n_pages, VM_MAP, PAGE_KERNEL); 
static void *relay_alloc_buf(struct rchan_buf *buf, unsigned long size){	void *mem;	unsigned int i, j, n_pages;	size = PAGE_ALIGN(size);	n_pages = size >> PAGE_SHIFT;	buf->page_array = kcalloc(n_pages, sizeof(struct page *), GFP_KERNEL);	if (!buf->page_array)		return NULL;	for (i = 0; i < n_pages; i++) {		buf->page_array[i] = alloc_page(GFP_KERNEL);		if (unlikely(!buf->page_array[i]))			goto depopulate;	}	mem = vmap(buf->page_array, n_pages, GFP_KERNEL, PAGE_KERNEL);	if (!mem)		goto depopulate;	memset(mem, 0, size);	buf->page_count = n_pages;	return mem;depopulate:	for (j = 0; j < i; j++)		__free_page(buf->page_array[j]);	kfree(buf->page_array);	return NULL;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/1cc956e12aedfdc6baf6312bc36a6b5a71af3c9d/buffers.c/clean/fs/relayfs/buffers.c