Both the original and the first attempted patch managed to get the logic wrong. So we fix it so we only continue if sscanf returns exactly one value, and it has to be either 1 or 2. Apparently, programmers are getting out and hacking code without remembering de Morgan's Laws... Patch is against the file that results from Ari's revert of the previous patch. Signed-Off-By: Valdis Kletnieks <valdis.kletnieks@xxxxxx> -- --- drivers/platform/x86/toshiba_acpi.c.orig 2014-08-20 14:45:52.159898938 -0400 +++ drivers/platform/x86/toshiba_acpi.c 2014-08-20 14:47:55.102444985 -0400 @@ -1258,7 +1258,7 @@ static ssize_t toshiba_kbd_bl_mode_store int mode = -1; int time = -1; - if (sscanf(buf, "%i", &mode) != 1 && (mode != 2 || mode != 1)) + if (sscanf(buf, "%i", &mode) != 1 || !(mode == 2 || mode == 1)) return -EINVAL; /* Set the Keyboard Backlight Mode where: -- To unsubscribe from this list: send the line "unsubscribe platform-driver-x86" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html