--- /dev/null
+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);
--- /dev/null
+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,
+ }
+ };
--- /dev/null
+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);
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