Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/radeon: properly initialize r600_audio_status() data

The structure returned from r600_audio_status() is only partially
initialized, and older gcc versions (4.3 and 4.4) warn about this:

drivers/gpu/drm/radeon/r600_hdmi.c: In function 'r600_audio_status':
drivers/gpu/drm/radeon/r600_hdmi.c:108: error: 'status.id' is used uninitialized in this function
drivers/gpu/drm/radeon/r600_hdmi.c:108: error: 'status.connected' is used uninitialized in this function
drivers/gpu/drm/radeon/r600_hdmi.c:108: error: 'status.offset' is used uninitialized in this function

This is harmless and surprisingly correct in C99, as the caller
only accesses the fields that got initialized, so newer compilers
don't warn about it, but initializing the entire structure feels
like the right thing to do here and avoids the warning.

Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>

authored by

Arnd Bergmann and committed by
Alex Deucher
e8820646 cf661ec1

+1 -1
+1 -1
drivers/gpu/drm/radeon/r600_hdmi.c
··· 58 58 59 59 static struct r600_audio_pin r600_audio_status(struct radeon_device *rdev) 60 60 { 61 - struct r600_audio_pin status; 61 + struct r600_audio_pin status = {}; 62 62 uint32_t value; 63 63 64 64 value = RREG32(R600_AUDIO_RATE_BPS_CHANNEL);