LCOV - code coverage report
Current view: top level - net/xfrm - xfrm_sysctl.c (source / functions) Hit Total Coverage
Test: coverage.info Lines: 0 21 0.0 %
Date: 2014-04-07 Functions: 0 2 0.0 %
Branches: 0 6 0.0 %

           Branch data     Line data    Source code
       1                 :            : #include <linux/sysctl.h>
       2                 :            : #include <linux/slab.h>
       3                 :            : #include <net/net_namespace.h>
       4                 :            : #include <net/xfrm.h>
       5                 :            : 
       6                 :            : static void __net_init __xfrm_sysctl_init(struct net *net)
       7                 :            : {
       8                 :          0 :         net->xfrm.sysctl_aevent_etime = XFRM_AE_ETIME;
       9                 :          0 :         net->xfrm.sysctl_aevent_rseqth = XFRM_AE_SEQT_SIZE;
      10                 :          0 :         net->xfrm.sysctl_larval_drop = 1;
      11                 :          0 :         net->xfrm.sysctl_acq_expires = 30;
      12                 :            : }
      13                 :            : 
      14                 :            : #ifdef CONFIG_SYSCTL
      15                 :            : static struct ctl_table xfrm_table[] = {
      16                 :            :         {
      17                 :            :                 .procname       = "xfrm_aevent_etime",
      18                 :            :                 .maxlen         = sizeof(u32),
      19                 :            :                 .mode           = 0644,
      20                 :            :                 .proc_handler   = proc_dointvec
      21                 :            :         },
      22                 :            :         {
      23                 :            :                 .procname       = "xfrm_aevent_rseqth",
      24                 :            :                 .maxlen         = sizeof(u32),
      25                 :            :                 .mode           = 0644,
      26                 :            :                 .proc_handler   = proc_dointvec
      27                 :            :         },
      28                 :            :         {
      29                 :            :                 .procname       = "xfrm_larval_drop",
      30                 :            :                 .maxlen         = sizeof(int),
      31                 :            :                 .mode           = 0644,
      32                 :            :                 .proc_handler   = proc_dointvec
      33                 :            :         },
      34                 :            :         {
      35                 :            :                 .procname       = "xfrm_acq_expires",
      36                 :            :                 .maxlen         = sizeof(int),
      37                 :            :                 .mode           = 0644,
      38                 :            :                 .proc_handler   = proc_dointvec
      39                 :            :         },
      40                 :            :         {}
      41                 :            : };
      42                 :            : 
      43                 :          0 : int __net_init xfrm_sysctl_init(struct net *net)
      44                 :            : {
      45                 :            :         struct ctl_table *table;
      46                 :            : 
      47                 :            :         __xfrm_sysctl_init(net);
      48                 :            : 
      49                 :          0 :         table = kmemdup(xfrm_table, sizeof(xfrm_table), GFP_KERNEL);
      50         [ #  # ]:          0 :         if (!table)
      51                 :            :                 goto out_kmemdup;
      52                 :          0 :         table[0].data = &net->xfrm.sysctl_aevent_etime;
      53                 :          0 :         table[1].data = &net->xfrm.sysctl_aevent_rseqth;
      54                 :          0 :         table[2].data = &net->xfrm.sysctl_larval_drop;
      55                 :          0 :         table[3].data = &net->xfrm.sysctl_acq_expires;
      56                 :            : 
      57                 :            :         /* Don't export sysctls to unprivileged users */
      58         [ #  # ]:          0 :         if (net->user_ns != &init_user_ns)
      59                 :          0 :                 table[0].procname = NULL;
      60                 :            : 
      61                 :          0 :         net->xfrm.sysctl_hdr = register_net_sysctl(net, "net/core", table);
      62         [ #  # ]:          0 :         if (!net->xfrm.sysctl_hdr)
      63                 :            :                 goto out_register;
      64                 :            :         return 0;
      65                 :            : 
      66                 :            : out_register:
      67                 :          0 :         kfree(table);
      68                 :            : out_kmemdup:
      69                 :            :         return -ENOMEM;
      70                 :            : }
      71                 :            : 
      72                 :          0 : void __net_exit xfrm_sysctl_fini(struct net *net)
      73                 :            : {
      74                 :            :         struct ctl_table *table;
      75                 :            : 
      76                 :          0 :         table = net->xfrm.sysctl_hdr->ctl_table_arg;
      77                 :          0 :         unregister_net_sysctl_table(net->xfrm.sysctl_hdr);
      78                 :          0 :         kfree(table);
      79                 :          0 : }
      80                 :            : #else
      81                 :            : int __net_init xfrm_sysctl_init(struct net *net)
      82                 :            : {
      83                 :            :         __xfrm_sysctl_init(net);
      84                 :            :         return 0;
      85                 :            : }
      86                 :            : #endif

Generated by: LCOV version 1.9