return vaddr;
 }
 
-static void vb_free(const void *addr, unsigned long size)
+static void vb_free(unsigned long addr, unsigned long size)
 {
        unsigned long offset;
        unsigned long vb_idx;
        BUG_ON(offset_in_page(size));
        BUG_ON(size > PAGE_SIZE*VMAP_MAX_ALLOC);
 
-       flush_cache_vunmap((unsigned long)addr, (unsigned long)addr + size);
+       flush_cache_vunmap(addr, addr + size);
 
        order = get_order(size);
 
-       offset = (unsigned long)addr & (VMAP_BLOCK_SIZE - 1);
-       offset >>= PAGE_SHIFT;
+       offset = (addr & (VMAP_BLOCK_SIZE - 1)) >> PAGE_SHIFT;
 
-       vb_idx = addr_to_vb_idx((unsigned long)addr);
+       vb_idx = addr_to_vb_idx(addr);
        rcu_read_lock();
        vb = radix_tree_lookup(&vmap_block_tree, vb_idx);
        rcu_read_unlock();
        BUG_ON(!vb);
 
-       vunmap_page_range((unsigned long)addr, (unsigned long)addr + size);
+       vunmap_page_range(addr, addr + size);
 
        if (debug_pagealloc_enabled_static())
-               flush_tlb_kernel_range((unsigned long)addr,
-                                       (unsigned long)addr + size);
+               flush_tlb_kernel_range(addr, addr + size);
 
        spin_lock(&vb->lock);
 
 
        if (likely(count <= VMAP_MAX_ALLOC)) {
                debug_check_no_locks_freed(mem, size);
-               vb_free(mem, size);
+               vb_free(addr, size);
                return;
        }