From: Greg Kroah-Hartman Date: Mon, 25 Feb 2013 18:58:46 +0000 (-0800) Subject: 3.8-stable patches X-Git-Tag: v3.7.10~33 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=cf37176ae98ff2f283bada364fa80c791500127f;p=thirdparty%2Fkernel%2Fstable-queue.git 3.8-stable patches added patches: alsa-hda-disable-runtime-pm-for-intel-5-series-3400.patch alsa-hda-fix-broken-workaround-for-hdmi-spdif-conflicts.patch alsa-hda-fix-default-multichannel-hdmi-mapping-regression.patch alsa-hda-hdmi-eld-shouldn-t-be-valid-after-unplug.patch alsa-hda-release-assigned-pin-cvt-at-error-path-of-hdmi_pcm_open.patch alsa-hda-workaround-for-silent-output-on-sony-vaio-vgc-ln51jgb-with-alc889.patch alsa-usb-audio-fix-roland-a-pro-support.patch alsa-usb-fix-processing-unit-descriptor-parsers.patch alsa-usb-quirks-fix-out-of-bounds-access.patch gfs2-get-a-block-reservation-before-resizing-a-file.patch p54usb-corrected-usb-id-for-t-com-sinus-154-data-ii.patch --- diff --git a/queue-3.8/alsa-hda-disable-runtime-pm-for-intel-5-series-3400.patch b/queue-3.8/alsa-hda-disable-runtime-pm-for-intel-5-series-3400.patch new file mode 100644 index 00000000000..baff381a2af --- /dev/null +++ b/queue-3.8/alsa-hda-disable-runtime-pm-for-intel-5-series-3400.patch @@ -0,0 +1,32 @@ +From 2c1350fdeaefefe1a149d3b083383409f43f0daa Mon Sep 17 00:00:00 2001 +From: Takashi Iwai +Date: Thu, 14 Feb 2013 09:44:55 +0100 +Subject: ALSA: hda - Disable runtime PM for Intel 5 Series/3400 + +From: Takashi Iwai + +commit 2c1350fdeaefefe1a149d3b083383409f43f0daa upstream. + +We've got a regression report wrt the IRQ issue related with the +power-save on a Dell machine, and disabling runtime PM works around. + +Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=53441 + +Signed-off-by: Takashi Iwai +Signed-off-by: Greg Kroah-Hartman + +--- + sound/pci/hda/hda_intel.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/sound/pci/hda/hda_intel.c ++++ b/sound/pci/hda/hda_intel.c +@@ -3624,7 +3624,7 @@ static DEFINE_PCI_DEVICE_TABLE(azx_ids) + .driver_data = AZX_DRIVER_SCH | AZX_DCAPS_INTEL_PCH }, + /* 5 Series/3400 */ + { PCI_DEVICE(0x8086, 0x3b56), +- .driver_data = AZX_DRIVER_SCH | AZX_DCAPS_INTEL_PCH }, ++ .driver_data = AZX_DRIVER_SCH | AZX_DCAPS_INTEL_PCH_NOPM }, + /* Poulsbo */ + { PCI_DEVICE(0x8086, 0x811b), + .driver_data = AZX_DRIVER_SCH | AZX_DCAPS_INTEL_PCH_NOPM }, diff --git a/queue-3.8/alsa-hda-fix-broken-workaround-for-hdmi-spdif-conflicts.patch b/queue-3.8/alsa-hda-fix-broken-workaround-for-hdmi-spdif-conflicts.patch new file mode 100644 index 00000000000..029fd53f262 --- /dev/null +++ b/queue-3.8/alsa-hda-fix-broken-workaround-for-hdmi-spdif-conflicts.patch @@ -0,0 +1,137 @@ +From ea9b43addc4d90ca5b029f47f85ca152320a1e8d Mon Sep 17 00:00:00 2001 +From: Takashi Iwai +Date: Tue, 12 Feb 2013 17:02:41 +0100 +Subject: ALSA: hda - Fix broken workaround for HDMI/SPDIF conflicts + +From: Takashi Iwai + +commit ea9b43addc4d90ca5b029f47f85ca152320a1e8d upstream. + +The commit [dcda58061: ALSA: hda - Add workaround for conflicting +IEC958 controls] introduced a workaround for cards that have both +SPDIF and HDMI devices for giving device=1 to SPDIF control elements. +It turned out, however, that this workaround doesn't work well - + +- The workaround checks only conflicts in a single codec, but SPDIF + and HDMI are provided by multiple codecs in many cases, and + +- ALSA mixer abstraction doesn't care about the device number in ctl + elements, thus you'll get errors from amixer such as + % amixer scontrols -c 0 + ALSA lib simple_none.c:1551:(simple_add1) helem (MIXER,'IEC958 + Playback Switch',0,1,0) appears twice or more + amixer: Mixer hw:0 load error: Invalid argument + +This patch fixes the previous broken workaround. Instead of changing +the device number of SPDIF ctl elements, shift the element indices of +such controls up to 16. Also, the conflict check is performed over +all codecs found on the bus. + +HDMI devices will be put to dev=0,index=0 as before. Only the +conflicting SPDIF device is moved to a different place. The new place +of SPDIF device is supposed by the updated alsa-lib HDA-Intel.conf, +respectively. + +Reported-by: Stephan Raue +Reported-by: Anssi Hannula +Signed-off-by: Takashi Iwai +Signed-off-by: Greg Kroah-Hartman + +--- + sound/pci/hda/hda_codec.c | 43 +++++++++++++++++++++---------------------- + sound/pci/hda/hda_codec.h | 3 ++- + 2 files changed, 23 insertions(+), 23 deletions(-) + +--- a/sound/pci/hda/hda_codec.c ++++ b/sound/pci/hda/hda_codec.c +@@ -2160,11 +2160,12 @@ struct snd_kcontrol *snd_hda_find_mixer_ + EXPORT_SYMBOL_HDA(snd_hda_find_mixer_ctl); + + static int find_empty_mixer_ctl_idx(struct hda_codec *codec, const char *name, +- int dev) ++ int start_idx) + { +- int idx; +- for (idx = 0; idx < 16; idx++) { /* 16 ctlrs should be large enough */ +- if (!find_mixer_ctl(codec, name, dev, idx)) ++ int i, idx; ++ /* 16 ctlrs should be large enough */ ++ for (i = 0, idx = start_idx; i < 16; i++, idx++) { ++ if (!find_mixer_ctl(codec, name, 0, idx)) + return idx; + } + return -EBUSY; +@@ -3132,30 +3133,29 @@ int snd_hda_create_dig_out_ctls(struct h + int err; + struct snd_kcontrol *kctl; + struct snd_kcontrol_new *dig_mix; +- int idx, dev = 0; +- const int spdif_pcm_dev = 1; ++ int idx = 0; ++ const int spdif_index = 16; + struct hda_spdif_out *spdif; ++ struct hda_bus *bus = codec->bus; + +- if (codec->primary_dig_out_type == HDA_PCM_TYPE_HDMI && ++ if (bus->primary_dig_out_type == HDA_PCM_TYPE_HDMI && + type == HDA_PCM_TYPE_SPDIF) { +- dev = spdif_pcm_dev; +- } else if (codec->primary_dig_out_type == HDA_PCM_TYPE_SPDIF && ++ idx = spdif_index; ++ } else if (bus->primary_dig_out_type == HDA_PCM_TYPE_SPDIF && + type == HDA_PCM_TYPE_HDMI) { +- for (idx = 0; idx < codec->spdif_out.used; idx++) { +- spdif = snd_array_elem(&codec->spdif_out, idx); +- for (dig_mix = dig_mixes; dig_mix->name; dig_mix++) { +- kctl = find_mixer_ctl(codec, dig_mix->name, 0, idx); +- if (!kctl) +- break; +- kctl->id.device = spdif_pcm_dev; +- } ++ /* suppose a single SPDIF device */ ++ for (dig_mix = dig_mixes; dig_mix->name; dig_mix++) { ++ kctl = find_mixer_ctl(codec, dig_mix->name, 0, 0); ++ if (!kctl) ++ break; ++ kctl->id.index = spdif_index; + } +- codec->primary_dig_out_type = HDA_PCM_TYPE_HDMI; ++ bus->primary_dig_out_type = HDA_PCM_TYPE_HDMI; + } +- if (!codec->primary_dig_out_type) +- codec->primary_dig_out_type = type; ++ if (!bus->primary_dig_out_type) ++ bus->primary_dig_out_type = type; + +- idx = find_empty_mixer_ctl_idx(codec, "IEC958 Playback Switch", dev); ++ idx = find_empty_mixer_ctl_idx(codec, "IEC958 Playback Switch", idx); + if (idx < 0) { + printk(KERN_ERR "hda_codec: too many IEC958 outputs\n"); + return -EBUSY; +@@ -3165,7 +3165,6 @@ int snd_hda_create_dig_out_ctls(struct h + kctl = snd_ctl_new1(dig_mix, codec); + if (!kctl) + return -ENOMEM; +- kctl->id.device = dev; + kctl->id.index = idx; + kctl->private_value = codec->spdif_out.used - 1; + err = snd_hda_ctl_add(codec, associated_nid, kctl); +--- a/sound/pci/hda/hda_codec.h ++++ b/sound/pci/hda/hda_codec.h +@@ -671,6 +671,8 @@ struct hda_bus { + unsigned int response_reset:1; /* controller was reset */ + unsigned int in_reset:1; /* during reset operation */ + unsigned int power_keep_link_on:1; /* don't power off HDA link */ ++ ++ int primary_dig_out_type; /* primary digital out PCM type */ + }; + + /* +@@ -837,7 +839,6 @@ struct hda_codec { + struct mutex hash_mutex; + struct snd_array spdif_out; + unsigned int spdif_in_enable; /* SPDIF input enable? */ +- int primary_dig_out_type; /* primary digital out PCM type */ + const hda_nid_t *slave_dig_outs; /* optional digital out slave widgets */ + struct snd_array init_pins; /* initial (BIOS) pin configurations */ + struct snd_array driver_pins; /* pin configs set by codec parser */ diff --git a/queue-3.8/alsa-hda-fix-default-multichannel-hdmi-mapping-regression.patch b/queue-3.8/alsa-hda-fix-default-multichannel-hdmi-mapping-regression.patch new file mode 100644 index 00000000000..833baed7749 --- /dev/null +++ b/queue-3.8/alsa-hda-fix-default-multichannel-hdmi-mapping-regression.patch @@ -0,0 +1,64 @@ +From 20608731f479d48be6bcb88e727f360ddf98ddaf Mon Sep 17 00:00:00 2001 +From: Anssi Hannula +Date: Sun, 3 Feb 2013 17:55:45 +0200 +Subject: ALSA: hda - Fix default multichannel HDMI mapping regression + +From: Anssi Hannula + +commit 20608731f479d48be6bcb88e727f360ddf98ddaf upstream. + +Commit d45e6889ee69456a4d5b1bbb32252f460cd48fa9 ("ALSA: hda - Provide +the proper channel mapping for generic HDMI driver") added support for +custom channel maps in the HDA HDMI driver. Due to a mistake in an +'if' condition the custom map is always used even when no such map has +been set. This causes incorrect channel mapping for multichannel audio +by default. + +Pass per_pin->chmap_set to hdmi_setup_channel_mapping() as a parameter +so that it can use it for detecting if a custom map has been set instead +of checking if map is NULL (which is never the case). + +Reported-by: Staffan Lindberg +Signed-off-by: Anssi Hannula +Signed-off-by: Takashi Iwai +Signed-off-by: Greg Kroah-Hartman + +--- + sound/pci/hda/patch_hdmi.c | 11 +++++++---- + 1 file changed, 7 insertions(+), 4 deletions(-) + +--- a/sound/pci/hda/patch_hdmi.c ++++ b/sound/pci/hda/patch_hdmi.c +@@ -714,9 +714,10 @@ static void hdmi_setup_fake_chmap(unsign + + static void hdmi_setup_channel_mapping(struct hda_codec *codec, + hda_nid_t pin_nid, bool non_pcm, int ca, +- int channels, unsigned char *map) ++ int channels, unsigned char *map, ++ bool chmap_set) + { +- if (!non_pcm && map) { ++ if (!non_pcm && chmap_set) { + hdmi_manual_setup_channel_mapping(codec, pin_nid, + channels, map); + } else { +@@ -905,7 +906,8 @@ static void hdmi_setup_audio_infoframe(s + pin_nid, + channels); + hdmi_setup_channel_mapping(codec, pin_nid, non_pcm, ca, +- channels, per_pin->chmap); ++ channels, per_pin->chmap, ++ per_pin->chmap_set); + hdmi_stop_infoframe_trans(codec, pin_nid); + hdmi_fill_audio_infoframe(codec, pin_nid, + ai.bytes, sizeof(ai)); +@@ -915,7 +917,8 @@ static void hdmi_setup_audio_infoframe(s + * accordingly */ + if (per_pin->non_pcm != non_pcm) + hdmi_setup_channel_mapping(codec, pin_nid, non_pcm, ca, +- channels, per_pin->chmap); ++ channels, per_pin->chmap, ++ per_pin->chmap_set); + } + + per_pin->non_pcm = non_pcm; diff --git a/queue-3.8/alsa-hda-hdmi-eld-shouldn-t-be-valid-after-unplug.patch b/queue-3.8/alsa-hda-hdmi-eld-shouldn-t-be-valid-after-unplug.patch new file mode 100644 index 00000000000..c0e88530cce --- /dev/null +++ b/queue-3.8/alsa-hda-hdmi-eld-shouldn-t-be-valid-after-unplug.patch @@ -0,0 +1,31 @@ +From bbfd8a19b6913f50a362457c34d49bfafe5e456e Mon Sep 17 00:00:00 2001 +From: David Henningsson +Date: Tue, 19 Feb 2013 16:11:22 +0100 +Subject: ALSA: hda - hdmi: ELD shouldn't be valid after unplug + +From: David Henningsson + +commit bbfd8a19b6913f50a362457c34d49bfafe5e456e upstream. + +Currently, eld_valid is never set to false, except at kernel module +load time. This patch makes sure that eld is no longer valid when +the cable is (hot-)unplugged. + +Signed-off-by: David Henningsson +Signed-off-by: Takashi Iwai +Signed-off-by: Greg Kroah-Hartman + +--- + sound/pci/hda/patch_hdmi.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/sound/pci/hda/patch_hdmi.c ++++ b/sound/pci/hda/patch_hdmi.c +@@ -1172,6 +1172,7 @@ static void hdmi_present_sense(struct hd + "HDMI status: Codec=%d Pin=%d Presence_Detect=%d ELD_Valid=%d\n", + codec->addr, pin_nid, eld->monitor_present, eld_valid); + ++ eld->eld_valid = false; + if (eld_valid) { + if (!snd_hdmi_get_eld(eld, codec, pin_nid)) + snd_hdmi_show_eld(eld); diff --git a/queue-3.8/alsa-hda-release-assigned-pin-cvt-at-error-path-of-hdmi_pcm_open.patch b/queue-3.8/alsa-hda-release-assigned-pin-cvt-at-error-path-of-hdmi_pcm_open.patch new file mode 100644 index 00000000000..97ae1d27bc9 --- /dev/null +++ b/queue-3.8/alsa-hda-release-assigned-pin-cvt-at-error-path-of-hdmi_pcm_open.patch @@ -0,0 +1,36 @@ +From 2ad779b7329d6894a80df94e693e72eaa0d56790 Mon Sep 17 00:00:00 2001 +From: Takashi Iwai +Date: Fri, 1 Feb 2013 14:01:27 +0100 +Subject: ALSA: hda - Release assigned pin/cvt at error path of hdmi_pcm_open() + +From: Takashi Iwai + +commit 2ad779b7329d6894a80df94e693e72eaa0d56790 upstream. + +If the driver detects and invalid ELD, it gives an open error. +But it forgot to release the assigned pin, converter and spdif ctls +before returning. + +Signed-off-by: Takashi Iwai +Signed-off-by: Greg Kroah-Hartman + +--- + sound/pci/hda/patch_hdmi.c | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +--- a/sound/pci/hda/patch_hdmi.c ++++ b/sound/pci/hda/patch_hdmi.c +@@ -1100,8 +1100,12 @@ static int hdmi_pcm_open(struct hda_pcm_ + if (!static_hdmi_pcm && eld->eld_valid) { + snd_hdmi_eld_update_pcm_info(eld, hinfo); + if (hinfo->channels_min > hinfo->channels_max || +- !hinfo->rates || !hinfo->formats) ++ !hinfo->rates || !hinfo->formats) { ++ per_cvt->assigned = 0; ++ hinfo->nid = 0; ++ snd_hda_spdif_ctls_unassign(codec, pin_idx); + return -ENODEV; ++ } + } + + /* Store the updated parameters */ diff --git a/queue-3.8/alsa-hda-workaround-for-silent-output-on-sony-vaio-vgc-ln51jgb-with-alc889.patch b/queue-3.8/alsa-hda-workaround-for-silent-output-on-sony-vaio-vgc-ln51jgb-with-alc889.patch new file mode 100644 index 00000000000..f05ac083592 --- /dev/null +++ b/queue-3.8/alsa-hda-workaround-for-silent-output-on-sony-vaio-vgc-ln51jgb-with-alc889.patch @@ -0,0 +1,35 @@ +From 12e31a78c70dc12897fda2489113f445c0e94a18 Mon Sep 17 00:00:00 2001 +From: Fernando Luis Vazquez Cao +Date: Tue, 12 Feb 2013 16:47:44 +0900 +Subject: ALSA: hda - Workaround for silent output on Sony Vaio VGC-LN51JGB with ALC889 + +From: Fernando Luis Vazquez Cao + +commit 12e31a78c70dc12897fda2489113f445c0e94a18 upstream. + +Some Vaio all-in-one desktop PCs (for example VGC-LN51JGB) are affected by +the same issue that caused Vaio Z laptops to become silent: the speaker pin +must be connected to the first DAC even though the codec itself advertises +flexible routing through any of the DACs. + +Use the no-primary-hp fixup for choosing the speaker pin as the primary so +that the right DAC is assigned on this device. + +Signed-off-by: Fernando Luis Vazquez Cao +Signed-off-by: Takashi Iwai +Signed-off-by: Greg Kroah-Hartman + +--- + sound/pci/hda/patch_realtek.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/sound/pci/hda/patch_realtek.c ++++ b/sound/pci/hda/patch_realtek.c +@@ -5394,6 +5394,7 @@ static const struct snd_pci_quirk alc882 + SND_PCI_QUIRK(0x1043, 0x835f, "Asus Eee 1601", ALC888_FIXUP_EEE1601), + SND_PCI_QUIRK(0x104d, 0x9047, "Sony Vaio TT", ALC889_FIXUP_VAIO_TT), + SND_PCI_QUIRK(0x104d, 0x905a, "Sony Vaio Z", ALC882_FIXUP_NO_PRIMARY_HP), ++ SND_PCI_QUIRK(0x104d, 0x9043, "Sony Vaio VGC-LN51JGB", ALC882_FIXUP_NO_PRIMARY_HP), + + /* All Apple entries are in codec SSIDs */ + SND_PCI_QUIRK(0x106b, 0x00a0, "MacBookPro 3,1", ALC889_FIXUP_MBP_VREF), diff --git a/queue-3.8/alsa-usb-audio-fix-roland-a-pro-support.patch b/queue-3.8/alsa-usb-audio-fix-roland-a-pro-support.patch new file mode 100644 index 00000000000..d0bc082f016 --- /dev/null +++ b/queue-3.8/alsa-usb-audio-fix-roland-a-pro-support.patch @@ -0,0 +1,31 @@ +From 7da58046482fceb17c4a0d4afefd9507ec56de7f Mon Sep 17 00:00:00 2001 +From: Clemens Ladisch +Date: Thu, 31 Jan 2013 21:14:33 +0100 +Subject: ALSA: usb-audio: fix Roland A-PRO support + +From: Clemens Ladisch + +commit 7da58046482fceb17c4a0d4afefd9507ec56de7f upstream. + +The quirk for the Roland/Cakewalk A-PRO keyboards accidentally used the +wrong interface number, which prevented the driver from attaching to the +device. + +Signed-off-by: Clemens Ladisch +Signed-off-by: Greg Kroah-Hartman + +--- + sound/usb/quirks-table.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/sound/usb/quirks-table.h ++++ b/sound/usb/quirks-table.h +@@ -1750,7 +1750,7 @@ YAMAHA_DEVICE(0x7010, "UB99"), + .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) { + /* .vendor_name = "Roland", */ + /* .product_name = "A-PRO", */ +- .ifnum = 1, ++ .ifnum = 0, + .type = QUIRK_MIDI_FIXED_ENDPOINT, + .data = & (const struct snd_usb_midi_endpoint_info) { + .out_cables = 0x0003, diff --git a/queue-3.8/alsa-usb-fix-processing-unit-descriptor-parsers.patch b/queue-3.8/alsa-usb-fix-processing-unit-descriptor-parsers.patch new file mode 100644 index 00000000000..080d1a118ba --- /dev/null +++ b/queue-3.8/alsa-usb-fix-processing-unit-descriptor-parsers.patch @@ -0,0 +1,73 @@ +From b531f81b0d70ffbe8d70500512483227cc532608 Mon Sep 17 00:00:00 2001 +From: Pawel Moll +Date: Thu, 21 Feb 2013 01:55:50 +0000 +Subject: ALSA: usb: Fix Processing Unit Descriptor parsers + +From: Pawel Moll + +commit b531f81b0d70ffbe8d70500512483227cc532608 upstream. + +Commit 99fc86450c439039d2ef88d06b222fd51a779176 "ALSA: usb-mixer: +parse descriptors with structs" introduced a set of useful parsers +for descriptors. Unfortunately the parses for the Processing Unit +Descriptor came with a very subtle bug... + +Functions uac_processing_unit_iProcessing() and +uac_processing_unit_specific() were indexing the baSourceID array +forgetting the fields before the iProcessing and process-specific +descriptors. + +The problem was observed with Sound Blaster Extigy mixer, +where nNrModes in Up/Down-mix Processing Unit Descriptor +was accessed at offset 10 of the descriptor (value 0) +instead of offset 15 (value 7). In result the resulting +control had interesting limit values: + +Simple mixer control 'Channel Routing Mode Select',0 + Capabilities: volume volume-joined penum + Playback channels: Mono + Capture channels: Mono + Limits: 0 - -1 + Mono: -1 [100%] + +Fixed by starting from the bmControls, which was calculated +correctly, instead of baSourceID. + +Now the mentioned control is fine: + +Simple mixer control 'Channel Routing Mode Select',0 + Capabilities: volume volume-joined penum + Playback channels: Mono + Capture channels: Mono + Limits: 0 - 6 + Mono: 0 [0%] + +Signed-off-by: Pawel Moll +Signed-off-by: Takashi Iwai +Signed-off-by: Greg Kroah-Hartman + +--- + include/uapi/linux/usb/audio.h | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +--- a/include/uapi/linux/usb/audio.h ++++ b/include/uapi/linux/usb/audio.h +@@ -384,14 +384,16 @@ static inline __u8 uac_processing_unit_i + int protocol) + { + __u8 control_size = uac_processing_unit_bControlSize(desc, protocol); +- return desc->baSourceID[desc->bNrInPins + control_size]; ++ return *(uac_processing_unit_bmControls(desc, protocol) ++ + control_size); + } + + static inline __u8 *uac_processing_unit_specific(struct uac_processing_unit_descriptor *desc, + int protocol) + { + __u8 control_size = uac_processing_unit_bControlSize(desc, protocol); +- return &desc->baSourceID[desc->bNrInPins + control_size + 1]; ++ return uac_processing_unit_bmControls(desc, protocol) ++ + control_size + 1; + } + + /* 4.5.2 Class-Specific AS Interface Descriptor */ diff --git a/queue-3.8/alsa-usb-quirks-fix-out-of-bounds-access.patch b/queue-3.8/alsa-usb-quirks-fix-out-of-bounds-access.patch new file mode 100644 index 00000000000..f76858b4ef2 --- /dev/null +++ b/queue-3.8/alsa-usb-quirks-fix-out-of-bounds-access.patch @@ -0,0 +1,32 @@ +From 4909a0caabb8b4352efcea223e58b86f8bc1f98b Mon Sep 17 00:00:00 2001 +From: Jiri Slaby +Date: Sun, 17 Feb 2013 14:33:04 +0100 +Subject: ALSA: usb/quirks, fix out-of-bounds access + +From: Jiri Slaby + +commit 4909a0caabb8b4352efcea223e58b86f8bc1f98b upstream. + +bootresponse in snd_usb_mbox2_boot_quirk is only 12 (decimal) u8's +long, but i9s passed to snd_usb_ctl_msg as it would be 0x12 (hexa) +long. Fix that by having proper size of the array, i.e. 0x12. + +Signed-off-by: Jiri Slaby +Signed-off-by: Takashi Iwai +Signed-off-by: Greg Kroah-Hartman + +--- + sound/usb/quirks.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/sound/usb/quirks.c ++++ b/sound/usb/quirks.c +@@ -533,7 +533,7 @@ static int snd_usb_mbox2_boot_quirk(stru + { + struct usb_host_config *config = dev->actconfig; + int err; +- u8 bootresponse[12]; ++ u8 bootresponse[0x12]; + int fwsize; + int count; + diff --git a/queue-3.8/gfs2-get-a-block-reservation-before-resizing-a-file.patch b/queue-3.8/gfs2-get-a-block-reservation-before-resizing-a-file.patch new file mode 100644 index 00000000000..a54a183235f --- /dev/null +++ b/queue-3.8/gfs2-get-a-block-reservation-before-resizing-a-file.patch @@ -0,0 +1,34 @@ +From d2b47cfb26fe06002b8011707baac71a9ae8166f Mon Sep 17 00:00:00 2001 +From: Bob Peterson +Date: Fri, 1 Feb 2013 12:03:02 -0500 +Subject: GFS2: Get a block reservation before resizing a file + +From: Bob Peterson + +commit d2b47cfb26fe06002b8011707baac71a9ae8166f upstream. + +This patch allocates a block reservation structure before growing +or shrinking a file. Without this structure, the grow or shink code +can reference the bad pointer. + +Signed-off-by: Bob Peterson +Signed-off-by: Steven Whitehouse +Signed-off-by: Greg Kroah-Hartman + +--- + fs/gfs2/bmap.c | 4 ++++ + 1 file changed, 4 insertions(+) + +--- a/fs/gfs2/bmap.c ++++ b/fs/gfs2/bmap.c +@@ -1286,6 +1286,10 @@ int gfs2_setattr_size(struct inode *inod + + inode_dio_wait(inode); + ++ ret = gfs2_rs_alloc(GFS2_I(inode)); ++ if (ret) ++ return ret; ++ + oldsize = inode->i_size; + if (newsize >= oldsize) + return do_grow(inode, newsize); diff --git a/queue-3.8/p54usb-corrected-usb-id-for-t-com-sinus-154-data-ii.patch b/queue-3.8/p54usb-corrected-usb-id-for-t-com-sinus-154-data-ii.patch new file mode 100644 index 00000000000..1c4619e64dd --- /dev/null +++ b/queue-3.8/p54usb-corrected-usb-id-for-t-com-sinus-154-data-ii.patch @@ -0,0 +1,35 @@ +From 008e33f733ca51acb2dd9d88ea878693b04d1d2a Mon Sep 17 00:00:00 2001 +From: Tomasz Guszkowski +Date: Tue, 5 Feb 2013 22:10:31 +0100 +Subject: p54usb: corrected USB ID for T-Com Sinus 154 data II + +From: Tomasz Guszkowski + +commit 008e33f733ca51acb2dd9d88ea878693b04d1d2a upstream. + +Corrected USB ID for T-Com Sinus 154 data II. ISL3887-based. The +device was tested in managed mode with no security, WEP 128 +bit and WPA-PSK (TKIP) with firmware 2.13.1.0.lm87.arm (md5sum: +7d676323ac60d6e1a3b6d61e8c528248). It works. + +Signed-off-by: Tomasz Guszkowski +Acked-By: Christian Lamparter +Signed-off-by: John W. Linville +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/net/wireless/p54/p54usb.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/net/wireless/p54/p54usb.c ++++ b/drivers/net/wireless/p54/p54usb.c +@@ -84,8 +84,8 @@ static struct usb_device_id p54u_table[] + {USB_DEVICE(0x06b9, 0x0121)}, /* Thomson SpeedTouch 121g */ + {USB_DEVICE(0x0707, 0xee13)}, /* SMC 2862W-G version 2 */ + {USB_DEVICE(0x0803, 0x4310)}, /* Zoom 4410a */ +- {USB_DEVICE(0x083a, 0x4503)}, /* T-Com Sinus 154 data II */ + {USB_DEVICE(0x083a, 0x4521)}, /* Siemens Gigaset USB Adapter 54 version 2 */ ++ {USB_DEVICE(0x083a, 0x4531)}, /* T-Com Sinus 154 data II */ + {USB_DEVICE(0x083a, 0xc501)}, /* Zoom Wireless-G 4410 */ + {USB_DEVICE(0x083a, 0xf503)}, /* Accton FD7050E ver 1010ec */ + {USB_DEVICE(0x0846, 0x4240)}, /* Netgear WG111 (v2) */ diff --git a/queue-3.8/series b/queue-3.8/series index 2bba3092c0e..515ec2f90dc 100644 --- a/queue-3.8/series +++ b/queue-3.8/series @@ -46,3 +46,14 @@ nlm-ensure-that-we-resend-all-pending-blocking-locks-after-a-reclaim.patch nfsv4.1-fix-an-abba-locking-issue-with-session-and-state-serialisation.patch nfsv4.1-fix-bulk-recall-and-destroy-of-layouts.patch nfsv4.1-don-t-decode-skipped-layoutgets.patch +p54usb-corrected-usb-id-for-t-com-sinus-154-data-ii.patch +alsa-usb-audio-fix-roland-a-pro-support.patch +alsa-usb-quirks-fix-out-of-bounds-access.patch +alsa-usb-fix-processing-unit-descriptor-parsers.patch +alsa-hda-disable-runtime-pm-for-intel-5-series-3400.patch +alsa-hda-release-assigned-pin-cvt-at-error-path-of-hdmi_pcm_open.patch +alsa-hda-fix-default-multichannel-hdmi-mapping-regression.patch +alsa-hda-workaround-for-silent-output-on-sony-vaio-vgc-ln51jgb-with-alc889.patch +alsa-hda-fix-broken-workaround-for-hdmi-spdif-conflicts.patch +alsa-hda-hdmi-eld-shouldn-t-be-valid-after-unplug.patch +gfs2-get-a-block-reservation-before-resizing-a-file.patch