Eric Dumazet ed12313af4 net: add POLLPRI to sock_def_readable()
[ Upstream commit 2c6607c611cb7bf0a6750bcea34a258144e302c5 ]

Leonardo Chiquitto found poll() could block forever on tcp sockets and
Urgent data was received, if the event flag only contains POLLPRI.

He did a bisection and found commit 4938d7e0233 (poll: avoid extra
wakeups in select/poll) was the source of the problem.

Problem is TCP sockets use standard sock_def_readable() function for
their sk_data_ready() handler, and sock_def_readable() doesnt signal
POLLPRI.

Only TCP is affected by the problem. Adding POLLPRI to the list of flags
might trigger unnecessary schedules, but URGENT handling is such a
seldom used feature this seems a good compromise.

Thanks a lot to Leonardo for providing the bisection result and a test
program as well.

Reference : http://www.spinics.net/lists/netdev/msg151793.html

Reported-and-bisected-by: Leonardo Chiquitto <leonardo.lists@gmail.com>
Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
Tested-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-02-17 15:14:23 -08:00
..
2010-10-25 13:09:44 -07:00
2010-10-25 13:09:43 -07:00
2010-11-28 11:29:27 -08:00
2010-09-23 14:33:39 -07:00
2010-10-21 15:44:13 +02:00
2010-09-23 14:33:39 -07:00
2010-12-08 12:13:43 -08:00
2010-12-08 09:58:44 -08:00
2010-04-20 16:37:13 -07:00
2010-08-09 11:25:17 +02:00
2010-12-09 20:35:27 -08:00
2010-10-15 15:53:27 +02:00