Hi! I want to use poll() functionality (to properly handle select() and poll() syscalls) in my char-device driver. The code for my kernel-side poll() function is (a little bit simplified): unsigned int my_poll(struct file *filp, struct poll_table_struct *wait) { unsigned int mask=0; unsigned long flags; poll_wait(filp, my_wait_queue, wait); if ( any_data_available > 0) mask |= POLLIN | POLLRDNORM; return mask; } Where "my_wait_queue" is of "wait_queue_head_t" type, "any_data_available" if the flag which tells if any data is available within internal buffer. When I load this driver and start user-space application wich calls select() with 5 seconds timeout the select() returns after waiting this timeout no matter when the data comes into the port (1,2,3 seconds). The return value is positive when the data available and 0 when no data comes, as it should be. The question is why select() waits for the timeout even when data is available? -- Denis -- To unsubscribe from this list: send an email with "unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx Please read the FAQ at http://kernelnewbies.org/FAQ