Quoting Andrew Morton (2014-01-28 12:54:42)
The problem is that kernel/power/hibernate.c:resume_store() is handed a newline-terminated string, yes? And if it blindly hands that string over to name_to_dev_t(), name_to_dev_t() fails because the string is wrong.
This is an oddity of the sysfs->kernel interface and altering name_to_dev_t doesn't really seem appropriate for this problem - it would be better to fix the caller to pass in the correct string.
Something like...
/*
- Clean up a string which may have leading and/or trailing whitespace (as
- defined by isspace()) by trimming off that whitespace. Returns an address
- which the caller must kfree(), or NULL on error.
*/ char *strim_copy(const char *s, gfp_t gfp) { char *ret = kstrdup(skip_spaces(s), gfp);
if (ret) strim(ret); return ret;
} EXPORT_SYMBOL(strim_copy);
Hi Andrew,
Thanks, this is similar, but tidier than my original patch. I'll fix up and repost the patch with a fix like what you're proposing.
Thanks!
Sebastian