summaryrefslogtreecommitdiff
path: root/Documentation/mic/mpssd/mpssd.c
diff options
context:
space:
mode:
authorAshutosh Dixit <ashutosh.dixit@intel.com>2013-11-27 08:58:40 -0800
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-11-27 11:03:38 -0800
commit286c24028c7f2df637323e672d9aa54a07b67bde (patch)
tree430cbd94abe1716fce6fbf300d09fae4eb93c5e7 /Documentation/mic/mpssd/mpssd.c
parent9420b3485aa5748e171f2cedf35cc8f5a6a01c4b (diff)
downloadlwn-286c24028c7f2df637323e672d9aa54a07b67bde.tar.gz
lwn-286c24028c7f2df637323e672d9aa54a07b67bde.zip
misc: mic: Bug fix for sysfs poll usage.
MIC user space daemon poll's on sysfs changes. The documentation for sysfs_poll(...) in fs/sysfs/file.c states that "Once poll/select indicates that the value has changed, you need to close and re-open the file, or seek to 0 and read again". This step was missed out earlier and resulted in the daemon spinning continuously rather than getting blocked in 'poll'. This bug was exposed by commit aea585ef8fa65163 introduced as part of sysfs changes in 3.13-rc1. A seek to 0 has been introduced to fix it. Reviewed-by: Sudeep Dutt <sudeep.dutt@intel.com> Signed-off-by: Ashutosh Dixit <ashutosh.dixit@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'Documentation/mic/mpssd/mpssd.c')
-rw-r--r--Documentation/mic/mpssd/mpssd.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/Documentation/mic/mpssd/mpssd.c b/Documentation/mic/mpssd/mpssd.c
index 0c980ad40b17..5c7fdda56f0e 100644
--- a/Documentation/mic/mpssd/mpssd.c
+++ b/Documentation/mic/mpssd/mpssd.c
@@ -1412,6 +1412,12 @@ mic_config(void *arg)
}
do {
+ ret = lseek(fd, 0, SEEK_SET);
+ if (ret < 0) {
+ mpsslog("%s: Failed to seek to file start '%s': %s\n",
+ mic->name, pathname, strerror(errno));
+ goto close_error1;
+ }
ret = read(fd, value, sizeof(value));
if (ret < 0) {
mpsslog("%s: Failed to read sysfs entry '%s': %s\n",