On Thu, Jun 28, 2018 at 1:37 PM Al Viro <viro@xxxxxxxxxxxxxxxxxx> wrote: > > > Speaking of obvious bogosities (a lot more so than a blocking allocation > several calls down into helper): > > static __poll_t ca8210_test_int_poll( > struct file *filp, > struct poll_table_struct *ptable > ) Ok, that's just garbage. Again, this is not an excuse for changing "->poll()". This is just a bogus driver that does stupid things. And again, don't use this as an example of "poll must not block" The fact is, poll() *can* block for locking and other such things, and it's perfectly normal and ok. It just shouldn't block for IO. I will not take any misguided patches to try to "fix" poll functions that might block. But I will take patches to fix bugs in drivers. In this case, I think the fix is to just remove that crazy "wait_event_interruptible()" entirely. Not that anybody cares, obviously. Apparently nobody has ever noticed how broken that poll function is. Linus