OpenCores
URL https://opencores.org/ocsvn/test_project/test_project/trunk

Subversion Repositories test_project

[/] [test_project/] [trunk/] [linux_sd_driver/] [net/] [xfrm/] [xfrm_hash.c] - Blame information for rev 79

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 62 marcus.erl
/* xfrm_hash.c: Common hash table code.
2
 *
3
 * Copyright (C) 2006 David S. Miller (davem@davemloft.net)
4
 */
5
 
6
#include <linux/kernel.h>
7
#include <linux/mm.h>
8
#include <linux/bootmem.h>
9
#include <linux/vmalloc.h>
10
#include <linux/slab.h>
11
#include <linux/xfrm.h>
12
 
13
#include "xfrm_hash.h"
14
 
15
struct hlist_head *xfrm_hash_alloc(unsigned int sz)
16
{
17
        struct hlist_head *n;
18
 
19
        if (sz <= PAGE_SIZE)
20
                n = kmalloc(sz, GFP_KERNEL);
21
        else if (hashdist)
22
                n = __vmalloc(sz, GFP_KERNEL, PAGE_KERNEL);
23
        else
24
                n = (struct hlist_head *)
25
                        __get_free_pages(GFP_KERNEL | __GFP_NOWARN,
26
                                         get_order(sz));
27
 
28
        if (n)
29
                memset(n, 0, sz);
30
 
31
        return n;
32
}
33
 
34
void xfrm_hash_free(struct hlist_head *n, unsigned int sz)
35
{
36
        if (sz <= PAGE_SIZE)
37
                kfree(n);
38
        else if (hashdist)
39
                vfree(n);
40
        else
41
                free_pages((unsigned long)n, get_order(sz));
42
}

powered by: WebSVN 2.1.0

© copyright 1999-2025 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.