Re: poll() in 2.6 and beyond

From: Roland Dreier
Date: Tue Mar 02 2004 - 23:07:27 EST


Richard> Well the device's poll function isn't getting called the
Richard> second time with 2.6.0. I never checked it in 2.4.x
Richard> because it always worked. This problem occurs in a
Richard> driver that only returns the fact that one event
Richard> occurred. When it failed to report the event when built
Richard> with a newer kernel, I added diagnostics which showed
Richard> that the poll in the driver was only called once --and
Richard> that the return from poll_wait happened immediately.

Your driver is buggy. It's not surprising since you fundamentally
don't understand the kernel interface you're trying to use.

Richard> So, if the poll_wait isn't a wait-function, but just some
Richard> add-wakeup to the queue function, then its name probably
Richard> should have been changed when it changed. At one time it
Richard> did, truly, wait until it was awakened with
Richard> wake_up_interruptible.

When did it change? Show me a kernel version where poll_wait() waited
until the driver woke it up. (Kernel versions at least as far back as
1.0 are readily available from kernel.org, so it should be easy for
you)

- Roland
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/