]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.8-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 10 Apr 2013 16:10:12 +0000 (09:10 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 10 Apr 2013 16:10:12 +0000 (09:10 -0700)
added patches:
crypto-gcm-fix-assumption-that-assoc-has-one-segment.patch
crypto-ux500-add-missing-comma.patch
drm-mgag200-index-24-in-extended-crtc-registers-is-24-in-hex-not-decimal.patch

queue-3.8/crypto-gcm-fix-assumption-that-assoc-has-one-segment.patch [new file with mode: 0644]
queue-3.8/crypto-ux500-add-missing-comma.patch [new file with mode: 0644]
queue-3.8/drm-mgag200-index-24-in-extended-crtc-registers-is-24-in-hex-not-decimal.patch [new file with mode: 0644]
queue-3.8/series

diff --git a/queue-3.8/crypto-gcm-fix-assumption-that-assoc-has-one-segment.patch b/queue-3.8/crypto-gcm-fix-assumption-that-assoc-has-one-segment.patch
new file mode 100644 (file)
index 0000000..4f5ac49
--- /dev/null
@@ -0,0 +1,57 @@
+From d3dde52209ab571e4e2ec26c66f85ad1355f7475 Mon Sep 17 00:00:00 2001
+From: Jussi Kivilinna <jussi.kivilinna@iki.fi>
+Date: Thu, 28 Mar 2013 21:54:03 +0200
+Subject: crypto: gcm - fix assumption that assoc has one segment
+
+From: Jussi Kivilinna <jussi.kivilinna@iki.fi>
+
+commit d3dde52209ab571e4e2ec26c66f85ad1355f7475 upstream.
+
+rfc4543(gcm(*)) code for GMAC assumes that assoc scatterlist always contains
+only one segment and only makes use of this first segment. However ipsec passes
+assoc with three segments when using 'extended sequence number' thus in this
+case rfc4543(gcm(*)) fails to function correctly. Patch fixes this issue.
+
+Reported-by: Chaoxing Lin <Chaoxing.Lin@ultra-3eti.com>
+Tested-by: Chaoxing Lin <Chaoxing.Lin@ultra-3eti.com>
+Signed-off-by: Jussi Kivilinna <jussi.kivilinna@iki.fi>
+Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ crypto/gcm.c |   17 ++++++++++++++---
+ 1 file changed, 14 insertions(+), 3 deletions(-)
+
+--- a/crypto/gcm.c
++++ b/crypto/gcm.c
+@@ -44,6 +44,7 @@ struct crypto_rfc4543_ctx {
+ struct crypto_rfc4543_req_ctx {
+       u8 auth_tag[16];
++      u8 assocbuf[32];
+       struct scatterlist cipher[1];
+       struct scatterlist payload[2];
+       struct scatterlist assoc[2];
+@@ -1142,9 +1143,19 @@ static struct aead_request *crypto_rfc45
+       scatterwalk_crypto_chain(payload, dst, vdst == req->iv + 8, 2);
+       assoclen += 8 + req->cryptlen - (enc ? 0 : authsize);
+-      sg_init_table(assoc, 2);
+-      sg_set_page(assoc, sg_page(req->assoc), req->assoc->length,
+-                  req->assoc->offset);
++      if (req->assoc->length == req->assoclen) {
++              sg_init_table(assoc, 2);
++              sg_set_page(assoc, sg_page(req->assoc), req->assoc->length,
++                          req->assoc->offset);
++      } else {
++              BUG_ON(req->assoclen > sizeof(rctx->assocbuf));
++
++              scatterwalk_map_and_copy(rctx->assocbuf, req->assoc, 0,
++                                       req->assoclen, 0);
++
++              sg_init_table(assoc, 2);
++              sg_set_buf(assoc, rctx->assocbuf, req->assoclen);
++      }
+       scatterwalk_crypto_chain(assoc, payload, 0, 2);
+       aead_request_set_tfm(subreq, ctx->child);
diff --git a/queue-3.8/crypto-ux500-add-missing-comma.patch b/queue-3.8/crypto-ux500-add-missing-comma.patch
new file mode 100644 (file)
index 0000000..2490f16
--- /dev/null
@@ -0,0 +1,40 @@
+From d47cbd5bcee7c7a08fc0283dda465375fa1b1fda Mon Sep 17 00:00:00 2001
+From: Linus Walleij <linus.walleij@linaro.org>
+Date: Fri, 5 Apr 2013 14:06:35 +0200
+Subject: crypto: ux500 - add missing comma
+
+From: Linus Walleij <linus.walleij@linaro.org>
+
+commit d47cbd5bcee7c7a08fc0283dda465375fa1b1fda upstream.
+
+Commit 4f31f5b19eb0418a847b989abc9ac22af1991fe2
+"PM / crypto / ux500: Use struct dev_pm_ops for power management"
+add a new line to the driver struct but missed to add a
+trailing comma, causing build errors when crypto is
+selected. This adds the missing comma.
+
+This was not noticed until now because the crypto block
+is not in the ux500 defconfig. A separate patch will
+be submitted to fix this.
+
+Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
+Cc: Rafael J. Wysocki <rjw@sisk.pl>
+Cc: Magnus Myrstedt <magnus.p.persson@stericsson.com>
+Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/crypto/ux500/cryp/cryp_core.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/crypto/ux500/cryp/cryp_core.c
++++ b/drivers/crypto/ux500/cryp/cryp_core.c
+@@ -1750,7 +1750,7 @@ static struct platform_driver cryp_drive
+       .shutdown = ux500_cryp_shutdown,
+       .driver = {
+               .owner = THIS_MODULE,
+-              .name  = "cryp1"
++              .name  = "cryp1",
+               .pm    = &ux500_cryp_pm,
+       }
+ };
diff --git a/queue-3.8/drm-mgag200-index-24-in-extended-crtc-registers-is-24-in-hex-not-decimal.patch b/queue-3.8/drm-mgag200-index-24-in-extended-crtc-registers-is-24-in-hex-not-decimal.patch
new file mode 100644 (file)
index 0000000..e834d34
--- /dev/null
@@ -0,0 +1,71 @@
+From 1812a3db0874be1d1524086da9e84397b800f546 Mon Sep 17 00:00:00 2001
+From: Christopher Harvey <charvey@matrox.com>
+Date: Fri, 5 Apr 2013 10:51:15 -0400
+Subject: drm/mgag200: Index 24 in extended CRTC registers is 24 in hex, not decimal.
+
+From: Christopher Harvey <charvey@matrox.com>
+
+commit 1812a3db0874be1d1524086da9e84397b800f546 upstream.
+
+This change properly enables the "requester" in G200ER cards that is
+responsible for getting pixels out of memory and clocking them out to
+the screen.
+
+Signed-off-by: Christopher Harvey <charvey@matrox.com>
+Signed-off-by: Dave Airlie <airlied@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/gpu/drm/mgag200/mgag200_mode.c |   13 +++----------
+ 1 file changed, 3 insertions(+), 10 deletions(-)
+
+--- a/drivers/gpu/drm/mgag200/mgag200_mode.c
++++ b/drivers/gpu/drm/mgag200/mgag200_mode.c
+@@ -751,8 +751,6 @@ static int mga_crtc_mode_set(struct drm_
+       int i;
+       unsigned char misc = 0;
+       unsigned char ext_vga[6];
+-      unsigned char ext_vga_index24;
+-      unsigned char dac_index90 = 0;
+       u8 bppshift;
+       static unsigned char dacvalue[] = {
+@@ -803,7 +801,6 @@ static int mga_crtc_mode_set(struct drm_
+               option2 = 0x0000b000;
+               break;
+       case G200_ER:
+-              dac_index90 = 0;
+               break;
+       }
+@@ -852,10 +849,8 @@ static int mga_crtc_mode_set(struct drm_
+               WREG_DAC(i, dacvalue[i]);
+       }
+-      if (mdev->type == G200_ER) {
+-              WREG_DAC(0x90, dac_index90);
+-      }
+-
++      if (mdev->type == G200_ER)
++              WREG_DAC(0x90, 0);
+       if (option)
+               pci_write_config_dword(dev->pdev, PCI_MGA_OPTION, option);
+@@ -952,8 +947,6 @@ static int mga_crtc_mode_set(struct drm_
+       if (mdev->type == G200_WB)
+               ext_vga[1] |= 0x88;
+-      ext_vga_index24 = 0x05;
+-
+       /* Set pixel clocks */
+       misc = 0x2d;
+       WREG8(MGA_MISC_OUT, misc);
+@@ -965,7 +958,7 @@ static int mga_crtc_mode_set(struct drm_
+       }
+       if (mdev->type == G200_ER)
+-              WREG_ECRT(24, ext_vga_index24);
++              WREG_ECRT(0x24, 0x5);
+       if (mdev->type == G200_EV) {
+               WREG_ECRT(6, 0);
index 284c7da0f4ad3b841660f753aa8bf2597f398e49..1818ce4e2488af11eec4754375e748459593fc81 100644 (file)
@@ -39,3 +39,6 @@ remoteproc-ste-fix-memory-leak-on-shutdown.patch
 remoteproc-fix-error-path-of-handle_vdev.patch
 remoteproc-fix-fw_config-typo.patch
 spinlocks-and-preemption-points-need-to-be-at-least-compiler-barriers.patch
+crypto-ux500-add-missing-comma.patch
+crypto-gcm-fix-assumption-that-assoc-has-one-segment.patch
+drm-mgag200-index-24-in-extended-crtc-registers-is-24-in-hex-not-decimal.patch