Print this page
8368 remove warlock leftovers from usr/src/uts

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/io/ib/adapters/hermon/hermon_agents.c
          +++ new/usr/src/uts/common/io/ib/adapters/hermon/hermon_agents.c
↓ open down ↓ 172 lines elided ↑ open up ↑
 173  173           * task queue).  Note: If we are unable to allocate space for the
 174  174           * the callback args here, then we just return.  But we must ensure
 175  175           * that we call ibmf_free_msg() to free up the message.
 176  176           */
 177  177          cb_args = (hermon_agent_handler_arg_t *)kmem_zalloc(
 178  178              sizeof (hermon_agent_handler_arg_t), KM_NOSLEEP);
 179  179          if (cb_args == NULL) {
 180  180                  (void) ibmf_free_msg(ibmf_handle, &msgp);
 181  181                  return;
 182  182          }
 183      -        _NOTE(NOW_INVISIBLE_TO_OTHER_THREADS(*cb_args))
 184  183  
 185  184          /* Fill in the callback args */
 186  185          cb_args->ahd_ibmfhdl    = ibmf_handle;
 187  186          cb_args->ahd_ibmfmsg    = msgp;
 188  187          cb_args->ahd_agentlist  = args;
 189  188  
 190  189          /*
 191  190           * Dispatch the message to the task queue.  Note: Just like above,
 192  191           * if this request fails for any reason then make sure to free up
 193  192           * the IBMF message and then return
↓ open down ↓ 125 lines elided ↑ open up ↑
 319  318          hermon_state_t                  *state;
 320  319          ibmf_handle_t                   ibmf_handle;
 321  320          ibmf_msg_t                      *msgp;
 322  321          ibmf_msg_bufs_t                 *recv_msgbufp;
 323  322          ibmf_msg_bufs_t                 *send_msgbufp;
 324  323          ib_mad_hdr_t                    *madhdrp;
 325  324          ibmf_retrans_t                  retrans;
 326  325          uint_t                          port;
 327  326          int                             status;
 328  327  
 329      -        _NOTE(NOW_INVISIBLE_TO_OTHER_THREADS(*((sm_portinfo_t *)madpinfop)))
 330      -        _NOTE(NOW_INVISIBLE_TO_OTHER_THREADS(curpinfo))
 331      -        _NOTE(NOW_INVISIBLE_TO_OTHER_THREADS(tmadpinfo))
 332  328          /* Extract the necessary info from the callback args parameter */
 333  329          agent_args  = (hermon_agent_handler_arg_t *)cb_args;
 334  330          ibmf_handle = agent_args->ahd_ibmfhdl;
 335  331          msgp        = agent_args->ahd_ibmfmsg;
 336  332          curr        = agent_args->ahd_agentlist;
 337  333          state       = curr->agl_state;
 338  334          port        = curr->agl_port;
 339  335  
 340  336          /*
 341  337           * Set the message send buffer pointers to the message receive buffer
↓ open down ↓ 11 lines elided ↑ open up ↑
 353  349           *
 354  350           * Note: Hermon has a unique method for handling internally generated
 355  351           * Traps.  All internally detected/generated Trap messages are
 356  352           * automatically received by the IBMF (as receive completions on QP0),
 357  353           * which (because all Hermon Trap MADs have SLID == 0) detects it as a
 358  354           * special "Hermon Trap" and forwards it here to the driver's SMA.
 359  355           * It is then our responsibility here to fill in the Trap MAD's DLID
 360  356           * for forwarding to the real Master SM (as programmed in the port's
 361  357           * PortInfo.MasterSMLID field.)
 362  358           */
 363      -        _NOTE(NOW_INVISIBLE_TO_OTHER_THREADS(msgp->im_local_addr))
 364  359          if (HERMON_IS_SPECIAL_TRAP_MAD(msgp)) {
 365  360                  msgp->im_local_addr.ia_remote_lid =
 366  361                      hermon_get_smlid(state, port);
 367  362          } else {
 368  363                  int isSMSet, isReregSuppd;
 369  364                  uint_t attr_id, method, mgmt_class;
 370  365  
 371  366                  madhdrp = recv_msgbufp->im_bufs_mad_hdr;
 372  367                  method = madhdrp->R_Method;
 373  368                  attr_id = b2h16(madhdrp->AttributeID);
↓ open down ↓ 421 lines elided ↑ open up ↑
 795  790  
 796  791          /*
 797  792           * Handle directed route MADs as a special case.  Hermon firmware
 798  793           * does not update the "direction" bit, "hop pointer", "Return
 799  794           * Path" or, in fact, any of the "directed route" parameters.  So
 800  795           * the responsibility falls on Hermon driver software to inspect the
 801  796           * MADs and update those fields as appropriate (see section 14.2.2
 802  797           * of the IBA specification, rev 1.1)
 803  798           */
 804  799          if (HERMON_MAD_IS_DR(rmadhdrp)) {
 805      -
 806      -        _NOTE(NOW_INVISIBLE_TO_OTHER_THREADS(*((sm_dr_mad_hdr_t *)rmadhdrp)))
 807      -        _NOTE(NOW_INVISIBLE_TO_OTHER_THREADS(*((sm_dr_mad_hdr_t *)smadhdrp)))
 808      -
 809  800                  /*
 810  801                   * Set the "Direction" bit to one.  This indicates that this
 811  802                   * is now directed route response
 812  803                   */
 813  804                  HERMON_DRMAD_SET_DIRECTION(rmadhdrp);
 814  805  
 815  806                  /* Extract the "hop pointer" and "hop count" from the MAD */
 816  807                  hop_count = HERMON_DRMAD_GET_HOPCOUNT(rmadhdrp);
 817  808                  hop_point = HERMON_DRMAD_GET_HOPPOINTER(rmadhdrp);
 818  809  
↓ open down ↓ 12 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX