]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
scsi: sg: Remove deprecated sg-big-buff
authorYang Erkun <yangerkun@huawei.com>
Tue, 27 Jan 2026 06:20:44 +0000 (14:20 +0800)
committerMartin K. Petersen <martin.petersen@oracle.com>
Sun, 1 Mar 2026 01:25:04 +0000 (20:25 -0500)
These deprecated sysctl has been broken since commit 26d1c80fd61e
("scsi/sg: move sg-big-buff sysctl to scsi/sg.c") and nobody has found
this. I believe it's time to remove it, which will allow us to clean up a
significant amount of code.

Signed-off-by: Yang Erkun <yangerkun@huawei.com>
Reviewed-by: Bart Van Assche <bvanassche@acm.org>
Link: https://patch.msgid.link/20260127062044.3034148-4-yangerkun@huawei.com
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/sg.c

index f38d36fbeef37108d5d0bc32191dda6303af657e..2b4b2a1a8e442c18b338a2e72e2f82630e730348 100644 (file)
@@ -81,14 +81,14 @@ static int sg_proc_init(void);
 
 #define SG_DEFAULT_TIMEOUT mult_frac(SG_DEFAULT_TIMEOUT_USER, HZ, USER_HZ)
 
-static int sg_big_buff = SG_DEF_RESERVED_SIZE;
 /* N.B. This variable is readable and writeable via
-   /proc/scsi/sg/def_reserved_size . Each time sg_open() is called a buffer
-   of this size (or less if there is not enough memory) will be reserved
-   for use by this file descriptor. [Deprecated usage: this variable is also
-   readable via /proc/sys/kernel/sg-big-buff if the sg driver is built into
-   the kernel (i.e. it is not a module).] */
-static int def_reserved_size = -1;     /* picks up init parameter */
+ * /proc/scsi/sg/def_reserved_size . Each time sg_open() is called a buffer
+ * of this size (or less if there is not enough memory) will be reserved
+ * for use by this file descriptor.
+ */
+
+/* picks up init parameter */
+static int def_reserved_size = SG_DEF_RESERVED_SIZE;
 static int sg_allow_dio = SG_ALLOW_DIO_DEF;
 
 static int scatter_elem_sz = SG_SCATTER_SZ;
@@ -1663,35 +1663,6 @@ MODULE_PARM_DESC(scatter_elem_sz, "scatter gather element "
 MODULE_PARM_DESC(def_reserved_size, "size of buffer reserved for each fd");
 MODULE_PARM_DESC(allow_dio, "allow direct I/O (default: 0 (disallow))");
 
-#ifdef CONFIG_SYSCTL
-#include <linux/sysctl.h>
-
-static const struct ctl_table sg_sysctls[] = {
-       {
-               .procname       = "sg-big-buff",
-               .data           = &sg_big_buff,
-               .maxlen         = sizeof(int),
-               .mode           = 0444,
-               .proc_handler   = proc_dointvec,
-       },
-};
-
-static struct ctl_table_header *hdr;
-static void register_sg_sysctls(void)
-{
-       if (!hdr)
-               hdr = register_sysctl("kernel", sg_sysctls);
-}
-
-static void unregister_sg_sysctls(void)
-{
-       unregister_sysctl_table(hdr);
-}
-#else
-#define register_sg_sysctls() do { } while (0)
-#define unregister_sg_sysctls() do { } while (0)
-#endif /* CONFIG_SYSCTL */
-
 static int __init
 init_sg(void)
 {
@@ -1701,10 +1672,6 @@ init_sg(void)
                scatter_elem_sz = PAGE_SIZE;
                scatter_elem_sz_prev = scatter_elem_sz;
        }
-       if (def_reserved_size >= 0)
-               sg_big_buff = def_reserved_size;
-       else
-               def_reserved_size = sg_big_buff;
 
        rc = register_chrdev_region(MKDEV(SCSI_GENERIC_MAJOR, 0), 
                                    SG_MAX_DEVS, "sg");
@@ -1716,7 +1683,6 @@ init_sg(void)
        sg_sysfs_valid = 1;
        rc = scsi_register_interface(&sg_interface);
        if (0 == rc) {
-               register_sg_sysctls();
 #ifdef CONFIG_SCSI_PROC_FS
                sg_proc_init();
 #endif                         /* CONFIG_SCSI_PROC_FS */
@@ -1731,7 +1697,6 @@ err_out:
 static void __exit
 exit_sg(void)
 {
-       unregister_sg_sysctls();
 #ifdef CONFIG_SCSI_PROC_FS
        remove_proc_subtree("scsi/sg", NULL);
 #endif                         /* CONFIG_SCSI_PROC_FS */
@@ -2207,10 +2172,8 @@ sg_add_sfp(Sg_device * sdp)
        write_unlock_irqrestore(&sdp->sfd_lock, iflags);
        SCSI_LOG_TIMEOUT(3, sg_printk(KERN_INFO, sdp,
                                      "sg_add_sfp: sfp=0x%p\n", sfp));
-       if (unlikely(sg_big_buff != def_reserved_size))
-               sg_big_buff = def_reserved_size;
 
-       bufflen = min_t(int, sg_big_buff,
+       bufflen = min_t(int, def_reserved_size,
                        max_sectors_bytes(sdp->device->request_queue));
        sg_build_reserve(sfp, bufflen);
        SCSI_LOG_TIMEOUT(3, sg_printk(KERN_INFO, sdp,
@@ -2438,7 +2401,7 @@ sg_proc_write_adio(struct file *filp, const char __user *buffer,
 
 static int sg_proc_single_open_dressz(struct inode *inode, struct file *file)
 {
-       return single_open(file, sg_proc_seq_show_int, &sg_big_buff);
+       return single_open(file, sg_proc_seq_show_int, &def_reserved_size);
 }
 
 static ssize_t 
@@ -2455,7 +2418,7 @@ sg_proc_write_dressz(struct file *filp, const char __user *buffer,
        if (err)
                return err;
        if (k <= 1048576) {     /* limit "big buff" to 1 MB */
-               sg_big_buff = k;
+               def_reserved_size = k;
                return count;
        }
        return -ERANGE;
@@ -2628,7 +2591,7 @@ static int sg_proc_seq_show_debug(struct seq_file *s, void *v)
 
        if (it && (0 == it->index))
                seq_printf(s, "max_active_device=%d  def_reserved_size=%d\n",
-                          (int)it->max, sg_big_buff);
+                          (int)it->max, def_reserved_size);
 
        read_lock_irqsave(&sg_index_lock, iflags);
        sdp = it ? sg_lookup_dev(it->index) : NULL;