Commit 286c24028c7f2df637323e672d9aa54a07b67bde

Authored by Ashutosh Dixit
Committed by Greg Kroah-Hartman
1 parent 9420b3485a

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>

Showing 1 changed file with 6 additions and 0 deletions Side-by-side Diff

Documentation/mic/mpssd/mpssd.c
... ... @@ -1412,6 +1412,12 @@
1412 1412 }
1413 1413  
1414 1414 do {
  1415 + ret = lseek(fd, 0, SEEK_SET);
  1416 + if (ret < 0) {
  1417 + mpsslog("%s: Failed to seek to file start '%s': %s\n",
  1418 + mic->name, pathname, strerror(errno));
  1419 + goto close_error1;
  1420 + }
1415 1421 ret = read(fd, value, sizeof(value));
1416 1422 if (ret < 0) {
1417 1423 mpsslog("%s: Failed to read sysfs entry '%s': %s\n",