From: Eric Dumazet <eric.dumazet@xxxxxxxxx> Date: Mon, 10 Mar 2014 09:50:11 -0700 > Lars Persson reported following deadlock : ... > Bug occurs because __tcp_checksum_complete_user() enables BH, assuming > it is running from softirq context. > > Lars trace involved a NIC without RX checksum support but other points > are problematic as well, like the prequeue stuff. > > Problem is triggered by a timer, that found socket being owned by user. > > tcp_release_cb() should call tcp_write_timer_handler() or > tcp_delack_timer_handler() in the appropriate context : > > BH disabled and socket lock held, but 'owned' field cleared, > as if they were running from timer handlers. > > Fixes: 6f458dfb4092 ("tcp: improve latencies of timer triggered events") > Reported-by: Lars Persson <lars.persson@xxxxxxxx> > Tested-by: Lars Persson <lars.persson@xxxxxxxx> > Signed-off-by: Eric Dumazet <edumazet@xxxxxxxxxx> Applied and queued up for -stable, thanks! -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html