Skip to content

Commit 72af394

Browse files
committed
amdgpu: mark some variables volatile
1 parent e770936 commit 72af394

File tree

11 files changed

+44
-42
lines changed

11 files changed

+44
-42
lines changed

drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1202,7 +1202,7 @@ int amdgpu_uvd_get_create_msg(struct amdgpu_ring *ring, uint32_t handle,
12021202
{
12031203
struct amdgpu_device *adev = ring->adev;
12041204
struct amdgpu_bo *bo = adev->uvd.ib_bo;
1205-
uint32_t *msg;
1205+
volatile uint32_t *msg;
12061206
int i;
12071207

12081208
msg = amdgpu_bo_kptr(bo);
@@ -1230,7 +1230,7 @@ int amdgpu_uvd_get_destroy_msg(struct amdgpu_ring *ring, uint32_t handle,
12301230
{
12311231
struct amdgpu_device *adev = ring->adev;
12321232
struct amdgpu_bo *bo = NULL;
1233-
uint32_t *msg;
1233+
volatile uint32_t *msg;
12341234
int r, i;
12351235

12361236
if (direct) {

drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -593,7 +593,7 @@ static int amdgpu_vcn_dec_get_create_msg(struct amdgpu_ring *ring, uint32_t hand
593593
struct amdgpu_ib *ib)
594594
{
595595
struct amdgpu_device *adev = ring->adev;
596-
uint32_t *msg;
596+
volatile uint32_t *msg;
597597
int r, i;
598598

599599
memset(ib, 0, sizeof(*ib));
@@ -628,7 +628,7 @@ static int amdgpu_vcn_dec_get_destroy_msg(struct amdgpu_ring *ring, uint32_t han
628628
struct amdgpu_ib *ib)
629629
{
630630
struct amdgpu_device *adev = ring->adev;
631-
uint32_t *msg;
631+
volatile uint32_t *msg;
632632
int r, i;
633633

634634
memset(ib, 0, sizeof(*ib));

drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6592,7 +6592,7 @@ static void gfx_v10_0_kiq_setting(struct amdgpu_ring *ring)
65926592
}
65936593

65946594
static void gfx_v10_0_gfx_mqd_set_priority(struct amdgpu_device *adev,
6595-
struct v10_gfx_mqd *mqd,
6595+
volatile struct v10_gfx_mqd *mqd,
65966596
struct amdgpu_mqd_prop *prop)
65976597
{
65986598
bool priority = 0;
@@ -6612,7 +6612,7 @@ static void gfx_v10_0_gfx_mqd_set_priority(struct amdgpu_device *adev,
66126612
static int gfx_v10_0_gfx_mqd_init(struct amdgpu_device *adev, void *m,
66136613
struct amdgpu_mqd_prop *prop)
66146614
{
6615-
struct v10_gfx_mqd *mqd = m;
6615+
volatile struct v10_gfx_mqd *mqd = m;
66166616
uint64_t hqd_gpu_addr, wb_gpu_addr;
66176617
uint32_t tmp;
66186618
uint32_t rb_bufsz;
@@ -6769,7 +6769,7 @@ static int gfx_v10_0_cp_async_gfx_ring_resume(struct amdgpu_device *adev)
67696769
static int gfx_v10_0_compute_mqd_init(struct amdgpu_device *adev, void *m,
67706770
struct amdgpu_mqd_prop *prop)
67716771
{
6772-
struct v10_compute_mqd *mqd = m;
6772+
volatile struct v10_compute_mqd *mqd = m;
67736773
uint64_t hqd_gpu_addr, wb_gpu_addr, eop_base_addr;
67746774
uint32_t tmp;
67756775

drivers/gpu/drm/amd/amdgpu/gfx_v11_0.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3921,7 +3921,7 @@ static void gfx_v11_0_gfx_mqd_set_priority(struct amdgpu_device *adev,
39213921
static int gfx_v11_0_gfx_mqd_init(struct amdgpu_device *adev, void *m,
39223922
struct amdgpu_mqd_prop *prop)
39233923
{
3924-
struct v11_gfx_mqd *mqd = m;
3924+
volatile struct v11_gfx_mqd *mqd = m;
39253925
uint64_t hqd_gpu_addr, wb_gpu_addr;
39263926
uint32_t tmp;
39273927
uint32_t rb_bufsz;
@@ -4062,7 +4062,7 @@ static int gfx_v11_0_cp_async_gfx_ring_resume(struct amdgpu_device *adev)
40624062
static int gfx_v11_0_compute_mqd_init(struct amdgpu_device *adev, void *m,
40634063
struct amdgpu_mqd_prop *prop)
40644064
{
4065-
struct v11_compute_mqd *mqd = m;
4065+
volatile struct v11_compute_mqd *mqd = m;
40664066
uint64_t hqd_gpu_addr, wb_gpu_addr, eop_base_addr;
40674067
uint32_t tmp;
40684068

drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4391,7 +4391,7 @@ static int gfx_v8_0_deactivate_hqd(struct amdgpu_device *adev, u32 req)
43914391
return r;
43924392
}
43934393

4394-
static void gfx_v8_0_mqd_set_priority(struct amdgpu_ring *ring, struct vi_mqd *mqd)
4394+
static void gfx_v8_0_mqd_set_priority(struct amdgpu_ring *ring, volatile struct vi_mqd *mqd)
43954395
{
43964396
struct amdgpu_device *adev = ring->adev;
43974397

@@ -4407,7 +4407,7 @@ static void gfx_v8_0_mqd_set_priority(struct amdgpu_ring *ring, struct vi_mqd *m
44074407
static int gfx_v8_0_mqd_init(struct amdgpu_ring *ring)
44084408
{
44094409
struct amdgpu_device *adev = ring->adev;
4410-
struct vi_mqd *mqd = ring->mqd_ptr;
4410+
volatile struct vi_mqd *mqd = ring->mqd_ptr;
44114411
uint64_t hqd_gpu_addr, wb_gpu_addr, eop_base_addr;
44124412
uint32_t tmp;
44134413

@@ -4418,11 +4418,13 @@ static int gfx_v8_0_mqd_init(struct amdgpu_ring *ring)
44184418
mqd->compute_static_thread_mgmt_se2 = 0xffffffff;
44194419
mqd->compute_static_thread_mgmt_se3 = 0xffffffff;
44204420
mqd->compute_misc_reserved = 0x00000003;
4421+
44214422
mqd->dynamic_cu_mask_addr_lo = lower_32_bits(ring->mqd_gpu_addr
44224423
+ offsetof(struct vi_mqd_allocation, dynamic_cu_mask));
44234424
mqd->dynamic_cu_mask_addr_hi = upper_32_bits(ring->mqd_gpu_addr
44244425
+ offsetof(struct vi_mqd_allocation, dynamic_cu_mask));
44254426
eop_base_addr = ring->eop_gpu_addr >> 8;
4427+
44264428
mqd->cp_hqd_eop_base_addr_lo = eop_base_addr;
44274429
mqd->cp_hqd_eop_base_addr_hi = upper_32_bits(eop_base_addr);
44284430

drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3471,7 +3471,7 @@ static void gfx_v9_0_kiq_setting(struct amdgpu_ring *ring)
34713471
WREG32_SOC15_RLC(GC, 0, mmRLC_CP_SCHEDULERS, tmp);
34723472
}
34733473

3474-
static void gfx_v9_0_mqd_set_priority(struct amdgpu_ring *ring, struct v9_mqd *mqd)
3474+
static void gfx_v9_0_mqd_set_priority(struct amdgpu_ring *ring, volatile struct v9_mqd *mqd)
34753475
{
34763476
struct amdgpu_device *adev = ring->adev;
34773477

@@ -3487,7 +3487,7 @@ static void gfx_v9_0_mqd_set_priority(struct amdgpu_ring *ring, struct v9_mqd *m
34873487
static int gfx_v9_0_mqd_init(struct amdgpu_ring *ring)
34883488
{
34893489
struct amdgpu_device *adev = ring->adev;
3490-
struct v9_mqd *mqd = ring->mqd_ptr;
3490+
volatile struct v9_mqd *mqd = ring->mqd_ptr;
34913491
uint64_t hqd_gpu_addr, wb_gpu_addr, eop_base_addr;
34923492
uint32_t tmp;
34933493

drivers/gpu/drm/amd/amdgpu/mes_v11_0.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1034,7 +1034,7 @@ static int mes_v11_0_allocate_eop_buf(struct amdgpu_device *adev,
10341034

10351035
static int mes_v11_0_mqd_init(struct amdgpu_ring *ring)
10361036
{
1037-
struct v11_compute_mqd *mqd = ring->mqd_ptr;
1037+
volatile struct v11_compute_mqd *mqd = ring->mqd_ptr;
10381038
uint64_t hqd_gpu_addr, wb_gpu_addr, eop_base_addr;
10391039
uint32_t tmp;
10401040

drivers/gpu/drm/amd/amdgpu/sdma_v6_0.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -833,7 +833,7 @@ static int sdma_v6_0_start(struct amdgpu_device *adev)
833833
static int sdma_v6_0_mqd_init(struct amdgpu_device *adev, void *mqd,
834834
struct amdgpu_mqd_prop *prop)
835835
{
836-
struct v11_sdma_mqd *m = mqd;
836+
volatile struct v11_sdma_mqd *m = mqd;
837837
uint64_t wb_gpu_addr;
838838

839839
m->sdmax_rlcx_rb_cntl =

drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -234,8 +234,8 @@ int kq_acquire_packet_buffer(struct kernel_queue *kq,
234234
{
235235
size_t available_size;
236236
size_t queue_size_dwords;
237-
uint32_t wptr, rptr;
238-
uint64_t wptr64;
237+
volatile uint32_t wptr, rptr;
238+
volatile uint64_t wptr64;
239239
unsigned int *queue_address;
240240

241241
/* When rptr == wptr, the buffer is empty.

drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v10.c

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -32,20 +32,20 @@
3232
#include "gc/gc_10_1_0_sh_mask.h"
3333
#include "amdgpu_amdkfd.h"
3434

35-
static inline struct v10_compute_mqd *get_mqd(void *mqd)
35+
static inline volatile struct v10_compute_mqd *get_mqd(void *mqd)
3636
{
37-
return (struct v10_compute_mqd *)mqd;
37+
return (volatile struct v10_compute_mqd *)mqd;
3838
}
3939

40-
static inline struct v10_sdma_mqd *get_sdma_mqd(void *mqd)
40+
static inline volatile struct v10_sdma_mqd *get_sdma_mqd(void *mqd)
4141
{
42-
return (struct v10_sdma_mqd *)mqd;
42+
return (volatile struct v10_sdma_mqd *)mqd;
4343
}
4444

4545
static void update_cu_mask(struct mqd_manager *mm, void *mqd,
4646
struct mqd_update_info *minfo)
4747
{
48-
struct v10_compute_mqd *m;
48+
volatile struct v10_compute_mqd *m;
4949
uint32_t se_mask[4] = {0}; /* 4 is the max # of SEs */
5050

5151
if (!minfo || !minfo->cu_mask.ptr)
@@ -67,7 +67,7 @@ static void update_cu_mask(struct mqd_manager *mm, void *mqd,
6767
m->compute_static_thread_mgmt_se3);
6868
}
6969

70-
static void set_priority(struct v10_compute_mqd *m, struct queue_properties *q)
70+
static void set_priority(volatile struct v10_compute_mqd *m, struct queue_properties *q)
7171
{
7272
m->cp_hqd_pipe_priority = pipe_priority_map[q->priority];
7373
m->cp_hqd_queue_priority = q->priority;
@@ -90,7 +90,7 @@ static void init_mqd(struct mqd_manager *mm, void **mqd,
9090
struct queue_properties *q)
9191
{
9292
uint64_t addr;
93-
struct v10_compute_mqd *m;
93+
volatile struct v10_compute_mqd *m;
9494

9595
m = (struct v10_compute_mqd *) mqd_mem_obj->cpu_ptr;
9696
addr = mqd_mem_obj->gpu_addr;
@@ -165,7 +165,7 @@ static void update_mqd(struct mqd_manager *mm, void *mqd,
165165
struct queue_properties *q,
166166
struct mqd_update_info *minfo)
167167
{
168-
struct v10_compute_mqd *m;
168+
volatile struct v10_compute_mqd *m;
169169

170170
m = get_mqd(mqd);
171171

@@ -239,7 +239,7 @@ static int get_wave_state(struct mqd_manager *mm, void *mqd,
239239
u32 *ctl_stack_used_size,
240240
u32 *save_area_used_size)
241241
{
242-
struct v10_compute_mqd *m;
242+
volatile struct v10_compute_mqd *m;
243243
struct kfd_context_save_area_header header;
244244

245245
m = get_mqd(mqd);
@@ -273,7 +273,7 @@ static int get_wave_state(struct mqd_manager *mm, void *mqd,
273273

274274
static void checkpoint_mqd(struct mqd_manager *mm, void *mqd, void *mqd_dst, void *ctl_stack_dst)
275275
{
276-
struct v10_compute_mqd *m;
276+
volatile struct v10_compute_mqd *m;
277277

278278
m = get_mqd(mqd);
279279

@@ -287,7 +287,7 @@ static void restore_mqd(struct mqd_manager *mm, void **mqd,
287287
const void *ctl_stack_src, const u32 ctl_stack_size)
288288
{
289289
uint64_t addr;
290-
struct v10_compute_mqd *m;
290+
volatile struct v10_compute_mqd *m;
291291

292292
m = (struct v10_compute_mqd *) mqd_mem_obj->cpu_ptr;
293293
addr = mqd_mem_obj->gpu_addr;
@@ -311,7 +311,7 @@ static void init_mqd_hiq(struct mqd_manager *mm, void **mqd,
311311
struct kfd_mem_obj *mqd_mem_obj, uint64_t *gart_addr,
312312
struct queue_properties *q)
313313
{
314-
struct v10_compute_mqd *m;
314+
volatile struct v10_compute_mqd *m;
315315

316316
init_mqd(mm, mqd, mqd_mem_obj, gart_addr, q);
317317

@@ -345,7 +345,7 @@ static void init_mqd_sdma(struct mqd_manager *mm, void **mqd,
345345
struct kfd_mem_obj *mqd_mem_obj, uint64_t *gart_addr,
346346
struct queue_properties *q)
347347
{
348-
struct v10_sdma_mqd *m;
348+
volatile struct v10_sdma_mqd *m;
349349

350350
m = (struct v10_sdma_mqd *) mqd_mem_obj->cpu_ptr;
351351

@@ -364,7 +364,7 @@ static void update_mqd_sdma(struct mqd_manager *mm, void *mqd,
364364
struct queue_properties *q,
365365
struct mqd_update_info *minfo)
366366
{
367-
struct v10_sdma_mqd *m;
367+
volatile struct v10_sdma_mqd *m;
368368

369369
m = get_sdma_mqd(mqd);
370370
m->sdmax_rlcx_rb_cntl = (ffs(q->queue_size / sizeof(unsigned int)) - 1)
@@ -392,7 +392,7 @@ static void checkpoint_mqd_sdma(struct mqd_manager *mm,
392392
void *mqd_dst,
393393
void *ctl_stack_dst)
394394
{
395-
struct v10_sdma_mqd *m;
395+
volatile struct v10_sdma_mqd *m;
396396

397397
m = get_sdma_mqd(mqd);
398398

@@ -407,7 +407,7 @@ static void restore_mqd_sdma(struct mqd_manager *mm, void **mqd,
407407
const u32 ctl_stack_size)
408408
{
409409
uint64_t addr;
410-
struct v10_sdma_mqd *m;
410+
volatile struct v10_sdma_mqd *m;
411411

412412
m = (struct v10_sdma_mqd *) mqd_mem_obj->cpu_ptr;
413413
addr = mqd_mem_obj->gpu_addr;

0 commit comments

Comments
 (0)