LCOV - code coverage report
Current view: top level - net/xfrm - xfrm_hash.c (source / functions) Hit Total Coverage
Test: Real Lines: 8 12 66.7 %
Date: 2020-10-17 15:46:16 Functions: 0 2 0.0 %
Legend: Neither, QEMU, Real, Both Branches: 0 0 -

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

Generated by: LCOV version 1.14