LCOV - code coverage report
Current view: top level - net/unix - sysctl_net_unix.c (source / functions) Hit Total Coverage
Test: coverage.info Lines: 20 20 100.0 %
Date: 2017-01-25 Functions: 2 2 100.0 %

          Line data    Source code
       1             : /*
       2             :  * NET4:        Sysctl interface to net af_unix subsystem.
       3             :  *
       4             :  * Authors:     Mike Shaver.
       5             :  *
       6             :  *              This program is free software; you can redistribute it and/or
       7             :  *              modify it under the terms of the GNU General Public License
       8             :  *              as published by the Free Software Foundation; either version
       9             :  *              2 of the License, or (at your option) any later version.
      10             :  */
      11             : 
      12             : #include <linux/mm.h>
      13             : #include <linux/sysctl.h>
      14             : 
      15             : #include <net/af_unix.h>
      16             : 
      17           1 : static ctl_table unix_table[] = {
      18             :         {
      19             :                 .procname       = "max_dgram_qlen",
      20             :                 .data           = &init_net.unx.sysctl_max_dgram_qlen,
      21             :                 .maxlen         = sizeof(int),
      22             :                 .mode           = 0644,
      23             :                 .proc_handler   = proc_dointvec
      24             :         },
      25             :         { }
      26             : };
      27             : 
      28           1 : static struct ctl_path unix_path[] = {
      29             :         { .procname = "net", },
      30             :         { .procname = "unix", },
      31             :         { },
      32             : };
      33             : 
      34             : int unix_sysctl_register(struct net *net)
      35             : {
      36           1 :         struct ctl_table *table;
      37           1 : 
      38           2 :         table = kmemdup(unix_table, sizeof(unix_table), GFP_KERNEL);
      39           2 :         if (table == NULL)
      40           1 :                 goto err_alloc;
      41             : 
      42           1 :         table[0].data = &net->unx.sysctl_max_dgram_qlen;
      43           2 :         net->unx.ctl = register_net_sysctl_table(net, unix_path, table);
      44           2 :         if (net->unx.ctl == NULL)
      45           1 :                 goto err_reg;
      46             : 
      47           1 :         return 0;
      48           1 : 
      49             : err_reg:
      50           1 :         kfree(table);
      51             : err_alloc:
      52           3 :         return -ENOMEM;
      53             : }
      54             : 
      55             : void unix_sysctl_unregister(struct net *net)
      56             : {
      57           2 :         struct ctl_table *table;
      58             : 
      59           2 :         table = net->unx.ctl->ctl_table_arg;
      60           2 :         unregister_sysctl_table(net->unx.ctl);
      61           2 :         kfree(table);
      62           2 : }

Generated by: LCOV version 1.10