diff options
author | Greg Kroah-Hartman <gregkh@suse.de> | 2012-01-09 16:33:18 -0800 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2012-01-09 16:33:18 -0800 |
commit | 2d376736812104449425a192eeb38dcaac0c600c (patch) | |
tree | f1518f47a4c10cc92218fcc81f03791ed39bf130 | |
parent | 48483783eb7e784b9dc2f321c8798f6c5c2ac908 (diff) | |
download | longterm-queue-2.6.32-2d376736812104449425a192eeb38dcaac0c600c.tar.gz |
2.6.32-stable patches
added patches:
asix-new-device-id.patch
drivers-usb-class-cdc-acm.c-clear-dangling-pointer.patch
reiserfs-fix-quota-mount-option-parsing.patch
reiserfs-force-inode-evictions-before-umount-to-avoid-crash.patch
usb-isight-fix-kernel-bug-when-loading-firmware.patch
usb-update-documentation-for-usbmon.patch
7 files changed, 279 insertions, 0 deletions
diff --git a/queue-2.6.32/asix-new-device-id.patch b/queue-2.6.32/asix-new-device-id.patch new file mode 100644 index 0000000..3bf29d1 --- /dev/null +++ b/queue-2.6.32/asix-new-device-id.patch @@ -0,0 +1,34 @@ +From e8303a3b2196272c3eb994d0fd1a189a958a2bdd Mon Sep 17 00:00:00 2001 +From: Aurelien Jacobs <aurel@gnuage.org> +Date: Fri, 16 Dec 2011 10:49:22 +0000 +Subject: asix: new device id + +From: Aurelien Jacobs <aurel@gnuage.org> + +commit e8303a3b2196272c3eb994d0fd1a189a958a2bdd upstream. + +Adds the device id needed for the USB Ethernet Adapter delivered by +ASUS with their Zenbook. + +Signed-off-by: Aurelien Jacobs <aurel@gnuage.org> +Acked-by: Grant Grundler <grundler@chromium.org> +Signed-off-by: David S. Miller <davem@davemloft.net> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + drivers/net/usb/asix.c | 4 ++++ + 1 file changed, 4 insertions(+) + +--- a/drivers/net/usb/asix.c ++++ b/drivers/net/usb/asix.c +@@ -1522,6 +1522,10 @@ static const struct usb_device_id produc + // ASIX 88772a + USB_DEVICE(0x0db0, 0xa877), + .driver_info = (unsigned long) &ax88772_info, ++}, { ++ // Asus USB Ethernet Adapter ++ USB_DEVICE (0x0b95, 0x7e2b), ++ .driver_info = (unsigned long) &ax88772_info, + }, + { }, // END + }; diff --git a/queue-2.6.32/drivers-usb-class-cdc-acm.c-clear-dangling-pointer.patch b/queue-2.6.32/drivers-usb-class-cdc-acm.c-clear-dangling-pointer.patch new file mode 100644 index 0000000..c821f2b --- /dev/null +++ b/queue-2.6.32/drivers-usb-class-cdc-acm.c-clear-dangling-pointer.patch @@ -0,0 +1,43 @@ +From e7c8e8605d0bafc705ff27f9da98a1668427cc0f Mon Sep 17 00:00:00 2001 +From: Julia Lawall <julia@diku.dk> +Date: Fri, 23 Dec 2011 14:02:55 +0100 +Subject: drivers/usb/class/cdc-acm.c: clear dangling pointer + +From: Julia Lawall <julia@diku.dk> + +commit e7c8e8605d0bafc705ff27f9da98a1668427cc0f upstream. + +On some failures, the country_code field of an acm structure is freed +without freeing the acm structure itself. Elsewhere, operations including +memcpy and kfree are performed on the country_code field. The patch sets +the country_code field to NULL when it is freed, and likewise sets the +country_code_size field to 0. + +Signed-off-by: Julia Lawall <julia@diku.dk> +Acked-by: Oliver Neukum <oneukum@suse.de> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + drivers/usb/class/cdc-acm.c | 4 ++++ + 1 file changed, 4 insertions(+) + +--- a/drivers/usb/class/cdc-acm.c ++++ b/drivers/usb/class/cdc-acm.c +@@ -1264,6 +1264,8 @@ made_compressed_probe: + i = device_create_file(&intf->dev, &dev_attr_wCountryCodes); + if (i < 0) { + kfree(acm->country_codes); ++ acm->country_codes = NULL; ++ acm->country_code_size = 0; + goto skip_countries; + } + +@@ -1272,6 +1274,8 @@ made_compressed_probe: + if (i < 0) { + device_remove_file(&intf->dev, &dev_attr_wCountryCodes); + kfree(acm->country_codes); ++ acm->country_codes = NULL; ++ acm->country_code_size = 0; + goto skip_countries; + } + } diff --git a/queue-2.6.32/reiserfs-fix-quota-mount-option-parsing.patch b/queue-2.6.32/reiserfs-fix-quota-mount-option-parsing.patch new file mode 100644 index 0000000..0d72e4a --- /dev/null +++ b/queue-2.6.32/reiserfs-fix-quota-mount-option-parsing.patch @@ -0,0 +1,32 @@ +From a06d789b424190e9f59da391681f908486db2554 Mon Sep 17 00:00:00 2001 +From: Jan Kara <jack@suse.cz> +Date: Wed, 21 Dec 2011 17:35:34 +0100 +Subject: reiserfs: Fix quota mount option parsing + +From: Jan Kara <jack@suse.cz> + +commit a06d789b424190e9f59da391681f908486db2554 upstream. + +When jqfmt mount option is not specified on remount, we mistakenly clear +s_jquota_fmt value stored in superblock. Fix the problem. + +CC: reiserfs-devel@vger.kernel.org +Signed-off-by: Jan Kara <jack@suse.cz> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + fs/reiserfs/super.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +--- a/fs/reiserfs/super.c ++++ b/fs/reiserfs/super.c +@@ -1149,7 +1149,8 @@ static void handle_quota_files(struct su + kfree(REISERFS_SB(s)->s_qf_names[i]); + REISERFS_SB(s)->s_qf_names[i] = qf_names[i]; + } +- REISERFS_SB(s)->s_jquota_fmt = *qfmt; ++ if (*qfmt) ++ REISERFS_SB(s)->s_jquota_fmt = *qfmt; + } + #endif + diff --git a/queue-2.6.32/reiserfs-force-inode-evictions-before-umount-to-avoid-crash.patch b/queue-2.6.32/reiserfs-force-inode-evictions-before-umount-to-avoid-crash.patch new file mode 100644 index 0000000..2b2f16a --- /dev/null +++ b/queue-2.6.32/reiserfs-force-inode-evictions-before-umount-to-avoid-crash.patch @@ -0,0 +1,67 @@ +From a9e36da655e54545c3289b2a0700b5c443de0edd Mon Sep 17 00:00:00 2001 +From: Jeff Mahoney <jeffm@suse.com> +Date: Wed, 21 Dec 2011 21:18:43 +0100 +Subject: reiserfs: Force inode evictions before umount to avoid crash + +From: Jeff Mahoney <jeffm@suse.com> + +commit a9e36da655e54545c3289b2a0700b5c443de0edd upstream. + +This patch fixes a crash in reiserfs_delete_xattrs during umount. + +When shrink_dcache_for_umount clears the dcache from +generic_shutdown_super, delayed evictions are forced to disk. If an +evicted inode has extended attributes associated with it, it will +need to walk the xattr tree to locate and remove them. + +But since shrink_dcache_for_umount will BUG if it encounters active +dentries, the xattr tree must be released before it's called or it will +crash during every umount. + +This patch forces the evictions to occur before generic_shutdown_super +by calling shrink_dcache_sb first. The additional evictions caused +by the removal of each associated xattr file and dir will be automatically +handled as they're added to the LRU list. + +CC: reiserfs-devel@vger.kernel.org +Signed-off-by: Jeff Mahoney <jeffm@suse.com> +Signed-off-by: Jan Kara <jack@suse.cz> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + fs/reiserfs/super.c | 24 ++++++++++++++---------- + 1 file changed, 14 insertions(+), 10 deletions(-) + +--- a/fs/reiserfs/super.c ++++ b/fs/reiserfs/super.c +@@ -445,16 +445,20 @@ int remove_save_link(struct inode *inode + static void reiserfs_kill_sb(struct super_block *s) + { + if (REISERFS_SB(s)) { +- if (REISERFS_SB(s)->xattr_root) { +- d_invalidate(REISERFS_SB(s)->xattr_root); +- dput(REISERFS_SB(s)->xattr_root); +- REISERFS_SB(s)->xattr_root = NULL; +- } +- if (REISERFS_SB(s)->priv_root) { +- d_invalidate(REISERFS_SB(s)->priv_root); +- dput(REISERFS_SB(s)->priv_root); +- REISERFS_SB(s)->priv_root = NULL; +- } ++ /* ++ * Force any pending inode evictions to occur now. Any ++ * inodes to be removed that have extended attributes ++ * associated with them need to clean them up before ++ * we can release the extended attribute root dentries. ++ * shrink_dcache_for_umount will BUG if we don't release ++ * those before it's called so ->put_super is too late. ++ */ ++ shrink_dcache_sb(s); ++ ++ dput(REISERFS_SB(s)->xattr_root); ++ REISERFS_SB(s)->xattr_root = NULL; ++ dput(REISERFS_SB(s)->priv_root); ++ REISERFS_SB(s)->priv_root = NULL; + } + + kill_block_super(s); diff --git a/queue-2.6.32/series b/queue-2.6.32/series index f85d830..126360e 100644 --- a/queue-2.6.32/series +++ b/queue-2.6.32/series @@ -3,3 +3,9 @@ documentation-update-stable-address.patch firmware-fix-an-oops-on-reading-fw_priv-fw-in-sysfs-loading-file.patch offb-fix-setting-of-the-pseudo-palette-for-8bpp.patch offb-fix-bug-in-calculating-requested-vram-size.patch +asix-new-device-id.patch +reiserfs-fix-quota-mount-option-parsing.patch +reiserfs-force-inode-evictions-before-umount-to-avoid-crash.patch +usb-update-documentation-for-usbmon.patch +drivers-usb-class-cdc-acm.c-clear-dangling-pointer.patch +usb-isight-fix-kernel-bug-when-loading-firmware.patch diff --git a/queue-2.6.32/usb-isight-fix-kernel-bug-when-loading-firmware.patch b/queue-2.6.32/usb-isight-fix-kernel-bug-when-loading-firmware.patch new file mode 100644 index 0000000..faad2e2 --- /dev/null +++ b/queue-2.6.32/usb-isight-fix-kernel-bug-when-loading-firmware.patch @@ -0,0 +1,45 @@ +From 59bf5cf94f0fa3b08fb1258b52649077b7d0914d Mon Sep 17 00:00:00 2001 +From: Greg Kroah-Hartman <gregkh@suse.de> +Date: Mon, 5 Dec 2011 14:02:59 -0800 +Subject: USB: isight: fix kernel bug when loading firmware + +From: Greg Kroah-Hartman <gregkh@suse.de> + +commit 59bf5cf94f0fa3b08fb1258b52649077b7d0914d upstream. + +We were sending data on the stack when uploading firmware, which causes +some machines fits, and is not allowed. Fix this by using the buffer we +already had around for this very purpose. + +Reported-by: Wouter M. Koolen <wmkoolen@cwi.nl> +Tested-by: Wouter M. Koolen <wmkoolen@cwi.nl> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + drivers/usb/misc/isight_firmware.c | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +--- a/drivers/usb/misc/isight_firmware.c ++++ b/drivers/usb/misc/isight_firmware.c +@@ -54,8 +54,9 @@ static int isight_firmware_load(struct u + + ptr = firmware->data; + ++ buf[0] = 0x01; + if (usb_control_msg +- (dev, usb_sndctrlpipe(dev, 0), 0xa0, 0x40, 0xe600, 0, "\1", 1, ++ (dev, usb_sndctrlpipe(dev, 0), 0xa0, 0x40, 0xe600, 0, buf, 1, + 300) != 1) { + printk(KERN_ERR + "Failed to initialise isight firmware loader\n"); +@@ -99,8 +100,9 @@ static int isight_firmware_load(struct u + } + } + ++ buf[0] = 0x00; + if (usb_control_msg +- (dev, usb_sndctrlpipe(dev, 0), 0xa0, 0x40, 0xe600, 0, "\0", 1, ++ (dev, usb_sndctrlpipe(dev, 0), 0xa0, 0x40, 0xe600, 0, buf, 1, + 300) != 1) { + printk(KERN_ERR "isight firmware loading completion failed\n"); + ret = -ENODEV; diff --git a/queue-2.6.32/usb-update-documentation-for-usbmon.patch b/queue-2.6.32/usb-update-documentation-for-usbmon.patch new file mode 100644 index 0000000..4fae440 --- /dev/null +++ b/queue-2.6.32/usb-update-documentation-for-usbmon.patch @@ -0,0 +1,52 @@ +From d8cae98cddd286e38db1724dda1b0e7b467f9237 Mon Sep 17 00:00:00 2001 +From: Alan Stern <stern@rowland.harvard.edu> +Date: Wed, 4 Jan 2012 16:36:35 -0500 +Subject: USB: update documentation for usbmon + +From: Alan Stern <stern@rowland.harvard.edu> + +commit d8cae98cddd286e38db1724dda1b0e7b467f9237 upstream. + +The documentation for usbmon is out of date; the usbfs "devices" file +now exists in /sys/kernel/debug/usb rather than /proc/bus/usb. This +patch (as1505) updates the documentation accordingly, and also +mentions that the necessary information can be found by running lsusb. + +Signed-off-by: Alan Stern <stern@rowland.harvard.edu> +CC: Pete Zaitcev <zaitcev@redhat.com> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + Documentation/usb/usbmon.txt | 14 +++++++++----- + 1 file changed, 9 insertions(+), 5 deletions(-) + +--- a/Documentation/usb/usbmon.txt ++++ b/Documentation/usb/usbmon.txt +@@ -43,10 +43,11 @@ This allows to filter away annoying devi + + 2. Find which bus connects to the desired device + +-Run "cat /proc/bus/usb/devices", and find the T-line which corresponds to +-the device. Usually you do it by looking for the vendor string. If you have +-many similar devices, unplug one and compare two /proc/bus/usb/devices outputs. +-The T-line will have a bus number. Example: ++Run "cat /sys/kernel/debug/usb/devices", and find the T-line which corresponds ++to the device. Usually you do it by looking for the vendor string. If you have ++many similar devices, unplug one and compare the two ++/sys/kernel/debug/usb/devices outputs. The T-line will have a bus number. ++Example: + + T: Bus=03 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 2 Spd=12 MxCh= 0 + D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1 +@@ -54,7 +55,10 @@ P: Vendor=0557 ProdID=2004 Rev= 1.00 + S: Manufacturer=ATEN + S: Product=UC100KM V2.00 + +-Bus=03 means it's bus 3. ++"Bus=03" means it's bus 3. Alternatively, you can look at the output from ++"lsusb" and get the bus number from the appropriate line. Example: ++ ++Bus 003 Device 002: ID 0557:2004 ATEN UC100KM V2.00 + + 3. Start 'cat' + |