Print this page
patch tsoome-feedback


  78 nvlist_t *
  79 cmd_dimm_create_fault(fmd_hdl_t *hdl, cmd_dimm_t *dimm, const char *fltnm,
  80     uint_t cert)
  81 {
  82 #ifdef sun4v
  83         nvlist_t *flt, *nvlfru;
  84         /*
  85          * Do NOT issue hc scheme FRU FMRIs for ultraSPARC-T1 platforms.
  86          * The SP will misinterpret the FRU. Instead, reuse the ASRU FMRI
  87          *
  88          * Use the BR string as a distinguisher. BR (branch) is only
  89          * present in ultraSPARC-T2/T2plus DIMM unums
  90          */
  91         if (strstr(dimm->dimm_unum, "BR") == NULL) {
  92                 flt = cmd_nvl_create_fault(hdl, fltnm, cert,
  93                     dimm->dimm_asru_nvl, dimm->dimm_asru_nvl, NULL);
  94         } else {
  95                 nvlfru = cmd_mem2hc(hdl, dimm->dimm_asru_nvl);
  96                 flt = cmd_nvl_create_fault(hdl, fltnm, cert,
  97                     dimm->dimm_asru_nvl, nvlfru, NULL);
  98                 if (nvlfru != NULL)
  99                         nvlist_free(nvlfru);
 100         }
 101         return (cmd_fault_add_location(hdl, flt, dimm->dimm_unum));
 102 #else
 103         return (cmd_nvl_create_fault(hdl, fltnm, cert, dimm->dimm_asru_nvl,
 104             dimm->dimm_asru_nvl, NULL));
 105 #endif /* sun4v */
 106 }
 107 
 108 static void
 109 cmd_dimm_free(fmd_hdl_t *hdl, cmd_dimm_t *dimm, int destroy)
 110 {
 111         cmd_case_t *cc = &dimm->dimm_case;
 112         int i;
 113         cmd_mq_t *q;
 114         tstamp_t  *tsp, *next;
 115 
 116 #ifdef sun4v
 117         cmd_branch_t *branch;
 118 #endif




  78 nvlist_t *
  79 cmd_dimm_create_fault(fmd_hdl_t *hdl, cmd_dimm_t *dimm, const char *fltnm,
  80     uint_t cert)
  81 {
  82 #ifdef sun4v
  83         nvlist_t *flt, *nvlfru;
  84         /*
  85          * Do NOT issue hc scheme FRU FMRIs for ultraSPARC-T1 platforms.
  86          * The SP will misinterpret the FRU. Instead, reuse the ASRU FMRI
  87          *
  88          * Use the BR string as a distinguisher. BR (branch) is only
  89          * present in ultraSPARC-T2/T2plus DIMM unums
  90          */
  91         if (strstr(dimm->dimm_unum, "BR") == NULL) {
  92                 flt = cmd_nvl_create_fault(hdl, fltnm, cert,
  93                     dimm->dimm_asru_nvl, dimm->dimm_asru_nvl, NULL);
  94         } else {
  95                 nvlfru = cmd_mem2hc(hdl, dimm->dimm_asru_nvl);
  96                 flt = cmd_nvl_create_fault(hdl, fltnm, cert,
  97                     dimm->dimm_asru_nvl, nvlfru, NULL);

  98                 nvlist_free(nvlfru);
  99         }
 100         return (cmd_fault_add_location(hdl, flt, dimm->dimm_unum));
 101 #else
 102         return (cmd_nvl_create_fault(hdl, fltnm, cert, dimm->dimm_asru_nvl,
 103             dimm->dimm_asru_nvl, NULL));
 104 #endif /* sun4v */
 105 }
 106 
 107 static void
 108 cmd_dimm_free(fmd_hdl_t *hdl, cmd_dimm_t *dimm, int destroy)
 109 {
 110         cmd_case_t *cc = &dimm->dimm_case;
 111         int i;
 112         cmd_mq_t *q;
 113         tstamp_t  *tsp, *next;
 114 
 115 #ifdef sun4v
 116         cmd_branch_t *branch;
 117 #endif