Print this page
patch tsoome-feedback

Split Close
Expand all
Collapse all
          --- old/usr/src/cmd/fm/modules/sun4v/generic-mem/gmem_page.c
          +++ new/usr/src/cmd/fm/modules/sun4v/generic-mem/gmem_page.c
↓ open down ↓ 263 lines elided ↑ open up ↑
 264  264          (void) nvlist_add_string_array(asru, FM_FMRI_MEM_SERIAL_ID, &sn, 1);
 265  265          (void) nvlist_add_uint64(asru, FM_FMRI_MEM_PHYSADDR,
 266  266              page->page_physbase);
 267  267          (void) nvlist_add_uint64(asru, FM_FMRI_MEM_OFFSET, page->page_offset);
 268  268  
 269  269          if (fmd_nvl_fmri_unusable(hdl, asru)) {
 270  270                  nvlist_free(asru);
 271  271                  return (1);
 272  272          }
 273  273  
 274      -        if (asru != NULL)
 275      -                nvlist_free(asru);
      274 +        nvlist_free(asru);
 276  275  
 277  276          return (0);
 278  277  }
 279  278  
 280  279  
 281  280  /*ARGSUSED*/
 282  281  void
 283  282  gmem_page_validate(fmd_hdl_t *hdl)
 284  283  {
 285  284          gmem_page_t *page, *next;
↓ open down ↓ 33 lines elided ↑ open up ↑
 319  318      fmd_event_t *ep, uint64_t afar, uint64_t offset)
 320  319  {
 321  320          gmem_page_t *page = NULL;
 322  321          const char *uuid;
 323  322          nvlist_t *flt, *hsp;
 324  323  
 325  324          page = gmem_page_lookup(afar);
 326  325          if (page != NULL) {
 327  326                  if (page->page_flags & GMEM_F_FAULTING ||
 328  327                      gmem_page_unusable(hdl, page)) {
 329      -                        if (rsc != NULL)
 330      -                                nvlist_free(rsc);
      328 +                        nvlist_free(rsc);
 331  329                          page->page_flags |= GMEM_F_FAULTING;
 332  330                          return (0);
 333  331                  }
 334  332          } else {
 335  333                  page = gmem_page_create(hdl, fru, afar, offset);
 336  334          }
 337  335  
 338  336          page->page_flags |= GMEM_F_FAULTING;
 339  337          if (page->page_case.cc_cp == NULL)
 340  338                  page->page_case.cc_cp = gmem_case_create(hdl,
 341  339                      &page->page_header, GMEM_PTR_PAGE_CASE, &uuid);
 342  340  
 343  341          if (nvlist_lookup_nvlist(page->page_asru_nvl, FM_FMRI_HC_SPECIFIC,
 344  342              &hsp) == 0)
 345  343                  (void) nvlist_add_nvlist(rsc, FM_FMRI_HC_SPECIFIC, hsp);
 346  344  
 347  345          flt = fmd_nvl_create_fault(hdl, GMEM_FAULT_PAGE, 100, NULL, fru, rsc);
 348      -        if (rsc != NULL)
 349      -                nvlist_free(rsc);
      346 +        nvlist_free(rsc);
 350  347  
 351  348          if (nvlist_add_boolean_value(flt, FM_SUSPECT_MESSAGE, B_FALSE) != 0)
 352  349                  fmd_hdl_abort(hdl, "failed to add no-message member to fault");
 353  350  
 354  351          fmd_case_add_ereport(hdl, page->page_case.cc_cp, ep);
 355  352          fmd_case_add_suspect(hdl, page->page_case.cc_cp, flt);
 356  353          fmd_case_solve(hdl, page->page_case.cc_cp);
 357  354          return (1);
 358  355  }
 359  356  
 360  357  void
 361  358  gmem_page_close(fmd_hdl_t *hdl, void *arg)
 362  359  {
 363  360          gmem_page_destroy(hdl, arg);
 364  361  }
    
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX