1. 29 7月, 2010 1 次提交
    • S
      IB/cm: Check LAP state before sending an MRA · 50a025c6
      Sean Hefty 提交于
      NULL pointer dereferences in ib_cm_init_qp_attr() were seen by some
      users.  From a crash dump, I determined that we died in
      cm_init_qp_rts_attr() (it's inlined, so it doesn't show up in the
      traceback) on the line labeled below:
      
      static int cm_init_qp_rts_attr(struct cm_id_private *cm_id_priv,
                                     struct ib_qp_attr *qp_attr,
                                     int *qp_attr_mask)
      {
              ........
              if (cm_id_priv->id.lap_state == IB_CM_LAP_UNINIT) {
                      .....
              } else {
                     *qp_attr_mask = IB_QP_ALT_PATH | IB_QP_PATH_MIG_STATE;
                     qp_attr->alt_port_num = cm_id_priv->alt_av.port->port_num; <-die
      
      
      The problem is that the rdma_cm can call ib_send_cm_mra() after a
      connection has been established.  The ib_cm incorrectly assumes that
      the MRA is in response to a LAP (load alternate path) message, even
      though no LAP message has been received.  The ib_cm needs to check the
      lap_state before sending an MRA if the cm_id state is established.
      Reported-by: NArthur Kepner <akepner@sgi.com>
      Reported-by: NJosh England <jjengla@gmail.com>
      Signed-off-by: NSean Hefty <sean.hefty@intel.com>
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      50a025c6
  2. 15 7月, 2010 1 次提交
  3. 10 7月, 2010 2 次提交
  4. 09 7月, 2010 6 次提交
  5. 08 7月, 2010 3 次提交
  6. 07 7月, 2010 15 次提交
  7. 06 7月, 2010 1 次提交
  8. 05 7月, 2010 1 次提交
  9. 03 7月, 2010 10 次提交