Am 2021-09-13 um 10:19 a.m. schrieb Michel Dänzer: > From: Michel Dänzer <mdaenzer@xxxxxxxxxx> > > Avoids warning with -Wformat: > > CC [M] drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_smi_events.o > ../drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_smi_events.c: In function ‘kfd_smi_event_update_thermal_throttling’: > ../drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_smi_events.c:224:60: warning: format ‘%llx’ expects argument of type > ‘long long unsigned int’, but argument 6 has type ‘long int’ [-Wformat=] > 224 | len = snprintf(fifo_in, sizeof(fifo_in), "%x %x:%llx\n", > | ~~~^ > | | > | long long unsigned int > | %lx > 225 | KFD_SMI_EVENT_THERMAL_THROTTLE, throttle_bitmask, > 226 | atomic64_read(&adev->smu.throttle_int_counter)); > | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > | | > | long int That's weird. As far as I can see, atomic64_read is defined to return s64, which should be the same as long long. Which architecture are you on? For the record, these are the definition for x86 and x86_64 on Linux 5.13: ./arch/x86/include/asm/atomic64_32.h:static inline s64 arch_atomic64_read(const atomic64_t *v) ./arch/x86/include/asm/atomic64_64.h:static inline s64 arch_atomic64_read(const atomic64_t *v) Looks like x86 uses int-ll64.h (64-bit types are long-long). Some other architectures use int-l64.h (64-bit types are long). On architectures that use int-l64.h, this patch just casts s64 (long) to u64 (unsigned long), which doesn't fix the problem. Regards, Felix > > Signed-off-by: Michel Dänzer <mdaenzer@xxxxxxxxxx> > --- > drivers/gpu/drm/amd/amdkfd/kfd_smi_events.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_smi_events.c b/drivers/gpu/drm/amd/amdkfd/kfd_smi_events.c > index ed4bc5f844ce..46e1c0cda94c 100644 > --- a/drivers/gpu/drm/amd/amdkfd/kfd_smi_events.c > +++ b/drivers/gpu/drm/amd/amdkfd/kfd_smi_events.c > @@ -223,7 +223,7 @@ void kfd_smi_event_update_thermal_throttling(struct kfd_dev *dev, > > len = snprintf(fifo_in, sizeof(fifo_in), "%x %llx:%llx\n", > KFD_SMI_EVENT_THERMAL_THROTTLE, throttle_bitmask, > - atomic64_read(&adev->smu.throttle_int_counter)); > + (u64)atomic64_read(&adev->smu.throttle_int_counter)); > > add_event_to_kfifo(dev, KFD_SMI_EVENT_THERMAL_THROTTLE, fifo_in, len); > }