forked from mirrors/linux
		
	 2cef5b4472
			
		
	
	
		2cef5b4472
		
	
	
	
	
		
			
			Bound scsi_logging_level sysctl writings between SYSCTL_ZERO and SYSCTL_INT_MAX. The proc_handler has thus been updated to proc_dointvec_minmax. Signed-off-by: Nicolas Bouchinet <nicolas.bouchinet@ssi.gouv.fr> Link: https://lore.kernel.org/r/20250224095826.16458-5-nicolas.bouchinet@clip-os.org Reviewed-by: Joel Granados <joel.granados@kernel.org> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
		
			
				
	
	
		
			38 lines
		
	
	
	
		
			800 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
	
		
			800 B
		
	
	
	
		
			C
		
	
	
	
	
	
| // SPDX-License-Identifier: GPL-2.0-only
 | |
| /*
 | |
|  * Copyright (C) 2003 Christoph Hellwig.
 | |
|  */
 | |
| 
 | |
| #include <linux/errno.h>
 | |
| #include <linux/init.h>
 | |
| #include <linux/kernel.h>
 | |
| #include <linux/sysctl.h>
 | |
| 
 | |
| #include "scsi_logging.h"
 | |
| #include "scsi_priv.h"
 | |
| 
 | |
| 
 | |
| static const struct ctl_table scsi_table[] = {
 | |
| 	{ .procname	= "logging_level",
 | |
| 	  .data		= &scsi_logging_level,
 | |
| 	  .maxlen	= sizeof(scsi_logging_level),
 | |
| 	  .mode		= 0644,
 | |
| 	  .proc_handler	= proc_dointvec_minmax,
 | |
| 	  .extra1	= SYSCTL_ZERO,
 | |
| 	  .extra2	= SYSCTL_INT_MAX },
 | |
| };
 | |
| 
 | |
| static struct ctl_table_header *scsi_table_header;
 | |
| 
 | |
| int __init scsi_init_sysctl(void)
 | |
| {
 | |
| 	scsi_table_header = register_sysctl("dev/scsi", scsi_table);
 | |
| 	if (!scsi_table_header)
 | |
| 		return -ENOMEM;
 | |
| 	return 0;
 | |
| }
 | |
| 
 | |
| void scsi_exit_sysctl(void)
 | |
| {
 | |
| 	unregister_sysctl_table(scsi_table_header);
 | |
| }
 |