title: poll() returns both, POLLPRI & POLLERR
body: <p>I started to get in C programming with Linux and embedded systems (router hardware and openwrt). I have got interupts on GPIOs enabled, using poll works ... nearly.</p>
  
  <p>I can use poll() and if i press the button to trigger the interrupt, poll() returns with a value > 0. So far so good. Now i try to use poll() on several GPIOs simultaniosly and therefor want to analyze the revents of every potential interrupt source. Allthough the interrupt seems to work, i get POLLPRI &amp; POLLERR back and i do not understand why. Reducing the pollfd structure to 1 entry does not change anything.</p>
  
  <pre><code>char value;
  
  int fd_btn1 = open("/sys/class/gpio/gpio14/value", O_RDONLY);
  int fd_left = open("/sys/class/gpio/gpio12/value", O_RDONLY);
  int fd_right = open("/sys/class/gpio/gpio13/value", O_RDONLY);
  
  struct pollfd fds[3];
  fds[0].fd = fd_btn1;
  fds[1].fd = fd_left;
  fds[2].fd = fd_right;
  fds[0].events = POLLPRI;
  fds[1].events = POLLPRI;
  fds[2].events = POLLPRI;
  
  read(fd_btn1, &amp;value, 1);
  read(fd_left, &amp;value, 1);
  read(fd_right, &amp;value, 1);
  
  ret = poll(fds, 1, 10000);
  //debugging purpose
  printf("ret: %i - revents[0]: %i", ret, fds[0].revents);
  </code></pre>
  
  <p>In case button was pressed (interrupt triggered):
  ret=1d, revents=10d</p>
  
  <p>In case nothing was pressed, both is 0d</p>