diff --git a/0015-Fix-the-binary-compatibility-of-ext-ctl-plugin-with-.patch b/0015-Fix-the-binary-compatibility-of-ext-ctl-plugin-with-.patch new file mode 100644 index 0000000..5784bb3 --- /dev/null +++ b/0015-Fix-the-binary-compatibility-of-ext-ctl-plugin-with-.patch @@ -0,0 +1,55 @@ +From 52160de21ee6a710a746b0881d9581994d039123 Mon Sep 17 00:00:00 2001 +From: Takashi Iwai +Date: Mon, 25 Jun 2012 23:16:14 +0200 +Subject: [PATCH] Fix the binary compatibility of ext-ctl plugin with protocol + 1.0.0 + +Signed-off-by: Takashi Iwai +--- + include/control_external.h | 9 +++++---- + src/control/control_ext.c | 3 ++- + 2 files changed, 7 insertions(+), 5 deletions(-) + +diff --git a/include/control_external.h b/include/control_external.h +index 5392ea6..e98f4d6 100644 +--- a/include/control_external.h ++++ b/include/control_external.h +@@ -125,16 +125,17 @@ struct snd_ctl_ext { + * control handle filled by #snd_ctl_ext_create() + */ + snd_ctl_t *handle; ++ ++ int nonblock; /**< non-block mode; read-only */ ++ int subscribed; /**< events subscribed; read-only */ ++ + /** +- * optional TLV data for the control. ++ * optional TLV data for the control (since protocol 1.0.1) + */ + union { + snd_ctl_ext_tlv_rw_t *c; + const unsigned int *p; + } tlv; +- +- int nonblock; /**< non-block mode; read-only */ +- int subscribed; /**< events subscribed; read-only */ + }; + + /** Callback table of ext */ +diff --git a/src/control/control_ext.c b/src/control/control_ext.c +index cc30766..56552fa 100644 +--- a/src/control/control_ext.c ++++ b/src/control/control_ext.c +@@ -706,7 +706,8 @@ int snd_ctl_ext_create(snd_ctl_ext_t *ext, const char *name, int mode) + snd_ctl_t *ctl; + int err; + +- if (ext->version != SND_CTL_EXT_VERSION) { ++ if (ext->version < SNDRV_PROTOCOL_VERSION(1, 0, 0) || ++ ext->version > SND_CTL_EXT_VERSION) { + SNDERR("ctl_ext: Plugin version mismatch\n"); + return -ENXIO; + } +-- +1.7.10.4 + diff --git a/alsa.changes b/alsa.changes index 8c53564..ebde36b 100644 --- a/alsa.changes +++ b/alsa.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Mon Jun 25 23:18:07 CEST 2012 - tiwai@suse.de + +- Fix the backward compatibility of ext_ctl plugin (bnc#768742) + ------------------------------------------------------------------- Mon Jun 11 18:07:15 CEST 2012 - tiwai@suse.de diff --git a/alsa.spec b/alsa.spec index e7b2983..cfe71b4 100644 --- a/alsa.spec +++ b/alsa.spec @@ -65,6 +65,7 @@ Patch11: 0011-pcm-add-missing-break-in-switch.patch Patch12: 0012-pcm_dsnoop-comment-fall-through-in-next-case.patch Patch13: 0013-tlv-improve-robustness-of-raw-value-ranges.patch Patch14: 0014-conf-Add-more-USB-devices-to-S-PDIF-blacklist.patch +Patch15: 0015-Fix-the-binary-compatibility-of-ext-ctl-plugin-with-.patch Patch99: alsa-lib-doxygen-avoid-crash-for-11.3.diff Url: http://www.alsa-project.org/ BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -129,6 +130,7 @@ Architecture. %patch12 -p1 %patch13 -p1 %patch14 -p1 +%patch15 -p1 %if %suse_version == 1130 %patch99 -p1 %endif