diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_cper.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_cper.c | 12 | 
1 files changed, 8 insertions, 4 deletions
| diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_cper.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_cper.c index 5a234eadae8b..25252231a68a 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_cper.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_cper.c @@ -212,7 +212,7 @@ int amdgpu_cper_entry_fill_bad_page_threshold_section(struct amdgpu_device *adev  		   NONSTD_SEC_OFFSET(hdr->sec_cnt, idx));  	amdgpu_cper_entry_fill_section_desc(adev, section_desc, true, false, -					    CPER_SEV_NUM, RUNTIME, NONSTD_SEC_LEN, +					    CPER_SEV_FATAL, RUNTIME, NONSTD_SEC_LEN,  					    NONSTD_SEC_OFFSET(hdr->sec_cnt, idx));  	section->hdr.valid_bits.err_info_cnt = 1; @@ -326,7 +326,9 @@ int amdgpu_cper_generate_bp_threshold_record(struct amdgpu_device *adev)  		return -ENOMEM;  	} -	amdgpu_cper_entry_fill_hdr(adev, bp_threshold, AMDGPU_CPER_TYPE_BP_THRESHOLD, CPER_SEV_NUM); +	amdgpu_cper_entry_fill_hdr(adev, bp_threshold, +				   AMDGPU_CPER_TYPE_BP_THRESHOLD, +				   CPER_SEV_FATAL);  	ret = amdgpu_cper_entry_fill_bad_page_threshold_section(adev, bp_threshold, 0);  	if (ret)  		return ret; @@ -457,7 +459,7 @@ calc:  void amdgpu_cper_ring_write(struct amdgpu_ring *ring, void *src, int count)  { -	u64 pos, wptr_old, rptr = *ring->rptr_cpu_addr & ring->ptr_mask; +	u64 pos, wptr_old, rptr;  	int rec_cnt_dw = count >> 2;  	u32 chunk, ent_sz;  	u8 *s = (u8 *)src; @@ -470,9 +472,11 @@ void amdgpu_cper_ring_write(struct amdgpu_ring *ring, void *src, int count)  		return;  	} +	mutex_lock(&ring->adev->cper.ring_lock); +  	wptr_old = ring->wptr; +	rptr = *ring->rptr_cpu_addr & ring->ptr_mask; -	mutex_lock(&ring->adev->cper.ring_lock);  	while (count) {  		ent_sz = amdgpu_cper_ring_get_ent_sz(ring, ring->wptr);  		chunk = umin(ent_sz, count); | 
