Suppose the cm_id state is IB_CM_REP_SENT when cm_destroy_id() is called. Then it calls cm_send_rej_locked(). In cm_send_rej_locked(), it calls cm_enter_timewait() and the state is changed to IB_CM_TIMEWAIT. Now back to cm_destroy_id(), it breaks from the switch statement. And the next call is WARN_ON(cm_id->state != IB_CM_IDLE). The cm_id state is IB_CM_TIMEWAIT so it will log a warning. Is the warning intended in this case? Thanks. -- K. Poon ka-cheong.poon@xxxxxxxxxx