Update to 3.1.5

svn path=/dists/sid/linux-2.6/; revision=18367
This commit is contained in:
Ben Hutchings 2011-12-10 00:46:27 +00:00
parent 24bb899b45
commit 0c328410c2
6 changed files with 9 additions and 232 deletions

11
debian/changelog vendored
View File

@ -1,4 +1,12 @@
linux-2.6 (3.1.4-2) UNRELEASED; urgency=low
linux-2.6 (3.1.5-1) UNRELEASED; urgency=low
* New upstream stable update:
http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.1.5
- bridge: correct IPv6 checksum after pull (Closes: #651469)
- USB: EHCI: fix HUB TT scheduling issue with iso transfer
(Closes: #651015)
- [x86] mpparse: Account for bus types other than ISA and PCI
(Closes: #586494)
[ Bastian Blank ]
* Fix generation of revisions for the patch list.
@ -7,7 +15,6 @@ linux-2.6 (3.1.4-2) UNRELEASED; urgency=low
* regulator: backport fix for nullpointer dereference in core.
[ Ben Hutchings ]
* USB: EHCI: fix HUB TT scheduling issue with iso transfer (Closes: #651015)
* [x86] Enable MEMTEST (Closes: #613321, #646361)
- If bad RAM is detected, WARN and recommend a more thorough test
* brcmsmac: Fix I/O functions for MIPS and for big-endian architectures

View File

@ -1,59 +0,0 @@
From: Matthieu CASTET <castet.matthieu@free.fr>
Date: Mon, 28 Nov 2011 11:30:22 +0100
Subject: [PATCH 2/2] EHCI : Fix a regression in the ISO scheduler
commit e3420901eba65b1c46bed86d360e3a8685d20734 upstream.
Fix a regression that was introduced by commit
811c926c538f7e8d3c08b630dd5844efd7e000f6 (USB: EHCI: fix HUB TT scheduling
issue with iso transfer).
We detect an error if next == start, but this means uframe 0 can't be allocated
anymore for iso transfer...
Reported-by: Sander Eikelenboom <linux@eikelenboom.it>
Signed-off-by: Matthieu CASTET <castet.matthieu@free.fr>
Acked-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
drivers/usb/host/ehci-sched.c | 9 +++++----
1 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/drivers/usb/host/ehci-sched.c b/drivers/usb/host/ehci-sched.c
index 56a3203..a60679c 100644
--- a/drivers/usb/host/ehci-sched.c
+++ b/drivers/usb/host/ehci-sched.c
@@ -1475,6 +1475,7 @@ iso_stream_schedule (
* jump until after the queue is primed.
*/
else {
+ int done = 0;
start = SCHEDULE_SLOP + (now & ~0x07);
/* NOTE: assumes URB_ISO_ASAP, to limit complexity/bugs */
@@ -1492,18 +1493,18 @@ iso_stream_schedule (
if (stream->highspeed) {
if (itd_slot_ok(ehci, mod, start,
stream->usecs, period))
- break;
+ done = 1;
} else {
if ((start % 8) >= 6)
continue;
if (sitd_slot_ok(ehci, mod, stream,
start, sched, period))
- break;
+ done = 1;
}
- } while (start > next);
+ } while (start > next && !done);
/* no room in the schedule */
- if (start == next) {
+ if (!done) {
ehci_dbg(ehci, "iso resched full %p (now %d max %d)\n",
urb, now, now + mod);
status = -ENOSPC;
--
1.7.7.3

View File

@ -1,106 +0,0 @@
From: Thomas Poussevin <thomas.poussevin@parrot.com>
Date: Thu, 27 Oct 2011 18:46:48 +0200
Subject: [PATCH 1/2] USB: EHCI: fix HUB TT scheduling issue with iso transfer
commit 811c926c538f7e8d3c08b630dd5844efd7e000f6 upstream.
The current TT scheduling doesn't allow to play and then record on a
full-speed device connected to a high speed hub.
The IN iso stream can only start on the first uframe (0-2 for a 165 us)
because of CSPLIT transactions.
For the OUT iso stream there no such restriction. uframe 0-5 are possible.
The idea of this patch is that the first uframe are precious (for IN TT iso
stream) and we should allocate the last uframes first if possible.
For that we reverse the order of uframe allocation (last uframe first).
Here an example :
hid interrupt stream
----------------------------------------------------------------------
uframe | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
----------------------------------------------------------------------
max_tt_usecs | 125 | 125 | 125 | 125 | 125 | 125 | 30 | 0 |
----------------------------------------------------------------------
used usecs on a frame | 13 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
----------------------------------------------------------------------
iso OUT stream
----------------------------------------------------------------------
uframe | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
----------------------------------------------------------------------
max_tt_usecs | 125 | 125 | 125 | 125 | 125 | 125 | 30 | 0 |
----------------------------------------------------------------------
used usecs on a frame | 13 | 125 | 39 | 0 | 0 | 0 | 0 | 0 |
----------------------------------------------------------------------
There no place for iso IN stream (uframe 0-2 are used) and we got "cannot
submit datapipe for urb 0, error -28: not enough bandwidth" error.
With the patch this become.
iso OUT stream
----------------------------------------------------------------------
uframe | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
----------------------------------------------------------------------
max_tt_usecs | 125 | 125 | 125 | 125 | 125 | 125 | 30 | 0 |
----------------------------------------------------------------------
used usecs on a frame | 13 | 0 | 0 | 0 | 125 | 39 | 0 | 0 |
----------------------------------------------------------------------
iso IN stream
----------------------------------------------------------------------
uframe | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
----------------------------------------------------------------------
max_tt_usecs | 125 | 125 | 125 | 125 | 125 | 125 | 30 | 0 |
----------------------------------------------------------------------
used usecs on a frame | 13 | 0 | 125 | 40 | 125 | 39 | 0 | 0 |
----------------------------------------------------------------------
Signed-off-by: Matthieu Castet <matthieu.castet@parrot.com>
Signed-off-by: Thomas Poussevin <thomas.poussevin@parrot.com>
Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Cc: stable <stable@vger.kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
drivers/usb/host/ehci-sched.c | 15 ++++++++++-----
1 files changed, 10 insertions(+), 5 deletions(-)
diff --git a/drivers/usb/host/ehci-sched.c b/drivers/usb/host/ehci-sched.c
index 2e829fa..56a3203 100644
--- a/drivers/usb/host/ehci-sched.c
+++ b/drivers/usb/host/ehci-sched.c
@@ -1479,10 +1479,15 @@ iso_stream_schedule (
/* NOTE: assumes URB_ISO_ASAP, to limit complexity/bugs */
- /* find a uframe slot with enough bandwidth */
- next = start + period;
- for (; start < next; start++) {
-
+ /* find a uframe slot with enough bandwidth.
+ * Early uframes are more precious because full-speed
+ * iso IN transfers can't use late uframes,
+ * and therefore they should be allocated last.
+ */
+ next = start;
+ start += period;
+ do {
+ start--;
/* check schedule: enough space? */
if (stream->highspeed) {
if (itd_slot_ok(ehci, mod, start,
@@ -1495,7 +1500,7 @@ iso_stream_schedule (
start, sched, period))
break;
}
- }
+ } while (start > next);
/* no room in the schedule */
if (start == next) {
--
1.7.7.3

View File

@ -1,18 +0,0 @@
Subject: [PATCH] xfs: Fix possible memory corruption in xfs_readlink (2)
From: Ben Hutchings <ben@decadent.org.uk>
Previous fix doesn't check for integer overflow.
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
---
--- a/fs/xfs/xfs_vnodeops.c
+++ b/fs/xfs/xfs_vnodeops.c
@@ -127,7 +127,7 @@ xfs_readlink(
if (!pathlen)
goto out;
- if (pathlen > MAXPATHLEN) {
+ if (pathlen < 0 || pathlen > MAXPATHLEN) {
xfs_alert(mp, "%s: inode (%llu) symlink length (%d) too long",
__func__, (unsigned long long)ip->i_ino, pathlen);
ASSERT(0);

View File

@ -1,43 +0,0 @@
Subject: [PATCH] Fix possible memory corruption in xfs_readlink
From: Carlos Maiolino <cmaiolino@redhat.com>
Date: Tue, 18 Oct 2011 02:18:58 -0200
Fixes a possible memory corruption when the link is larger than
MAXPATHLEN and XFS_DEBUG is not enabled. This also remove the
S_ISLNK assert, since the inode mode is checked previously in
xfs_readlink_by_handle() and via VFS.
Signed-off-by: Carlos Maiolino <cmaiolino@redhat.com>
---
fs/xfs/xfs_vnodeops.c | 11 ++++++++---
1 files changed, 8 insertions(+), 3 deletions(-)
diff --git a/fs/xfs/xfs_vnodeops.c b/fs/xfs/xfs_vnodeops.c
index 51fc429..c3288be 100644
--- a/fs/xfs/xfs_vnodeops.c
+++ b/fs/xfs/xfs_vnodeops.c
@@ -123,13 +123,18 @@ xfs_readlink(
xfs_ilock(ip, XFS_ILOCK_SHARED);
- ASSERT(S_ISLNK(ip->i_d.di_mode));
- ASSERT(ip->i_d.di_size <= MAXPATHLEN);
-
pathlen = ip->i_d.di_size;
if (!pathlen)
goto out;
+ if (pathlen > MAXPATHLEN) {
+ xfs_alert(mp, "%s: inode (%llu) symlink length (%d) too long",
+ __func__, (unsigned long long)ip->i_ino, pathlen);
+ ASSERT(0);
+ return XFS_ERROR(EFSCORRUPTED);
+ }
+
+
if (ip->i_df.if_flags & XFS_IFINLINE) {
memcpy(link, ip->i_df.if_u1.if_data, pathlen);
link[pathlen] = '\0';
--
1.7.6.2

View File

@ -43,8 +43,6 @@
+ bugfix/ia64/ia64-gpio-GENERIC_GPIO-default-must-be-n.patch
+ features/x86/libertas-prioritize-usb8388_olpc.bin-firmware-on-OLPC-machines.patch
+ bugfix/arm/ARM-ixp4xx-gpiolib-support.patch
+ bugfix/all/xfs-fix-memory-corruption-in-xfs_readlink.patch
+ bugfix/all/xfs-fix-memory-corruption-in-xfs_readlink-2.patch
+ bugfix/all/oom-fix-integer-overflow-of-points-in-oom_badness.patch
+ bugfix/alpha/alpha-wire-up-accept4-syscall.patch
+ bugfix/all/iwlagn-fix-modinfo-display-for-135-ucode.patch
@ -80,8 +78,6 @@
+ bugfix/all/0005-media-staging-lirc_serial-Do-not-assume-error-codes-.patch
+ features/all/topology-Provide-CPU-topology-in-sysfs-in-SMP-configura.patch
+ bugfix/all/USB-EHCI-fix-HUB-TT-scheduling-issue-with-iso-transf.patch
+ bugfix/all/EHCI-Fix-a-regression-in-the-ISO-scheduler.patch
+ debian/x86-memtest-WARN-if-bad-RAM-found.patch
+ bugfix/all/0001-staging-brcm80211-fixed-build-issue-for-big-endian-p.patch