On Wed, Jun 03, 2020 at 04:53:57PM +0800, Ka-Cheong Poon wrote: > 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? Yes the warning is intended, most likely the break should be changed to goto retest Jason