From: Eric W. Biederman The binary interface for the cdrom sysctls can't possilby work. So remove the binary sysctls and update the test for finding out which sysctl table entry we are dealy with to use the procname and not the ctl_name (which I am removing). Signed-off-by: Eric W. Biederman Cc: Alexey Dobriyan Cc: Jens Axboe Cc: Alan Cox Signed-off-by: Andrew Morton --- drivers/cdrom/cdrom.c | 31 +++++++++---------------------- 1 file changed, 9 insertions(+), 22 deletions(-) diff -puN drivers/cdrom/cdrom.c~sysctl-remove-broken-cdrom-binary-sysctls drivers/cdrom/cdrom.c --- a/drivers/cdrom/cdrom.c~sysctl-remove-broken-cdrom-binary-sysctls +++ a/drivers/cdrom/cdrom.c @@ -3472,32 +3472,25 @@ static int cdrom_sysctl_handler(ctl_tabl else *valp = 0; - switch (ctl->ctl_name) { - case DEV_CDROM_AUTOCLOSE: { + if (strcmp(ctl->procname, "autoclose") == 0) { if (valp == &cdrom_sysctl_settings.autoclose) autoclose = cdrom_sysctl_settings.autoclose; - break; - } - case DEV_CDROM_AUTOEJECT: { + } + else if (strcmp(ctl->procname, "autoeject") == 0) { if (valp == &cdrom_sysctl_settings.autoeject) autoeject = cdrom_sysctl_settings.autoeject; - break; - } - case DEV_CDROM_DEBUG: { + } + else if (strcmp(ctl->procname, "debug") == 0) { if (valp == &cdrom_sysctl_settings.debug) debug = cdrom_sysctl_settings.debug; - break; - } - case DEV_CDROM_LOCK: { + } + else if (strcmp(ctl->procname, "lock") == 0) { if (valp == &cdrom_sysctl_settings.lock) lockdoor = cdrom_sysctl_settings.lock; - break; - } - case DEV_CDROM_CHECK_MEDIA: { + } + else if (strcmp(ctl->procname, "check_media") == 0) { if (valp == &cdrom_sysctl_settings.check) check_media_type = cdrom_sysctl_settings.check; - break; - } } /* update the option flags according to the changes. we don't have per device options through sysctl yet, @@ -3511,7 +3504,6 @@ static int cdrom_sysctl_handler(ctl_tabl /* Place files in /proc/sys/dev/cdrom */ static ctl_table cdrom_table[] = { { - .ctl_name = DEV_CDROM_INFO, .procname = "info", .data = &cdrom_sysctl_settings.info, .maxlen = CDROM_STR_SIZE, @@ -3519,7 +3511,6 @@ static ctl_table cdrom_table[] = { .proc_handler = &cdrom_sysctl_info, }, { - .ctl_name = DEV_CDROM_AUTOCLOSE, .procname = "autoclose", .data = &cdrom_sysctl_settings.autoclose, .maxlen = sizeof(int), @@ -3527,7 +3518,6 @@ static ctl_table cdrom_table[] = { .proc_handler = &cdrom_sysctl_handler, }, { - .ctl_name = DEV_CDROM_AUTOEJECT, .procname = "autoeject", .data = &cdrom_sysctl_settings.autoeject, .maxlen = sizeof(int), @@ -3535,7 +3525,6 @@ static ctl_table cdrom_table[] = { .proc_handler = &cdrom_sysctl_handler, }, { - .ctl_name = DEV_CDROM_DEBUG, .procname = "debug", .data = &cdrom_sysctl_settings.debug, .maxlen = sizeof(int), @@ -3543,7 +3532,6 @@ static ctl_table cdrom_table[] = { .proc_handler = &cdrom_sysctl_handler, }, { - .ctl_name = DEV_CDROM_LOCK, .procname = "lock", .data = &cdrom_sysctl_settings.lock, .maxlen = sizeof(int), @@ -3551,7 +3539,6 @@ static ctl_table cdrom_table[] = { .proc_handler = &cdrom_sysctl_handler, }, { - .ctl_name = DEV_CDROM_CHECK_MEDIA, .procname = "check_media", .data = &cdrom_sysctl_settings.check, .maxlen = sizeof(int), _