Re: [PATCH resend] tcp: tcp_release_cb() should release socket ownership

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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




[Index of Archives]     [Linux Kernel Discussion]     [TCP Instrumentation]     [Ethernet Bridging]     [Linux Wireless Networking]     [Linux WPAN Networking]     [Linux Host AP]     [Linux WPAN Networking]     [Linux Bluetooth Networking]     [Linux ATH6KL Networking]     [Linux Networking Users]     [Linux Coverity]     [VLAN]     [Git]     [IETF Annouce]     [Linux Assembly]     [Security]     [Bugtraq]     [Yosemite Information]     [MIPS Linux]     [ARM Linux Kernel]     [ARM Linux]     [Linux Virtualization]     [Linux IDE]     [Linux RAID]     [Linux SCSI]