From: Greg Kroah-Hartman Date: Mon, 25 Feb 2013 18:56:25 +0000 (-0800) Subject: 3.0-stable patches X-Git-Tag: v3.7.10~36 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=36ca5b3e62c6559cacdaaf5bd185de704c309b23;p=thirdparty%2Fkernel%2Fstable-queue.git 3.0-stable patches added patches: alsa-usb-audio-fix-roland-a-pro-support.patch alsa-usb-fix-processing-unit-descriptor-parsers.patch ext4-add-missing-kfree-on-error-return-path-in-add_new_gdb.patch ext4-free-resources-in-some-error-path-in-ext4_fill_super.patch p54usb-corrected-usb-id-for-t-com-sinus-154-data-ii.patch --- diff --git a/queue-3.0/alsa-usb-audio-fix-roland-a-pro-support.patch b/queue-3.0/alsa-usb-audio-fix-roland-a-pro-support.patch new file mode 100644 index 00000000000..6793bcf9679 --- /dev/null +++ b/queue-3.0/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 +@@ -1613,7 +1613,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.0/alsa-usb-fix-processing-unit-descriptor-parsers.patch b/queue-3.0/alsa-usb-fix-processing-unit-descriptor-parsers.patch new file mode 100644 index 00000000000..b47fa6355cd --- /dev/null +++ b/queue-3.0/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/linux/usb/audio.h | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +--- a/include/linux/usb/audio.h ++++ b/include/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.0/ext4-add-missing-kfree-on-error-return-path-in-add_new_gdb.patch b/queue-3.0/ext4-add-missing-kfree-on-error-return-path-in-add_new_gdb.patch new file mode 100644 index 00000000000..c728aa82073 --- /dev/null +++ b/queue-3.0/ext4-add-missing-kfree-on-error-return-path-in-add_new_gdb.patch @@ -0,0 +1,33 @@ +From c49bafa3842751b8955a962859f42d307673d75d Mon Sep 17 00:00:00 2001 +From: Dan Carpenter +Date: Sat, 30 Jul 2011 12:58:41 -0400 +Subject: ext4: add missing kfree() on error return path in add_new_gdb() + +From: Dan Carpenter + +commit c49bafa3842751b8955a962859f42d307673d75d upstream. + +We added some more error handling in b40971426a "ext4: add error +checking to calls to ext4_handle_dirty_metadata()". But we need to +call kfree() as well to avoid a memory leak. + +Signed-off-by: Dan Carpenter +Signed-off-by: "Theodore Ts'o" +Signed-off-by: Jeff Mahoney +Signed-off-by: Greg Kroah-Hartman + + +--- + fs/ext4/resize.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/fs/ext4/resize.c ++++ b/fs/ext4/resize.c +@@ -499,6 +499,7 @@ static int add_new_gdb(handle_t *handle, + return err; + + exit_inode: ++ kfree(n_group_desc); + /* ext4_handle_release_buffer(handle, iloc.bh); */ + brelse(iloc.bh); + exit_dindj: diff --git a/queue-3.0/ext4-free-resources-in-some-error-path-in-ext4_fill_super.patch b/queue-3.0/ext4-free-resources-in-some-error-path-in-ext4_fill_super.patch new file mode 100644 index 00000000000..7381075edd9 --- /dev/null +++ b/queue-3.0/ext4-free-resources-in-some-error-path-in-ext4_fill_super.patch @@ -0,0 +1,72 @@ +From dcf2d804ed6ffe5e942b909ed5e5b74628be6ee4 Mon Sep 17 00:00:00 2001 +From: Tao Ma +Date: Thu, 6 Oct 2011 12:10:11 -0400 +Subject: ext4: Free resources in some error path in ext4_fill_super + +From: Tao Ma + +commit dcf2d804ed6ffe5e942b909ed5e5b74628be6ee4 upstream. + +Some of the error path in ext4_fill_super don't release the +resouces properly. So this patch just try to release them +in the right way. + +Signed-off-by: Tao Ma +Signed-off-by: "Theodore Ts'o" +Signed-off-by: Jeff Mahoney +Signed-off-by: Greg Kroah-Hartman + +--- + fs/ext4/super.c | 19 +++++++++++-------- + 1 file changed, 11 insertions(+), 8 deletions(-) + +--- a/fs/ext4/super.c ++++ b/fs/ext4/super.c +@@ -3681,22 +3681,19 @@ no_journal: + if (err) { + ext4_msg(sb, KERN_ERR, "failed to initialize mballoc (%d)", + err); +- goto failed_mount4; ++ goto failed_mount5; + } + + err = ext4_register_li_request(sb, first_not_zeroed); + if (err) +- goto failed_mount4; ++ goto failed_mount6; + + sbi->s_kobj.kset = ext4_kset; + init_completion(&sbi->s_kobj_unregister); + err = kobject_init_and_add(&sbi->s_kobj, &ext4_ktype, NULL, + "%s", sb->s_id); +- if (err) { +- ext4_mb_release(sb); +- ext4_ext_release(sb); +- goto failed_mount4; +- }; ++ if (err) ++ goto failed_mount7; + + EXT4_SB(sb)->s_mount_state |= EXT4_ORPHAN_FS; + ext4_orphan_cleanup(sb, es); +@@ -3730,13 +3727,19 @@ cantfind_ext4: + ext4_msg(sb, KERN_ERR, "VFS: Can't find ext4 filesystem"); + goto failed_mount; + ++failed_mount7: ++ ext4_unregister_li_request(sb); ++failed_mount6: ++ ext4_ext_release(sb); ++failed_mount5: ++ ext4_mb_release(sb); ++ ext4_release_system_zone(sb); + failed_mount4: + iput(root); + sb->s_root = NULL; + ext4_msg(sb, KERN_ERR, "mount failed"); + destroy_workqueue(EXT4_SB(sb)->dio_unwritten_wq); + failed_mount_wq: +- ext4_release_system_zone(sb); + if (sbi->s_journal) { + jbd2_journal_destroy(sbi->s_journal); + sbi->s_journal = NULL; diff --git a/queue-3.0/p54usb-corrected-usb-id-for-t-com-sinus-154-data-ii.patch b/queue-3.0/p54usb-corrected-usb-id-for-t-com-sinus-154-data-ii.patch new file mode 100644 index 00000000000..0a11778e2b5 --- /dev/null +++ b/queue-3.0/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 +@@ -83,8 +83,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.0/series b/queue-3.0/series index 0cb04d9c463..7c6dc98df56 100644 --- a/queue-3.0/series +++ b/queue-3.0/series @@ -21,3 +21,8 @@ drivers-video-backlight-adp88-0_bl.c-fix-resume.patch tmpfs-fix-use-after-free-of-mempolicy-object.patch mm-fadvise.c-drain-all-pagevecs-if-posix_fadv_dontneed-fails-to-discard-all-pages.patch nlm-ensure-that-we-resend-all-pending-blocking-locks-after-a-reclaim.patch +p54usb-corrected-usb-id-for-t-com-sinus-154-data-ii.patch +alsa-usb-audio-fix-roland-a-pro-support.patch +alsa-usb-fix-processing-unit-descriptor-parsers.patch +ext4-free-resources-in-some-error-path-in-ext4_fill_super.patch +ext4-add-missing-kfree-on-error-return-path-in-add_new_gdb.patch