drm/amd/display: Fix unused-but-set-variable warning
authorAashish Sharma <shraash@google.com>
Thu, 24 Mar 2022 13:40:31 +0000 (19:10 +0530)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 5 Apr 2022 14:26:36 +0000 (10:26 -0400)
Fix the kernel test robot warning below:

drivers/gpu/drm/amd/amdgpu/../display/dmub/inc/dmub_cmd.h:2893:12:
warning: variable 'temp' set but not used [-Wunused-but-set-variable]

Replaced the assignment to the unused temp variable with READ_ONCE()
macro to flush the writes. READ_ONCE() helps avoid the use of
volatile and makes it obvious from the code that the read here is
intentional. Also verified on x86 that the generated code is exactly the
same as before.

Reported-by: kernel test robot <lkp@intel.com>
Signed-off-by: Aashish Sharma <shraash@google.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dmub/inc/dmub_cmd.h

index 9b5db16..95f1c71 100644 (file)
@@ -2962,9 +2962,7 @@ static inline void dmub_rb_flush_pending(const struct dmub_rb *rb)
        uint32_t wptr = rb->wrpt;
 
        while (rptr != wptr) {
-               uint64_t volatile *data = (uint64_t volatile *)((uint8_t *)(rb->base_address) + rptr);
-               //uint64_t volatile *p = (uint64_t volatile *)data;
-               uint64_t temp;
+               uint64_t *data = (uint64_t *)((uint8_t *)(rb->base_address) + rptr);
                uint8_t i;
 
                /* Don't remove this.
@@ -2972,7 +2970,7 @@ static inline void dmub_rb_flush_pending(const struct dmub_rb *rb)
                 * for this function to be effective.
                 */
                for (i = 0; i < DMUB_RB_CMD_SIZE / sizeof(uint64_t); i++)
-                       temp = *data++;
+                       (void)READ_ONCE(*data++);
 
                rptr += DMUB_RB_CMD_SIZE;
                if (rptr >= rb->capacity)