@@ -218,6 +218,7 @@ static void amdgpu_mca_smu_mca_bank_dump(struct amdgpu_device *adev, int idx, st
218218int amdgpu_mca_smu_log_ras_error (struct amdgpu_device * adev , enum amdgpu_ras_block blk , enum amdgpu_mca_error_type type , struct ras_err_data * err_data )
219219{
220220 struct amdgpu_smuio_mcm_config_info mcm_info ;
221+ struct ras_err_addr err_addr = {0 };
221222 struct mca_bank_set mca_set ;
222223 struct mca_bank_node * node ;
223224 struct mca_bank_entry * entry ;
@@ -246,10 +247,18 @@ int amdgpu_mca_smu_log_ras_error(struct amdgpu_device *adev, enum amdgpu_ras_blo
246247 mcm_info .socket_id = entry -> info .socket_id ;
247248 mcm_info .die_id = entry -> info .aid ;
248249
250+ if (blk == AMDGPU_RAS_BLOCK__UMC ) {
251+ err_addr .err_status = entry -> regs [MCA_REG_IDX_STATUS ];
252+ err_addr .err_ipid = entry -> regs [MCA_REG_IDX_IPID ];
253+ err_addr .err_addr = entry -> regs [MCA_REG_IDX_ADDR ];
254+ }
255+
249256 if (type == AMDGPU_MCA_ERROR_TYPE_UE )
250- amdgpu_ras_error_statistic_ue_count (err_data , & mcm_info , (uint64_t )count );
257+ amdgpu_ras_error_statistic_ue_count (err_data ,
258+ & mcm_info , & err_addr , (uint64_t )count );
251259 else
252- amdgpu_ras_error_statistic_ce_count (err_data , & mcm_info , (uint64_t )count );
260+ amdgpu_ras_error_statistic_ce_count (err_data ,
261+ & mcm_info , & err_addr , (uint64_t )count );
253262 }
254263
255264out_mca_release :
@@ -351,6 +360,9 @@ int amdgpu_mca_smu_get_mca_entry(struct amdgpu_device *adev, enum amdgpu_mca_err
351360 const struct amdgpu_mca_smu_funcs * mca_funcs = adev -> mca .mca_funcs ;
352361 int count ;
353362
363+ if (!mca_funcs || !mca_funcs -> mca_get_mca_entry )
364+ return - EOPNOTSUPP ;
365+
354366 switch (type ) {
355367 case AMDGPU_MCA_ERROR_TYPE_UE :
356368 count = mca_funcs -> max_ue_count ;
@@ -365,10 +377,7 @@ int amdgpu_mca_smu_get_mca_entry(struct amdgpu_device *adev, enum amdgpu_mca_err
365377 if (idx >= count )
366378 return - EINVAL ;
367379
368- if (mca_funcs && mca_funcs -> mca_get_mca_entry )
369- return mca_funcs -> mca_get_mca_entry (adev , type , idx , entry );
370-
371- return - EOPNOTSUPP ;
380+ return mca_funcs -> mca_get_mca_entry (adev , type , idx , entry );
372381}
373382
374383#if defined(CONFIG_DEBUG_FS )
0 commit comments