162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-only
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Copyright (C) 2003 Christoph Hellwig.
462306a36Sopenharmony_ci */
562306a36Sopenharmony_ci
662306a36Sopenharmony_ci#include <linux/errno.h>
762306a36Sopenharmony_ci#include <linux/init.h>
862306a36Sopenharmony_ci#include <linux/kernel.h>
962306a36Sopenharmony_ci#include <linux/sysctl.h>
1062306a36Sopenharmony_ci
1162306a36Sopenharmony_ci#include "scsi_logging.h"
1262306a36Sopenharmony_ci#include "scsi_priv.h"
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_cistatic struct ctl_table scsi_table[] = {
1662306a36Sopenharmony_ci	{ .procname	= "logging_level",
1762306a36Sopenharmony_ci	  .data		= &scsi_logging_level,
1862306a36Sopenharmony_ci	  .maxlen	= sizeof(scsi_logging_level),
1962306a36Sopenharmony_ci	  .mode		= 0644,
2062306a36Sopenharmony_ci	  .proc_handler	= proc_dointvec },
2162306a36Sopenharmony_ci	{ }
2262306a36Sopenharmony_ci};
2362306a36Sopenharmony_ci
2462306a36Sopenharmony_cistatic struct ctl_table_header *scsi_table_header;
2562306a36Sopenharmony_ci
2662306a36Sopenharmony_ciint __init scsi_init_sysctl(void)
2762306a36Sopenharmony_ci{
2862306a36Sopenharmony_ci	scsi_table_header = register_sysctl("dev/scsi", scsi_table);
2962306a36Sopenharmony_ci	if (!scsi_table_header)
3062306a36Sopenharmony_ci		return -ENOMEM;
3162306a36Sopenharmony_ci	return 0;
3262306a36Sopenharmony_ci}
3362306a36Sopenharmony_ci
3462306a36Sopenharmony_civoid scsi_exit_sysctl(void)
3562306a36Sopenharmony_ci{
3662306a36Sopenharmony_ci	unregister_sysctl_table(scsi_table_header);
3762306a36Sopenharmony_ci}
38