Re: [PATCH] RDMA/nes: double CLOSE event indication crash

Or Gerlitz
2010-08-16T14:51:26Z

Latif, Faisal wrote:
> BUG() was in iw_cm.ko in its close handler mentioned as core in my email and caused by iw_nes.ko.

I see, looks like iwcm.c accounts for most of the BUG* calls made from the core, could be nice
to reduce them over time.

Or.

> # grep -n BUG drivers/infiniband/core/*.c | grep "("
> drivers/infiniband/core/cma.c:1262: BUG_ON(1);
> drivers/infiniband/core/cm.c:1169: BUG_ON(cm_id->state != IB_CM_IDLE);
> drivers/infiniband/core/cm.c:1318: BUG_ON(!work);
> drivers/infiniband/core/device.c:175: BUG_ON(size < sizeof (struct ib_device));
> drivers/infiniband/core/device.c:194: BUG_ON(device->reg_state != IB_DEV_UNREGISTERED);
> drivers/infiniband/core/iwcm.c:120: BUG_ON(!list_empty(&cm_id_priv->work_free_list));
> drivers/infiniband/core/iwcm.c:163: BUG_ON(atomic_read(&cm_id_priv->refcount)==0);
> drivers/infiniband/core/iwcm.c:165: BUG_ON(!list_empty(&cm_id_priv->work_list));
> drivers/infiniband/core/iwcm.c:186: BUG_ON(!list_empty(&cm_id_priv->work_list));
> drivers/infiniband/core/iwcm.c:241: BUG_ON(qp == NULL);
> drivers/infiniband/core/iwcm.c:298: BUG();
> drivers/infiniband/core/iwcm.c:374: BUG();
> drivers/infiniband/core/iwcm.c:397: BUG_ON(test_bit(IWCM_F_CALLBACK_DESTROY, &cm_id_priv->flags));
> drivers/infiniband/core/iwcm.c:518: BUG_ON(cm_id_priv->state != IW_CM_STATE_CONN_RECV);
> drivers/infiniband/core/iwcm.c:583: BUG_ON(cm_id_priv->state != IW_CM_STATE_CONN_SENT);
> drivers/infiniband/core/iwcm.c:620: BUG_ON(iw_event->status);
> drivers/infiniband/core/iwcm.c:695: BUG_ON(cm_id_priv->state != IW_CM_STATE_CONN_RECV);
> drivers/infiniband/core/iwcm.c:723: BUG_ON(cm_id_priv->state != IW_CM_STATE_CONN_SENT);
> drivers/infiniband/core/iwcm.c:795: BUG();
> drivers/infiniband/core/iwcm.c:824: BUG();
> drivers/infiniband/core/iwcm.c:865: BUG_ON(atomic_read(&cm_id_priv->refcount)==0);
> drivers/infiniband/core/iwcm.c:869: BUG_ON(!list_empty(&cm_id_priv->work_list));
> drivers/infiniband/core/mad.c:587: BUG_ON(!mad_list->mad_queue);
> drivers/infiniband/core/mad.c:1396: BUG_ON(!*method);
> drivers/infiniband/core/mad.c:1406: BUG_ON(*method);
> drivers/infiniband/core/mad.c:2242: BUG_ON(1);
> drivers/infiniband/core/verbs.c:91: BUG();