LCOV - code coverage report
Current view: top level - net/xfrm - xfrm_hash.c (source / functions) Hit Total Coverage
Test: combined.info Lines: 5 17 29.4 %
Date: 2022-03-28 15:32:58 Functions: 1 2 50.0 %
Branches: 1 8 12.5 %

           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                 :        196 : struct hlist_head *xfrm_hash_alloc(unsigned int sz)
      17                 :            : {
      18                 :        196 :         struct hlist_head *n;
      19                 :            : 
      20         [ +  - ]:        196 :         if (sz <= PAGE_SIZE)
      21                 :        196 :                 n = kzalloc(sz, GFP_KERNEL);
      22         [ #  # ]:          0 :         else if (hashdist)
      23                 :          0 :                 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                 :        196 :         return n;
      30                 :            : }
      31                 :            : 
      32                 :          0 : void xfrm_hash_free(struct hlist_head *n, unsigned int sz)
      33                 :            : {
      34         [ #  # ]:          0 :         if (sz <= PAGE_SIZE)
      35                 :          0 :                 kfree(n);
      36         [ #  # ]:          0 :         else if (hashdist)
      37                 :          0 :                 vfree(n);
      38                 :            :         else
      39                 :          0 :                 free_pages((unsigned long)n, get_order(sz));
      40                 :          0 : }

Generated by: LCOV version 1.14