linux/sound/hda
Takashi Iwai af9642d859 ALSA: hda: Fix too short HDMI/DP chmap reporting
commit c2432466f5 upstream.

We got a regression report about the HD-audio HDMI chmap, where some
surround channels are reported as UNKNOWN.  The git bisection pointed
the culprit at the commit 9b3dc8aa3f ("ALSA: hda - Register chmap
obj as priv data instead of codec").  The story behind scene is like
this:

- While moving the code out of the legacy HDA to the HDA common place,
  the patch modifies the code to obtain the chmap array indirectly in
  a byte array, and it expands it to kctl value array.
- At the latter operation, the size of the array is wrongly passed by
  sizeof() to the pointer.
- It can be 4 on 32bit arch, thus too short for 6+ channels.
  (And that's the reason why it didn't hit other persons; it's 8 on
  64bit arch, thus it's usually enough.)

The code was further changed meanwhile, but the problem persisted.
Let's fix it by correctly evaluating the array size.

Fixes: 9b3dc8aa3f ("ALSA: hda - Register chmap obj as priv data instead of codec")
Reported-by: VDR User <user.vdr@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2017-11-30 08:39:05 +00:00
..
ext ALSA: hdac: add missing \n to end of dev_err messages 2016-09-16 19:23:57 +02:00
array.c ALSA: hda: Fix krealloc() with __GFP_ZERO usage 2016-08-03 15:17:22 +02:00
hda_bus_type.c ALSA: hda - Advertise MODALIAS in uevent 2015-10-20 10:15:53 +02:00
hdac_bus.c ALSA: hda - Add / fix kernel doc comments 2015-10-28 12:37:29 +01:00
hdac_controller.c ALSA: hda: Abort capability probe at invalid register read 2017-10-27 10:38:07 +02:00
hdac_device.c ALSA: hda - Fix possible race on regmap bypass flip 2016-04-21 17:59:17 +02:00
hdac_i915.c Merge branch 'for-linus' into for-next 2016-04-26 10:12:46 +02:00
hdac_regmap.c ALSA: hdac_regmap - fix the register access for runtime PM 2016-06-17 14:01:06 +02:00
hdac_stream.c ALSA: hda - Add / fix kernel doc comments 2015-10-28 12:37:29 +01:00
hdac_sysfs.c ALSA: hda - Add hdaudio bus modalias support 2015-10-20 10:15:09 +02:00
hdmi_chmap.c ALSA: hda: Fix too short HDMI/DP chmap reporting 2017-11-30 08:39:05 +00:00
Kconfig ALSA: HDAC: move SND_HDA_PREALLOC_SIZE to core 2015-06-16 17:40:38 +02:00
local.h ALSA: hda - add helper to get channels from cap bits 2016-04-28 18:45:26 +01:00
Makefile ALSA: hda - Add hdmi chmap verb programming ops to chmap object 2016-03-07 15:41:31 +01:00
trace.c ALSA: hda - Re-add tracepoints to HD-audio core driver 2015-03-23 13:17:58 +01:00
trace.h ALSA: hda - add hdac stream trace 2015-05-18 10:06:20 +02:00