Skip to content

Commit

Permalink
net llc: Don't use sysctl tables with .child entries.
Browse files Browse the repository at this point in the history
The sysctl core no longer natively understands sysctl tables with .child
entries.

Kill the intermediate tables and use register_net_sysctl directly to
remove the need for compatibility code.

Signed-off-by: Eric W. Biederman <[email protected]>
Acked-by: Pavel Emelyanov <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
  • Loading branch information
ebiederm authored and davem330 committed Apr 21, 2012
1 parent 0ca7a4c commit 64fb301
Showing 1 changed file with 16 additions and 35 deletions.
51 changes: 16 additions & 35 deletions net/llc/sysctl_net_llc.c
Original file line number Diff line number Diff line change
Expand Up @@ -57,48 +57,29 @@ static struct ctl_table llc_station_table[] = {
{ },
};

static struct ctl_table llc2_dir_timeout_table[] = {
{
.procname = "timeout",
.mode = 0555,
.child = llc2_timeout_table,
},
{ },
};

static struct ctl_table llc_table[] = {
{
.procname = "llc2",
.mode = 0555,
.child = llc2_dir_timeout_table,
},
{
.procname = "station",
.mode = 0555,
.child = llc_station_table,
},
{ },
};

static struct ctl_path llc_path[] = {
{ .procname = "net", },
{ .procname = "llc", },
{ }
};

static struct ctl_table_header *llc_table_header;
static struct ctl_table_header *llc2_timeout_header;
static struct ctl_table_header *llc_station_header;

int __init llc_sysctl_init(void)
{
llc_table_header = register_net_sysctl_table(&init_net, llc_path, llc_table);
llc2_timeout_header = register_net_sysctl(&init_net, "net/llc/llc2/timeout", llc2_timeout_table);
llc_station_header = register_net_sysctl(&init_net, "net/llc/station", llc_station_table);

return llc_table_header ? 0 : -ENOMEM;
if (!llc2_timeout_header || !llc_station_header) {
llc_sysctl_exit();
return -ENOMEM;
}
return 0;
}

void llc_sysctl_exit(void)
{
if (llc_table_header) {
unregister_net_sysctl_table(llc_table_header);
llc_table_header = NULL;
if (llc2_timeout_header) {
unregister_net_sysctl_table(llc2_timeout_header);
llc2_timeout_header = NULL;
}
if (llc_station_header) {
unregister_net_sysctl_table(llc_station_header);
llc_station_header = NULL;
}
}

0 comments on commit 64fb301

Please sign in to comment.