diff --git a/drivers/crypto/omap-sham.c b/drivers/crypto/omap-sham.c
index a6b4a0b3ace30..c4d77d8533313 100644
--- a/drivers/crypto/omap-sham.c
+++ b/drivers/crypto/omap-sham.c
@@ -349,24 +349,24 @@ static void omap_sham_copy_ready_hash(struct ahash_request *req)
 		break;
 	case FLAGS_MODE_SHA512:
 		d = SHA512_DIGEST_SIZE / sizeof(u32);
 		break;
 	default:
 		d = 0;
 	}
 
 	if (big_endian)
 		for (i = 0; i < d; i++)
-			hash[i] = be32_to_cpup((__be32 *)in + i);
+			put_unaligned(be32_to_cpup((__be32 *)in + i), &hash[i]);
 	else
 		for (i = 0; i < d; i++)
-			hash[i] = le32_to_cpup((__le32 *)in + i);
+			put_unaligned(le32_to_cpup((__le32 *)in + i), &hash[i]);
 }
 
 static void omap_sham_write_ctrl_omap2(struct omap_sham_dev *dd, size_t length,
 				 int final, int dma)
 {
 	struct omap_sham_reqctx *ctx = ahash_request_ctx(dd->req);
 	u32 val = length << 5, mask;
 
 	if (likely(ctx->digcnt))
 		omap_sham_write(dd, SHA_REG_DIGCNT(dd), ctx->digcnt);
@@ -1428,21 +1428,20 @@ static struct ahash_engine_alg algs_sha1_md5[] = {
 	.base.halg.digestsize	= SHA1_DIGEST_SIZE,
 	.base.halg.base	= {
 		.cra_name		= "sha1",
 		.cra_driver_name	= "omap-sha1",
 		.cra_priority		= 400,
 		.cra_flags		= CRYPTO_ALG_KERN_DRIVER_ONLY |
 						CRYPTO_ALG_ASYNC |
 						CRYPTO_ALG_NEED_FALLBACK,
 		.cra_blocksize		= SHA1_BLOCK_SIZE,
 		.cra_ctxsize		= sizeof(struct omap_sham_ctx),
-		.cra_alignmask		= OMAP_ALIGN_MASK,
 		.cra_module		= THIS_MODULE,
 		.cra_init		= omap_sham_cra_init,
 		.cra_exit		= omap_sham_cra_exit,
 	},
 	.op.do_one_request = omap_sham_hash_one_req,
 },
 {
 	.base.init		= omap_sham_init,
 	.base.update		= omap_sham_update,
 	.base.final		= omap_sham_final,
@@ -1451,21 +1450,20 @@ static struct ahash_engine_alg algs_sha1_md5[] = {
 	.base.halg.digestsize	= MD5_DIGEST_SIZE,
 	.base.halg.base	= {
 		.cra_name		= "md5",
 		.cra_driver_name	= "omap-md5",
 		.cra_priority		= 400,
 		.cra_flags		= CRYPTO_ALG_KERN_DRIVER_ONLY |
 						CRYPTO_ALG_ASYNC |
 						CRYPTO_ALG_NEED_FALLBACK,
 		.cra_blocksize		= SHA1_BLOCK_SIZE,
 		.cra_ctxsize		= sizeof(struct omap_sham_ctx),
-		.cra_alignmask		= OMAP_ALIGN_MASK,
 		.cra_module		= THIS_MODULE,
 		.cra_init		= omap_sham_cra_init,
 		.cra_exit		= omap_sham_cra_exit,
 	},
 	.op.do_one_request = omap_sham_hash_one_req,
 },
 {
 	.base.init		= omap_sham_init,
 	.base.update		= omap_sham_update,
 	.base.final		= omap_sham_final,
@@ -1476,21 +1474,20 @@ static struct ahash_engine_alg algs_sha1_md5[] = {
 	.base.halg.base	= {
 		.cra_name		= "hmac(sha1)",
 		.cra_driver_name	= "omap-hmac-sha1",
 		.cra_priority		= 400,
 		.cra_flags		= CRYPTO_ALG_KERN_DRIVER_ONLY |
 						CRYPTO_ALG_ASYNC |
 						CRYPTO_ALG_NEED_FALLBACK,
 		.cra_blocksize		= SHA1_BLOCK_SIZE,
 		.cra_ctxsize		= sizeof(struct omap_sham_ctx) +
 					sizeof(struct omap_sham_hmac_ctx),
-		.cra_alignmask		= OMAP_ALIGN_MASK,
 		.cra_module		= THIS_MODULE,
 		.cra_init		= omap_sham_cra_sha1_init,
 		.cra_exit		= omap_sham_cra_exit,
 	},
 	.op.do_one_request = omap_sham_hash_one_req,
 },
 {
 	.base.init		= omap_sham_init,
 	.base.update		= omap_sham_update,
 	.base.final		= omap_sham_final,
@@ -1501,21 +1498,20 @@ static struct ahash_engine_alg algs_sha1_md5[] = {
 	.base.halg.base	= {
 		.cra_name		= "hmac(md5)",
 		.cra_driver_name	= "omap-hmac-md5",
 		.cra_priority		= 400,
 		.cra_flags		= CRYPTO_ALG_KERN_DRIVER_ONLY |
 						CRYPTO_ALG_ASYNC |
 						CRYPTO_ALG_NEED_FALLBACK,
 		.cra_blocksize		= SHA1_BLOCK_SIZE,
 		.cra_ctxsize		= sizeof(struct omap_sham_ctx) +
 					sizeof(struct omap_sham_hmac_ctx),
-		.cra_alignmask		= OMAP_ALIGN_MASK,
 		.cra_module		= THIS_MODULE,
 		.cra_init		= omap_sham_cra_md5_init,
 		.cra_exit		= omap_sham_cra_exit,
 	},
 	.op.do_one_request = omap_sham_hash_one_req,
 }
 };
 
 /* OMAP4 has some algs in addition to what OMAP2 has */
 static struct ahash_engine_alg algs_sha224_sha256[] = {
@@ -1528,21 +1524,20 @@ static struct ahash_engine_alg algs_sha224_sha256[] = {
 	.base.halg.digestsize	= SHA224_DIGEST_SIZE,
 	.base.halg.base	= {
 		.cra_name		= "sha224",
 		.cra_driver_name	= "omap-sha224",
 		.cra_priority		= 400,
 		.cra_flags		= CRYPTO_ALG_KERN_DRIVER_ONLY |
 						CRYPTO_ALG_ASYNC |
 						CRYPTO_ALG_NEED_FALLBACK,
 		.cra_blocksize		= SHA224_BLOCK_SIZE,
 		.cra_ctxsize		= sizeof(struct omap_sham_ctx),
-		.cra_alignmask		= OMAP_ALIGN_MASK,
 		.cra_module		= THIS_MODULE,
 		.cra_init		= omap_sham_cra_init,
 		.cra_exit		= omap_sham_cra_exit,
 	},
 	.op.do_one_request = omap_sham_hash_one_req,
 },
 {
 	.base.init		= omap_sham_init,
 	.base.update		= omap_sham_update,
 	.base.final		= omap_sham_final,
@@ -1551,21 +1546,20 @@ static struct ahash_engine_alg algs_sha224_sha256[] = {
 	.base.halg.digestsize	= SHA256_DIGEST_SIZE,
 	.base.halg.base	= {
 		.cra_name		= "sha256",
 		.cra_driver_name	= "omap-sha256",
 		.cra_priority		= 400,
 		.cra_flags		= CRYPTO_ALG_KERN_DRIVER_ONLY |
 						CRYPTO_ALG_ASYNC |
 						CRYPTO_ALG_NEED_FALLBACK,
 		.cra_blocksize		= SHA256_BLOCK_SIZE,
 		.cra_ctxsize		= sizeof(struct omap_sham_ctx),
-		.cra_alignmask		= OMAP_ALIGN_MASK,
 		.cra_module		= THIS_MODULE,
 		.cra_init		= omap_sham_cra_init,
 		.cra_exit		= omap_sham_cra_exit,
 	},
 	.op.do_one_request = omap_sham_hash_one_req,
 },
 {
 	.base.init		= omap_sham_init,
 	.base.update		= omap_sham_update,
 	.base.final		= omap_sham_final,
@@ -1576,21 +1570,20 @@ static struct ahash_engine_alg algs_sha224_sha256[] = {
 	.base.halg.base	= {
 		.cra_name		= "hmac(sha224)",
 		.cra_driver_name	= "omap-hmac-sha224",
 		.cra_priority		= 400,
 		.cra_flags		= CRYPTO_ALG_KERN_DRIVER_ONLY |
 						CRYPTO_ALG_ASYNC |
 						CRYPTO_ALG_NEED_FALLBACK,
 		.cra_blocksize		= SHA224_BLOCK_SIZE,
 		.cra_ctxsize		= sizeof(struct omap_sham_ctx) +
 					sizeof(struct omap_sham_hmac_ctx),
-		.cra_alignmask		= OMAP_ALIGN_MASK,
 		.cra_module		= THIS_MODULE,
 		.cra_init		= omap_sham_cra_sha224_init,
 		.cra_exit		= omap_sham_cra_exit,
 	},
 	.op.do_one_request = omap_sham_hash_one_req,
 },
 {
 	.base.init		= omap_sham_init,
 	.base.update		= omap_sham_update,
 	.base.final		= omap_sham_final,
@@ -1601,21 +1594,20 @@ static struct ahash_engine_alg algs_sha224_sha256[] = {
 	.base.halg.base	= {
 		.cra_name		= "hmac(sha256)",
 		.cra_driver_name	= "omap-hmac-sha256",
 		.cra_priority		= 400,
 		.cra_flags		= CRYPTO_ALG_KERN_DRIVER_ONLY |
 						CRYPTO_ALG_ASYNC |
 						CRYPTO_ALG_NEED_FALLBACK,
 		.cra_blocksize		= SHA256_BLOCK_SIZE,
 		.cra_ctxsize		= sizeof(struct omap_sham_ctx) +
 					sizeof(struct omap_sham_hmac_ctx),
-		.cra_alignmask		= OMAP_ALIGN_MASK,
 		.cra_module		= THIS_MODULE,
 		.cra_init		= omap_sham_cra_sha256_init,
 		.cra_exit		= omap_sham_cra_exit,
 	},
 	.op.do_one_request = omap_sham_hash_one_req,
 },
 };
 
 static struct ahash_engine_alg algs_sha384_sha512[] = {
 {
@@ -1627,21 +1619,20 @@ static struct ahash_engine_alg algs_sha384_sha512[] = {
 	.base.halg.digestsize	= SHA384_DIGEST_SIZE,
 	.base.halg.base	= {
 		.cra_name		= "sha384",
 		.cra_driver_name	= "omap-sha384",
 		.cra_priority		= 400,
 		.cra_flags		= CRYPTO_ALG_KERN_DRIVER_ONLY |
 						CRYPTO_ALG_ASYNC |
 						CRYPTO_ALG_NEED_FALLBACK,
 		.cra_blocksize		= SHA384_BLOCK_SIZE,
 		.cra_ctxsize		= sizeof(struct omap_sham_ctx),
-		.cra_alignmask		= OMAP_ALIGN_MASK,
 		.cra_module		= THIS_MODULE,
 		.cra_init		= omap_sham_cra_init,
 		.cra_exit		= omap_sham_cra_exit,
 	},
 	.op.do_one_request = omap_sham_hash_one_req,
 },
 {
 	.base.init		= omap_sham_init,
 	.base.update		= omap_sham_update,
 	.base.final		= omap_sham_final,
@@ -1650,21 +1641,20 @@ static struct ahash_engine_alg algs_sha384_sha512[] = {
 	.base.halg.digestsize	= SHA512_DIGEST_SIZE,
 	.base.halg.base	= {
 		.cra_name		= "sha512",
 		.cra_driver_name	= "omap-sha512",
 		.cra_priority		= 400,
 		.cra_flags		= CRYPTO_ALG_KERN_DRIVER_ONLY |
 						CRYPTO_ALG_ASYNC |
 						CRYPTO_ALG_NEED_FALLBACK,
 		.cra_blocksize		= SHA512_BLOCK_SIZE,
 		.cra_ctxsize		= sizeof(struct omap_sham_ctx),
-		.cra_alignmask		= OMAP_ALIGN_MASK,
 		.cra_module		= THIS_MODULE,
 		.cra_init		= omap_sham_cra_init,
 		.cra_exit		= omap_sham_cra_exit,
 	},
 	.op.do_one_request = omap_sham_hash_one_req,
 },
 {
 	.base.init		= omap_sham_init,
 	.base.update		= omap_sham_update,
 	.base.final		= omap_sham_final,
@@ -1675,21 +1665,20 @@ static struct ahash_engine_alg algs_sha384_sha512[] = {
 	.base.halg.base	= {
 		.cra_name		= "hmac(sha384)",
 		.cra_driver_name	= "omap-hmac-sha384",
 		.cra_priority		= 400,
 		.cra_flags		= CRYPTO_ALG_KERN_DRIVER_ONLY |
 						CRYPTO_ALG_ASYNC |
 						CRYPTO_ALG_NEED_FALLBACK,
 		.cra_blocksize		= SHA384_BLOCK_SIZE,
 		.cra_ctxsize		= sizeof(struct omap_sham_ctx) +
 					sizeof(struct omap_sham_hmac_ctx),
-		.cra_alignmask		= OMAP_ALIGN_MASK,
 		.cra_module		= THIS_MODULE,
 		.cra_init		= omap_sham_cra_sha384_init,
 		.cra_exit		= omap_sham_cra_exit,
 	},
 	.op.do_one_request = omap_sham_hash_one_req,
 },
 {
 	.base.init		= omap_sham_init,
 	.base.update		= omap_sham_update,
 	.base.final		= omap_sham_final,
@@ -1700,21 +1689,20 @@ static struct ahash_engine_alg algs_sha384_sha512[] = {
 	.base.halg.base	= {
 		.cra_name		= "hmac(sha512)",
 		.cra_driver_name	= "omap-hmac-sha512",
 		.cra_priority		= 400,
 		.cra_flags		= CRYPTO_ALG_KERN_DRIVER_ONLY |
 						CRYPTO_ALG_ASYNC |
 						CRYPTO_ALG_NEED_FALLBACK,
 		.cra_blocksize		= SHA512_BLOCK_SIZE,
 		.cra_ctxsize		= sizeof(struct omap_sham_ctx) +
 					sizeof(struct omap_sham_hmac_ctx),
-		.cra_alignmask		= OMAP_ALIGN_MASK,
 		.cra_module		= THIS_MODULE,
 		.cra_init		= omap_sham_cra_sha512_init,
 		.cra_exit		= omap_sham_cra_exit,
 	},
 	.op.do_one_request = omap_sham_hash_one_req,
 },
 };
 
 static void omap_sham_done_task(unsigned long data)
 {
