From: Sowmini Varadhan
Date: Wed, 8 Aug 2018 13:57:13 -0700
> The following deadlock, reported by syzbot, can occur if CPU0 is in
> rds_send_remove_from_sock() while CPU1 is in rds_clear_recv_queue()
>
>CPU0CPU1
>
> lock(&(&rm->m
On 8/8/2018 3:18 PM, Sowmini Varadhan wrote:
On (08/08/18 14:51), Santosh Shilimkar wrote:
This bug doesn't make sense since two different transports are using
same socket (Loop and rds_tcp) and running together.
For same transport, such race can't happen with MSG_ON_SOCK flag.
CPU1-> rds_loop_i
On (08/08/18 14:51), Santosh Shilimkar wrote:
> This bug doesn't make sense since two different transports are using
> same socket (Loop and rds_tcp) and running together.
> For same transport, such race can't happen with MSG_ON_SOCK flag.
> CPU1-> rds_loop_inc_free
> CPU0 -> rds_tcp_cork ...
>
T
On 8/8/2018 1:57 PM, Sowmini Varadhan wrote:
The following deadlock, reported by syzbot, can occur if CPU0 is in
rds_send_remove_from_sock() while CPU1 is in rds_clear_recv_queue()
CPU0CPU1
lock(&(&rm->m_rs_lock)->rlock);
The following deadlock, reported by syzbot, can occur if CPU0 is in
rds_send_remove_from_sock() while CPU1 is in rds_clear_recv_queue()
CPU0CPU1
lock(&(&rm->m_rs_lock)->rlock);
lock(&rs->rs_recv_lock);