On 02/23/2012 07:57 PM, Roland Dreier wrote:
On Thu, Feb 23, 2012 at 11:55 AM, Steve Wise
<[email protected]> wrote:
RIP: 0010:[<0000000000200200>] [<0000000000200200>]
0x200200 is LIST_POISON2, which is set when something is removed
from a Linux list.
[<ffffffff8008c846>] __wake_up_common+0x3e/0x68
[<ffffffff8002e261>] __wake_up+0x38/0x4f
[<ffffffff8867410b>] :iw_cm:iw_cm_reject+0x5a/0xa7
So in the code
if (cm_id_priv->state != IW_CM_STATE_CONN_RECV) {
spin_unlock_irqrestore(&cm_id_priv->lock, flags);
clear_bit(IWCM_F_CONNECT_WAIT,&cm_id_priv->flags);
wake_up_all(&cm_id_priv->connect_wait);
return -EINVAL;
}
the cm_id_priv->connect_wait is being corrupted before
or during the call to wake_up_all...
could the HW or low-level driver be generating events for
the incoming connections that are associated with the
listen ID, as the listen ID is being destroyed?
Maybe that's why the code silently ignored these requests
before :)
The low level driver at this point doesn't have the cm_id for this connect request because it has not been accepted or
rejected by the iwcm. So there's no way it can post any events.
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html