Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bf4e161b authored by Greg Kroah-Hartman's avatar Greg Kroah-Hartman Committed by Lee Jones
Browse files

ANDROID: Fix up abi issue with struct snd_pcm_runtime



A portion of the fix for CVE-2022-1048, commit 0f6947f5f520 ("ALSA: pcm:
Fix races among concurrent hw_params and hw_free calls"), caused an ABI
break by adding a new field to struct snd_pcm_runtime.  Because we have
to keep this new addition, it is safe to move it to the end of the
structure because this is only ever created by the sound core, and
referenced as a pointer everywhere else.

This does require a .xml update also to handle the increased structure
size:

Leaf changes summary: 1 artifact changed
Changed leaf types summary: 1 leaf type changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 0 Added function
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable

'struct snd_pcm_runtime at pcm.h:342:1' changed:
  type size changed from 6080 to 6336 (in bits)
  1 data member insertion:
    'mutex buffer_mutex', at offset 6080 (in bits) at pcm.h:428:1
  92 impacted interfaces

Bug: 161946584
Fixes: 0f6947f5f520 ("ALSA: pcm: Fix races among concurrent hw_params and hw_free calls")
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@google.com>
[Lee: Update XML files for this branch]
Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
Change-Id: I20340387fbe85fb82676517a93bb0184c8c1eb65
parent 3026e826
Loading
Loading
Loading
Loading
+1329 −1326

File changed.

Preview size limit exceeded, changes collapsed.

+3 −1
Original line number Diff line number Diff line
@@ -395,7 +395,6 @@ struct snd_pcm_runtime {
	wait_queue_head_t sleep;	/* poll sleep */
	wait_queue_head_t tsleep;	/* transfer sleep */
	struct fasync_struct *fasync;
	struct mutex buffer_mutex;	/* protect for buffer changes */

	/* -- private section -- */
	void *private_data;
@@ -425,6 +424,9 @@ struct snd_pcm_runtime {
	/* -- OSS things -- */
	struct snd_pcm_oss_runtime oss;
#endif
#ifndef __GENKSYMS__
	struct mutex buffer_mutex;	/* protect for buffer changes */
#endif
};

struct snd_pcm_group {		/* keep linked substreams */