Let me fix that for you.
--- a/arch/x86/platform/olpc/olpc-xo15-sci.c~x86-olpc-xo15-sci-enable-lid-close-wakeup-control-through-sysfs-fix
+++ a/arch/x86/platform/olpc/olpc-xo15-sci.c
@@ -58,7 +58,8 @@ static ssize_t lid_wake_on_close_store(s
const char *buf, size_t n)
{
unsigned int val;
- if (!sscanf(buf, "%u",&val) == 1)
+
+ if (sscanf(buf, "%u",&val) != 1)
return -EINVAL;
set_lid_wake_behavior(!!val);
It's kinda irritating that this will cheerfully accept bogus input of
the form "42foo". This happens about eleven billion times in sysfs
write() handlers but afaik we've never implemented a nice
sysfs_int_from_buffer() thingy which handles all the possible errors.