add stable 2.6.32.13
wow no drm conflict!? svn path=/dists/sid/linux-2.6/; revision=15669
This commit is contained in:
parent
43cdbae505
commit
86a2fa7a44
|
@ -18,7 +18,7 @@ linux-2.6 (2.6.32-13) UNRELEASED; urgency=low
|
|||
* hppa, sparc, powerpc disable BLK_DEV_CMD64X.
|
||||
* topconfig enable PATA_CMD64X. (closes: #580799)
|
||||
* x86: Disable CRYPTO_AES_NI_INTEL as it causes boot failures on T410.
|
||||
Ignore ABI changes.
|
||||
* Add stable 2.6.32.13.
|
||||
|
||||
[ Ben Hutchings ]
|
||||
* linux-base: Fix typo in disk relabelling code (Closes: #580467)
|
||||
|
@ -38,6 +38,7 @@ linux-2.6 (2.6.32-13) UNRELEASED; urgency=low
|
|||
* Update Xen patch.
|
||||
* [amd64, i386/{686-bigmem,openvz-686,vserver-686-bigmem,xen-686}]
|
||||
Build debugging symbols. (closes: #365349)
|
||||
* Ignore crypto ABI changes.
|
||||
|
||||
-- Frederik Schüler <fs@debian.org> Wed, 05 May 2010 17:54:01 +0200
|
||||
|
||||
|
|
|
@ -1,33 +0,0 @@
|
|||
From c213e1407be6b04b144794399a91472e0ef92aec Mon Sep 17 00:00:00 2001
|
||||
From: Hannes Reinecke <hare@suse.de>
|
||||
Date: Tue, 4 May 2010 16:49:21 +0200
|
||||
Subject: [PATCH] [SCSI] Enable retries for SYNCRONIZE_CACHE commands to fix I/O error
|
||||
|
||||
Some arrays are giving I/O errors with ext3 filesystems when
|
||||
SYNCHRONIZE_CACHE gets a UNIT_ATTENTION. What is happening is that
|
||||
these commands have no retries, so the UNIT_ATTENTION causes the
|
||||
barrier to fail. We should be enable retries here to clear any
|
||||
transient error and allow the barrier to succeed.
|
||||
|
||||
Signed-off-by: Hannes Reinecke <hare@suse.de>
|
||||
Cc: Stable Tree <stable@kernel.org>
|
||||
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
|
||||
---
|
||||
drivers/scsi/sd.c | 1 +
|
||||
1 files changed, 1 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c
|
||||
index 8b827f3..de6c603 100644
|
||||
--- a/drivers/scsi/sd.c
|
||||
+++ b/drivers/scsi/sd.c
|
||||
@@ -1040,6 +1040,7 @@ static void sd_prepare_flush(struct request_queue *q, struct request *rq)
|
||||
{
|
||||
rq->cmd_type = REQ_TYPE_BLOCK_PC;
|
||||
rq->timeout = SD_TIMEOUT;
|
||||
+ rq->retries = SD_MAX_RETRIES;
|
||||
rq->cmd[0] = SYNCHRONIZE_CACHE;
|
||||
rq->cmd_len = 10;
|
||||
}
|
||||
--
|
||||
1.6.5
|
||||
|
|
@ -1,56 +0,0 @@
|
|||
From 77a4229719e511a0d38d9c355317ae1469adeb54 Mon Sep 17 00:00:00 2001
|
||||
From: James Bottomley <James.Bottomley@suse.de>
|
||||
Date: Tue, 4 May 2010 16:51:40 -0400
|
||||
Subject: [PATCH] [SCSI] Retry commands with UNIT_ATTENTION sense codes to fix ext3/ext4 I/O error
|
||||
|
||||
There's nastyness in the way we currently handle barriers (and
|
||||
discards): They're effectively filesystem commands, but they get
|
||||
processed as BLOCK_PC commands. Unfortunately BLOCK_PC commands are
|
||||
taken by SCSI to be SG_IO commands and the issuer expects to see and
|
||||
handle any returned errors, however trivial. This leads to a huge
|
||||
problem, because the block layer doesn't expect this to happen and any
|
||||
trivially retryable error on a barrier causes an immediate I/O error
|
||||
to the filesystem.
|
||||
|
||||
The only real way to hack around this is to take the usual class of
|
||||
offending errors (unit attentions) and make them all retryable in the
|
||||
case of a REQ_HARDBARRIER. A correct fix would involve a rework of
|
||||
the entire block and SCSI submit system, and so is out of scope for a
|
||||
quick fix.
|
||||
|
||||
Cc: Hannes Reinecke <hare@suse.de>
|
||||
Cc: Stable Tree <stable@kernel.org>
|
||||
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
|
||||
---
|
||||
drivers/scsi/scsi_error.c | 15 ++++++++++++++-
|
||||
1 files changed, 14 insertions(+), 1 deletions(-)
|
||||
|
||||
diff --git a/drivers/scsi/scsi_error.c b/drivers/scsi/scsi_error.c
|
||||
index d45c69c..7ad53fa 100644
|
||||
--- a/drivers/scsi/scsi_error.c
|
||||
+++ b/drivers/scsi/scsi_error.c
|
||||
@@ -302,7 +302,20 @@ static int scsi_check_sense(struct scsi_cmnd *scmd)
|
||||
if (scmd->device->allow_restart &&
|
||||
(sshdr.asc == 0x04) && (sshdr.ascq == 0x02))
|
||||
return FAILED;
|
||||
- return SUCCESS;
|
||||
+
|
||||
+ if (blk_barrier_rq(scmd->request))
|
||||
+ /*
|
||||
+ * barrier requests should always retry on UA
|
||||
+ * otherwise block will get a spurious error
|
||||
+ */
|
||||
+ return NEEDS_RETRY;
|
||||
+ else
|
||||
+ /*
|
||||
+ * for normal (non barrier) commands, pass the
|
||||
+ * UA upwards for a determination in the
|
||||
+ * completion functions
|
||||
+ */
|
||||
+ return SUCCESS;
|
||||
|
||||
/* these three are not supported */
|
||||
case COPY_ABORTED:
|
||||
--
|
||||
1.6.5
|
||||
|
|
@ -1,73 +0,0 @@
|
|||
From 5157b4aa5b7de8787b6318e61bcc285031bb9088 Mon Sep 17 00:00:00 2001
|
||||
From: Dan Williams <dan.j.williams@intel.com>
|
||||
Date: Tue, 4 May 2010 20:41:56 -0700
|
||||
Subject: [PATCH] raid6: fix recovery performance regression
|
||||
|
||||
The raid6 recovery code should immediately drop back to the optimized
|
||||
synchronous path when a p+q dma resource is not available. Otherwise we
|
||||
run the non-optimized/multi-pass async code in sync mode.
|
||||
|
||||
Verified with raid6test (NDISKS=255)
|
||||
|
||||
Applies to kernels >= 2.6.32.
|
||||
|
||||
Cc: <stable@kernel.org>
|
||||
Acked-by: NeilBrown <neilb@suse.de>
|
||||
Reported-by: H. Peter Anvin <hpa@zytor.com>
|
||||
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
|
||||
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
|
||||
---
|
||||
crypto/async_tx/async_raid6_recov.c | 21 +++++++++++++--------
|
||||
1 files changed, 13 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/crypto/async_tx/async_raid6_recov.c b/crypto/async_tx/async_raid6_recov.c
|
||||
index 943f2ab..ce038d8 100644
|
||||
--- a/crypto/async_tx/async_raid6_recov.c
|
||||
+++ b/crypto/async_tx/async_raid6_recov.c
|
||||
@@ -324,6 +324,7 @@ struct dma_async_tx_descriptor *
|
||||
async_raid6_2data_recov(int disks, size_t bytes, int faila, int failb,
|
||||
struct page **blocks, struct async_submit_ctl *submit)
|
||||
{
|
||||
+ void *scribble = submit->scribble;
|
||||
int non_zero_srcs, i;
|
||||
|
||||
BUG_ON(faila == failb);
|
||||
@@ -332,11 +333,13 @@ async_raid6_2data_recov(int disks, size_t bytes, int faila, int failb,
|
||||
|
||||
pr_debug("%s: disks: %d len: %zu\n", __func__, disks, bytes);
|
||||
|
||||
- /* we need to preserve the contents of 'blocks' for the async
|
||||
- * case, so punt to synchronous if a scribble buffer is not available
|
||||
+ /* if a dma resource is not available or a scribble buffer is not
|
||||
+ * available punt to the synchronous path. In the 'dma not
|
||||
+ * available' case be sure to use the scribble buffer to
|
||||
+ * preserve the content of 'blocks' as the caller intended.
|
||||
*/
|
||||
- if (!submit->scribble) {
|
||||
- void **ptrs = (void **) blocks;
|
||||
+ if (!async_dma_find_channel(DMA_PQ) || !scribble) {
|
||||
+ void **ptrs = scribble ? scribble : (void **) blocks;
|
||||
|
||||
async_tx_quiesce(&submit->depend_tx);
|
||||
for (i = 0; i < disks; i++)
|
||||
@@ -406,11 +409,13 @@ async_raid6_datap_recov(int disks, size_t bytes, int faila,
|
||||
|
||||
pr_debug("%s: disks: %d len: %zu\n", __func__, disks, bytes);
|
||||
|
||||
- /* we need to preserve the contents of 'blocks' for the async
|
||||
- * case, so punt to synchronous if a scribble buffer is not available
|
||||
+ /* if a dma resource is not available or a scribble buffer is not
|
||||
+ * available punt to the synchronous path. In the 'dma not
|
||||
+ * available' case be sure to use the scribble buffer to
|
||||
+ * preserve the content of 'blocks' as the caller intended.
|
||||
*/
|
||||
- if (!scribble) {
|
||||
- void **ptrs = (void **) blocks;
|
||||
+ if (!async_dma_find_channel(DMA_PQ) || !scribble) {
|
||||
+ void **ptrs = scribble ? scribble : (void **) blocks;
|
||||
|
||||
async_tx_quiesce(&submit->depend_tx);
|
||||
for (i = 0; i < disks; i++)
|
||||
--
|
||||
1.6.5
|
||||
|
File diff suppressed because it is too large
Load Diff
|
@ -1,99 +0,0 @@
|
|||
From: Shane McDonald <mcdonald.shane@gmail.com>
|
||||
Date: Fri, 7 May 2010 05:26:57 +0000 (-0600)
|
||||
Subject: MIPS FPU emulator: allow Cause bits of FCSR to be writeable by ctc1
|
||||
X-Git-Url: http://www.linux-mips.org/git?p=linux.git;a=commitdiff_plain;h=2c8fb481214e608f6b9a71aa85651d9ddf7fd6e4
|
||||
|
||||
MIPS FPU emulator: allow Cause bits of FCSR to be writeable by ctc1
|
||||
|
||||
In the FPU emulator code of the MIPS, the Cause bits of the FCSR register
|
||||
are not currently writeable by the ctc1 instruction. In odd corner cases,
|
||||
this can cause problems. For example, a case existed where a divide-by-zero
|
||||
exception was generated by the FPU, and the signal handler attempted to
|
||||
restore the FPU registers to their state before the exception occurred. In
|
||||
this particular setup, writing the old value to the FCSR register would
|
||||
cause another divide-by-zero exception to occur immediately. The solution
|
||||
is to change the ctc1 instruction emulator code to allow the Cause bits of
|
||||
the FCSR register to be writeable. This is the behaviour of the hardware
|
||||
that the code is emulating.
|
||||
|
||||
This problem was found by Shane McDonald, but the credit for the fix goes
|
||||
to Kevin Kissell. In Kevin's words:
|
||||
|
||||
I submit that the bug is indeed in that ctc_op: case of the emulator. The
|
||||
Cause bits (17:12) are supposed to be writable by that instruction, but the
|
||||
CTC1 emulation won't let them be updated by the instruction. I think that
|
||||
actually if you just completely removed lines 387-388 [...] things would
|
||||
work a good deal better. At least, it would be a more accurate emulation of
|
||||
the architecturally defined FPU. If I wanted to be really, really pedantic
|
||||
(which I sometimes do), I'd also protect the reserved bits that aren't
|
||||
necessarily writable.
|
||||
|
||||
Signed-off-by: Shane McDonald <mcdonald.shane@gmail.com>
|
||||
To: anemo@mba.ocn.ne.jp
|
||||
To: kevink@paralogos.com
|
||||
To: sshtylyov@mvista.com
|
||||
Patchwork: http://patchwork.linux-mips.org/patch/1205/
|
||||
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
||||
(cherry picked from commit 635be78c7c80d4c61f0f16b6132a730d7668cb43)
|
||||
---
|
||||
|
||||
diff --git a/arch/mips/include/asm/mipsregs.h b/arch/mips/include/asm/mipsregs.h
|
||||
index a581d60..608dc97 100644
|
||||
--- a/arch/mips/include/asm/mipsregs.h
|
||||
+++ b/arch/mips/include/asm/mipsregs.h
|
||||
@@ -135,6 +135,12 @@
|
||||
#define FPU_CSR_COND7 0x80000000 /* $fcc7 */
|
||||
|
||||
/*
|
||||
+ * Bits 18 - 20 of the FPU Status Register will be read as 0,
|
||||
+ * and should be written as zero.
|
||||
+ */
|
||||
+#define FPU_CSR_RSVD 0x001c0000
|
||||
+
|
||||
+/*
|
||||
* X the exception cause indicator
|
||||
* E the exception enable
|
||||
* S the sticky/flag bit
|
||||
@@ -161,7 +167,8 @@
|
||||
#define FPU_CSR_UDF_S 0x00000008
|
||||
#define FPU_CSR_INE_S 0x00000004
|
||||
|
||||
-/* rounding mode */
|
||||
+/* Bits 0 and 1 of FPU Status Register specify the rounding mode */
|
||||
+#define FPU_CSR_RM 0x00000003
|
||||
#define FPU_CSR_RN 0x0 /* nearest */
|
||||
#define FPU_CSR_RZ 0x1 /* towards zero */
|
||||
#define FPU_CSR_RU 0x2 /* towards +Infinity */
|
||||
diff --git a/arch/mips/math-emu/cp1emu.c b/arch/mips/math-emu/cp1emu.c
|
||||
index 454b539..c15d94b 100644
|
||||
--- a/arch/mips/math-emu/cp1emu.c
|
||||
+++ b/arch/mips/math-emu/cp1emu.c
|
||||
@@ -75,6 +75,9 @@ struct mips_fpu_emulator_stats fpuemustats;
|
||||
#define FPCREG_RID 0 /* $0 = revision id */
|
||||
#define FPCREG_CSR 31 /* $31 = csr */
|
||||
|
||||
+/* Determine rounding mode from the RM bits of the FCSR */
|
||||
+#define modeindex(v) ((v) & FPU_CSR_RM)
|
||||
+
|
||||
/* Convert Mips rounding mode (0..3) to IEEE library modes. */
|
||||
static const unsigned char ieee_rm[4] = {
|
||||
[FPU_CSR_RN] = IEEE754_RN,
|
||||
@@ -381,10 +384,14 @@ static int cop1Emulate(struct pt_regs *xcp, struct mips_fpu_struct *ctx)
|
||||
(void *) (xcp->cp0_epc),
|
||||
MIPSInst_RT(ir), value);
|
||||
#endif
|
||||
- value &= (FPU_CSR_FLUSH | FPU_CSR_ALL_E | FPU_CSR_ALL_S | 0x03);
|
||||
- ctx->fcr31 &= ~(FPU_CSR_FLUSH | FPU_CSR_ALL_E | FPU_CSR_ALL_S | 0x03);
|
||||
- /* convert to ieee library modes */
|
||||
- ctx->fcr31 |= (value & ~0x3) | ieee_rm[value & 0x3];
|
||||
+
|
||||
+ /*
|
||||
+ * Don't write reserved bits,
|
||||
+ * and convert to ieee library modes
|
||||
+ */
|
||||
+ ctx->fcr31 = (value &
|
||||
+ ~(FPU_CSR_RSVD | FPU_CSR_RM)) |
|
||||
+ ieee_rm[modeindex(value)];
|
||||
}
|
||||
if ((ctx->fcr31 >> 5) & ctx->fcr31 & FPU_CSR_ALL_E) {
|
||||
return SIGFPE;
|
|
@ -1,13 +1,21 @@
|
|||
+ bugfix/sparc/sparc-Fix-use-of-uid16_t-and-gid16_t.patch
|
||||
+ bugfix/all/KVM-x86-Extend-KVM_SET_VCPU_EVENTS-with-selective-up.patch
|
||||
+ bugfix/all/KEYS-find_keyring_by_name-can-gain-access-to-a-freed.patch
|
||||
+ bugfix/all/SCSI-Enable-retries-for-SYNCRONIZE_CACHE-commands-to.patch
|
||||
+ bugfix/all/raid6-fix-recovery-performance-regression.patch
|
||||
+ bugfix/all/SCSI-Retry-commands-with-UNIT_ATTENTION-sense-codes-.patch
|
||||
+ features/all/rtl8192su-add-USB-VID-PID-for-HWNUm-300.patch
|
||||
+ features/all/rtl8192su-add-USB-ID-for-0bda-8171.patch
|
||||
+ features/all/rtl8192su-add-Support-for-Belkin-F5D8053-v6.patch
|
||||
+ features/all/rtl8192su-Add-Sitecom-WL-349.patch
|
||||
+ bugfix/mips/mips-ide-flush-dcache.patch
|
||||
+ bugfix/mips/sibyte-m3-tlb-exception.patch
|
||||
+ bugfix/mips/fpu-emulator.patch
|
||||
- bugfix/all/core-x86-make-list_poison-less-deadly.patch
|
||||
- bugfix/all/hugetlb-fix-infinite-loop-in-get_futex_key-when-backed-by-huge-pages.patch
|
||||
- bugfix/all/libata-fix-accesses-at-LBA28-boundary.patch
|
||||
- bugfix/all/block-blk_abort_request-lock-fix.patch
|
||||
- bugfix/all/reiserfs-fix-permissions-on-reiserfs_priv.patch
|
||||
- bugfix/all/p54pci-fix-bugs-in-p54p_check_tx_ring.patch
|
||||
- bugfix/all/drivers-net-wireless-p54-txrx.c-Fix-off-by-one-error.patch
|
||||
- bugfix/all/p54pci-rx-frame-length-check.patch
|
||||
- bugfix/all/p54usb-Add-usbid-for-Corega-CG-WLUSB2GT.patch
|
||||
- bugfix/powerpc/kgdb-dont-needlessly-skip-PAGE_USER-test-for-Fsl-booke.patch
|
||||
- bugfix/all/libiscsi-regression-fix-header-digest-errors.patch
|
||||
+ bugfix/all/stable/2.6.32.13.patch
|
||||
|
|
Loading…
Reference in New Issue