diff mbox series

powerpc/crypto: Fix aes-gcm-p10 link errors

Message ID 20230525150501.37081-1-mpe@ellerman.id.au (mailing list archive)
State Accepted
Commit 81d358b118dc364bd147432db569d4d400a5a4f2
Headers show
Series powerpc/crypto: Fix aes-gcm-p10 link errors | expand

Commit Message

Michael Ellerman May 25, 2023, 3:05 p.m. UTC
The recently added P10 AES/GCM code added some files containing
CRYPTOGAMS perl-asm code which are near duplicates of the p8 files
found in drivers/crypto/vmx.

In particular the newly added files produce functions with identical
names to the existing code.

When the kernel is built with CONFIG_CRYPTO_AES_GCM_P10=y and
CONFIG_CRYPTO_DEV_VMX_ENCRYPT=y that leads to link errors, eg:

  ld: drivers/crypto/vmx/aesp8-ppc.o: in function `aes_p8_set_encrypt_key':
  (.text+0xa0): multiple definition of `aes_p8_set_encrypt_key'; arch/powerpc/crypto/aesp8-ppc.o:(.text+0xa0): first defined here
  ...
  ld: drivers/crypto/vmx/ghashp8-ppc.o: in function `gcm_ghash_p8':
  (.text+0x140): multiple definition of `gcm_ghash_p8'; arch/powerpc/crypto/ghashp8-ppc.o:(.text+0x2e4): first defined here

Fix it for now by renaming the newly added files and functions to use
"p10" instead of "p8" in the names.

Fixes: 45a4672b9a6e ("crypto: p10-aes-gcm - Update Kconfig and Makefile")
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
---
 arch/powerpc/crypto/Makefile                   | 10 +++++-----
 arch/powerpc/crypto/aes-gcm-p10-glue.c         | 18 +++++++++---------
 .../crypto/{aesp8-ppc.pl => aesp10-ppc.pl}     |  2 +-
 .../crypto/{ghashp8-ppc.pl => ghashp10-ppc.pl} | 12 ++++++------
 4 files changed, 21 insertions(+), 21 deletions(-)
 rename arch/powerpc/crypto/{aesp8-ppc.pl => aesp10-ppc.pl} (99%)
 rename arch/powerpc/crypto/{ghashp8-ppc.pl => ghashp10-ppc.pl} (97%)

Comments

Vishal Chourasia May 30, 2023, 4:06 a.m. UTC | #1
After applying the patch, I was able to successfully build the Linux 
kernel v6.4-rc4.
I encountered no errors during the build process. The issue pertaining 
to multiple
definitions of certain functions appears to be resolved.

λ grep -i CRYPTO_AES_GCM_P10 .config
CONFIG_CRYPTO_AES_GCM_P10=y

λ grep -i CRYPTO_DEV_VMX_ENCRYPT .config
CONFIG_CRYPTO_DEV_VMX_ENCRYPT=y

  + make O=${BUILD_DIR} CC=clang ARCH=powerpc
CROSS_COMPILE=powerpc64le-linux-gnu- -j16 -s vmlinux modules

Thank you for the well-detailed fix.

  -- vishal.c


On 5/25/23 20:35, Michael Ellerman wrote:
> The recently added P10 AES/GCM code added some files containing
> CRYPTOGAMS perl-asm code which are near duplicates of the p8 files
> found in drivers/crypto/vmx.
>
> In particular the newly added files produce functions with identical
> names to the existing code.
>
> When the kernel is built with CONFIG_CRYPTO_AES_GCM_P10=y and
> CONFIG_CRYPTO_DEV_VMX_ENCRYPT=y that leads to link errors, eg:
>
>    ld: drivers/crypto/vmx/aesp8-ppc.o: in function `aes_p8_set_encrypt_key':
>    (.text+0xa0): multiple definition of `aes_p8_set_encrypt_key'; arch/powerpc/crypto/aesp8-ppc.o:(.text+0xa0): first defined here
>    ...
>    ld: drivers/crypto/vmx/ghashp8-ppc.o: in function `gcm_ghash_p8':
>    (.text+0x140): multiple definition of `gcm_ghash_p8'; arch/powerpc/crypto/ghashp8-ppc.o:(.text+0x2e4): first defined here
>
> Fix it for now by renaming the newly added files and functions to use
> "p10" instead of "p8" in the names.
>
> Fixes: 45a4672b9a6e ("crypto: p10-aes-gcm - Update Kconfig and Makefile")
> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
> ---
>   arch/powerpc/crypto/Makefile                   | 10 +++++-----
>   arch/powerpc/crypto/aes-gcm-p10-glue.c         | 18 +++++++++---------
>   .../crypto/{aesp8-ppc.pl => aesp10-ppc.pl}     |  2 +-
>   .../crypto/{ghashp8-ppc.pl => ghashp10-ppc.pl} | 12 ++++++------
>   4 files changed, 21 insertions(+), 21 deletions(-)
>   rename arch/powerpc/crypto/{aesp8-ppc.pl => aesp10-ppc.pl} (99%)
>   rename arch/powerpc/crypto/{ghashp8-ppc.pl => ghashp10-ppc.pl} (97%)
>
> diff --git a/arch/powerpc/crypto/Makefile b/arch/powerpc/crypto/Makefile
> index 05c7486f42c5..7b4f516abec1 100644
> --- a/arch/powerpc/crypto/Makefile
> +++ b/arch/powerpc/crypto/Makefile
> @@ -22,15 +22,15 @@ sha1-ppc-spe-y := sha1-spe-asm.o sha1-spe-glue.o
>   sha256-ppc-spe-y := sha256-spe-asm.o sha256-spe-glue.o
>   crc32c-vpmsum-y := crc32c-vpmsum_asm.o crc32c-vpmsum_glue.o
>   crct10dif-vpmsum-y := crct10dif-vpmsum_asm.o crct10dif-vpmsum_glue.o
> -aes-gcm-p10-crypto-y := aes-gcm-p10-glue.o aes-gcm-p10.o ghashp8-ppc.o aesp8-ppc.o
> +aes-gcm-p10-crypto-y := aes-gcm-p10-glue.o aes-gcm-p10.o ghashp10-ppc.o aesp10-ppc.o
>   
>   quiet_cmd_perl = PERL    $@
>         cmd_perl = $(PERL) $< $(if $(CONFIG_CPU_LITTLE_ENDIAN), linux-ppc64le, linux-ppc64) > $@
>   
> -targets += aesp8-ppc.S ghashp8-ppc.S
> +targets += aesp10-ppc.S ghashp10-ppc.S
>   
> -$(obj)/aesp8-ppc.S $(obj)/ghashp8-ppc.S: $(obj)/%.S: $(src)/%.pl FORCE
> +$(obj)/aesp10-ppc.S $(obj)/ghashp10-ppc.S: $(obj)/%.S: $(src)/%.pl FORCE
>   	$(call if_changed,perl)
>   
> -OBJECT_FILES_NON_STANDARD_aesp8-ppc.o := y
> -OBJECT_FILES_NON_STANDARD_ghashp8-ppc.o := y
> +OBJECT_FILES_NON_STANDARD_aesp10-ppc.o := y
> +OBJECT_FILES_NON_STANDARD_ghashp10-ppc.o := y
> diff --git a/arch/powerpc/crypto/aes-gcm-p10-glue.c b/arch/powerpc/crypto/aes-gcm-p10-glue.c
> index bd3475f5348d..4b6e899895e7 100644
> --- a/arch/powerpc/crypto/aes-gcm-p10-glue.c
> +++ b/arch/powerpc/crypto/aes-gcm-p10-glue.c
> @@ -30,15 +30,15 @@ MODULE_AUTHOR("Danny Tsen <dtsen@linux.ibm.com");
>   MODULE_LICENSE("GPL v2");
>   MODULE_ALIAS_CRYPTO("aes");
>   
> -asmlinkage int aes_p8_set_encrypt_key(const u8 *userKey, const int bits,
> +asmlinkage int aes_p10_set_encrypt_key(const u8 *userKey, const int bits,
>   				      void *key);
> -asmlinkage void aes_p8_encrypt(const u8 *in, u8 *out, const void *key);
> +asmlinkage void aes_p10_encrypt(const u8 *in, u8 *out, const void *key);
>   asmlinkage void aes_p10_gcm_encrypt(u8 *in, u8 *out, size_t len,
>   				    void *rkey, u8 *iv, void *Xi);
>   asmlinkage void aes_p10_gcm_decrypt(u8 *in, u8 *out, size_t len,
>   				    void *rkey, u8 *iv, void *Xi);
>   asmlinkage void gcm_init_htable(unsigned char htable[256], unsigned char Xi[16]);
> -asmlinkage void gcm_ghash_p8(unsigned char *Xi, unsigned char *Htable,
> +asmlinkage void gcm_ghash_p10(unsigned char *Xi, unsigned char *Htable,
>   		unsigned char *aad, unsigned int alen);
>   
>   struct aes_key {
> @@ -93,7 +93,7 @@ static void set_aad(struct gcm_ctx *gctx, struct Hash_ctx *hash,
>   	gctx->aadLen = alen;
>   	i = alen & ~0xf;
>   	if (i) {
> -		gcm_ghash_p8(nXi, hash->Htable+32, aad, i);
> +		gcm_ghash_p10(nXi, hash->Htable+32, aad, i);
>   		aad += i;
>   		alen -= i;
>   	}
> @@ -102,7 +102,7 @@ static void set_aad(struct gcm_ctx *gctx, struct Hash_ctx *hash,
>   			nXi[i] ^= aad[i];
>   
>   		memset(gctx->aad_hash, 0, 16);
> -		gcm_ghash_p8(gctx->aad_hash, hash->Htable+32, nXi, 16);
> +		gcm_ghash_p10(gctx->aad_hash, hash->Htable+32, nXi, 16);
>   	} else {
>   		memcpy(gctx->aad_hash, nXi, 16);
>   	}
> @@ -115,7 +115,7 @@ static void gcmp10_init(struct gcm_ctx *gctx, u8 *iv, unsigned char *rdkey,
>   {
>   	__be32 counter = cpu_to_be32(1);
>   
> -	aes_p8_encrypt(hash->H, hash->H, rdkey);
> +	aes_p10_encrypt(hash->H, hash->H, rdkey);
>   	set_subkey(hash->H);
>   	gcm_init_htable(hash->Htable+32, hash->H);
>   
> @@ -126,7 +126,7 @@ static void gcmp10_init(struct gcm_ctx *gctx, u8 *iv, unsigned char *rdkey,
>   	/*
>   	 * Encrypt counter vector as iv tag and increment counter.
>   	 */
> -	aes_p8_encrypt(iv, gctx->ivtag, rdkey);
> +	aes_p10_encrypt(iv, gctx->ivtag, rdkey);
>   
>   	counter = cpu_to_be32(2);
>   	*((__be32 *)(iv+12)) = counter;
> @@ -160,7 +160,7 @@ static void finish_tag(struct gcm_ctx *gctx, struct Hash_ctx *hash, int len)
>   	/*
>   	 * hash (AAD len and len)
>   	 */
> -	gcm_ghash_p8(hash->Htable, hash->Htable+32, aclen, 16);
> +	gcm_ghash_p10(hash->Htable, hash->Htable+32, aclen, 16);
>   
>   	for (i = 0; i < 16; i++)
>   		hash->Htable[i] ^= gctx->ivtag[i];
> @@ -192,7 +192,7 @@ static int p10_aes_gcm_setkey(struct crypto_aead *aead, const u8 *key,
>   	int ret;
>   
>   	vsx_begin();
> -	ret = aes_p8_set_encrypt_key(key, keylen * 8, &ctx->enc_key);
> +	ret = aes_p10_set_encrypt_key(key, keylen * 8, &ctx->enc_key);
>   	vsx_end();
>   
>   	return ret ? -EINVAL : 0;
> diff --git a/arch/powerpc/crypto/aesp8-ppc.pl b/arch/powerpc/crypto/aesp10-ppc.pl
> similarity index 99%
> rename from arch/powerpc/crypto/aesp8-ppc.pl
> rename to arch/powerpc/crypto/aesp10-ppc.pl
> index 1f22aec27d79..2c06ce2a2c7c 100644
> --- a/arch/powerpc/crypto/aesp8-ppc.pl
> +++ b/arch/powerpc/crypto/aesp10-ppc.pl
> @@ -110,7 +110,7 @@ die "can't locate ppc-xlate.pl";
>   open STDOUT,"| $^X $xlate $flavour ".shift || die "can't call $xlate: $!";
>   
>   $FRAME=8*$SIZE_T;
> -$prefix="aes_p8";
> +$prefix="aes_p10";
>   
>   $sp="r1";
>   $vrsave="r12";
> diff --git a/arch/powerpc/crypto/ghashp8-ppc.pl b/arch/powerpc/crypto/ghashp10-ppc.pl
> similarity index 97%
> rename from arch/powerpc/crypto/ghashp8-ppc.pl
> rename to arch/powerpc/crypto/ghashp10-ppc.pl
> index b56603b4a893..27a6b0bec645 100644
> --- a/arch/powerpc/crypto/ghashp8-ppc.pl
> +++ b/arch/powerpc/crypto/ghashp10-ppc.pl
> @@ -64,7 +64,7 @@ $code=<<___;
>   
>   .text
>   
> -.globl	.gcm_init_p8
> +.globl	.gcm_init_p10
>   	lis		r0,0xfff0
>   	li		r8,0x10
>   	mfspr		$vrsave,256
> @@ -110,7 +110,7 @@ $code=<<___;
>   	.long		0
>   	.byte		0,12,0x14,0,0,0,2,0
>   	.long		0
> -.size	.gcm_init_p8,.-.gcm_init_p8
> +.size	.gcm_init_p10,.-.gcm_init_p10
>   
>   .globl	.gcm_init_htable
>   	lis		r0,0xfff0
> @@ -237,7 +237,7 @@ $code=<<___;
>   	.long		0
>   .size	.gcm_init_htable,.-.gcm_init_htable
>   
> -.globl	.gcm_gmult_p8
> +.globl	.gcm_gmult_p10
>   	lis		r0,0xfff8
>   	li		r8,0x10
>   	mfspr		$vrsave,256
> @@ -283,9 +283,9 @@ $code=<<___;
>   	.long		0
>   	.byte		0,12,0x14,0,0,0,2,0
>   	.long		0
> -.size	.gcm_gmult_p8,.-.gcm_gmult_p8
> +.size	.gcm_gmult_p10,.-.gcm_gmult_p10
>   
> -.globl	.gcm_ghash_p8
> +.globl	.gcm_ghash_p10
>   	lis		r0,0xfff8
>   	li		r8,0x10
>   	mfspr		$vrsave,256
> @@ -350,7 +350,7 @@ Loop:
>   	.long		0
>   	.byte		0,12,0x14,0,0,0,4,0
>   	.long		0
> -.size	.gcm_ghash_p8,.-.gcm_ghash_p8
> +.size	.gcm_ghash_p10,.-.gcm_ghash_p10
>   
>   .asciz  "GHASH for PowerISA 2.07, CRYPTOGAMS by <appro\@openssl.org>"
>   .align  2
Vishal Chourasia May 30, 2023, 5:07 a.m. UTC | #2
On 5/25/23 20:35, Michael Ellerman wrote:
> The recently added P10 AES/GCM code added some files containing
> CRYPTOGAMS perl-asm code which are near duplicates of the p8 files
> found in drivers/crypto/vmx.
>
> In particular the newly added files produce functions with identical
> names to the existing code.
>
> When the kernel is built with CONFIG_CRYPTO_AES_GCM_P10=y and
> CONFIG_CRYPTO_DEV_VMX_ENCRYPT=y that leads to link errors, eg:
>
>    ld: drivers/crypto/vmx/aesp8-ppc.o: in function `aes_p8_set_encrypt_key':
>    (.text+0xa0): multiple definition of `aes_p8_set_encrypt_key'; arch/powerpc/crypto/aesp8-ppc.o:(.text+0xa0): first defined here
>    ...
>    ld: drivers/crypto/vmx/ghashp8-ppc.o: in function `gcm_ghash_p8':
>    (.text+0x140): multiple definition of `gcm_ghash_p8'; arch/powerpc/crypto/ghashp8-ppc.o:(.text+0x2e4): first defined here
>
> Fix it for now by renaming the newly added files and functions to use
> "p10" instead of "p8" in the names.
>
> Fixes: 45a4672b9a6e ("crypto: p10-aes-gcm - Update Kconfig and Makefile")
> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
> ---
>   arch/powerpc/crypto/Makefile                   | 10 +++++-----
>   arch/powerpc/crypto/aes-gcm-p10-glue.c         | 18 +++++++++---------
>   .../crypto/{aesp8-ppc.pl => aesp10-ppc.pl}     |  2 +-
>   .../crypto/{ghashp8-ppc.pl => ghashp10-ppc.pl} | 12 ++++++------
>   4 files changed, 21 insertions(+), 21 deletions(-)
>   rename arch/powerpc/crypto/{aesp8-ppc.pl => aesp10-ppc.pl} (99%)
>   rename arch/powerpc/crypto/{ghashp8-ppc.pl => ghashp10-ppc.pl} (97%)

I missed adding tested-by in previous reply.

After applying the patch, I was able to successfully build the Linux 
kernel v6.4-rc4.

I encountered no errors during the build process. The issue pertaining 
to multiple
definitions of certain functions appears to be resolved.

λ grep -i CRYPTO_AES_GCM_P10 .config
CONFIG_CRYPTO_AES_GCM_P10=y

λ grep -i CRYPTO_DEV_VMX_ENCRYPT .config
CONFIG_CRYPTO_DEV_VMX_ENCRYPT=y

  + make O=${BUILD_DIR} CC=clang ARCH=powerpc
CROSS_COMPILE=powerpc64le-linux-gnu- -j16 -s vmlinux modules

Thank you for the well-detailed fix.

Tested-by: Vishal Chourasia <vishalc@linux.ibm.com>
diff mbox series

Patch

diff --git a/arch/powerpc/crypto/Makefile b/arch/powerpc/crypto/Makefile
index 05c7486f42c5..7b4f516abec1 100644
--- a/arch/powerpc/crypto/Makefile
+++ b/arch/powerpc/crypto/Makefile
@@ -22,15 +22,15 @@  sha1-ppc-spe-y := sha1-spe-asm.o sha1-spe-glue.o
 sha256-ppc-spe-y := sha256-spe-asm.o sha256-spe-glue.o
 crc32c-vpmsum-y := crc32c-vpmsum_asm.o crc32c-vpmsum_glue.o
 crct10dif-vpmsum-y := crct10dif-vpmsum_asm.o crct10dif-vpmsum_glue.o
-aes-gcm-p10-crypto-y := aes-gcm-p10-glue.o aes-gcm-p10.o ghashp8-ppc.o aesp8-ppc.o
+aes-gcm-p10-crypto-y := aes-gcm-p10-glue.o aes-gcm-p10.o ghashp10-ppc.o aesp10-ppc.o
 
 quiet_cmd_perl = PERL    $@
       cmd_perl = $(PERL) $< $(if $(CONFIG_CPU_LITTLE_ENDIAN), linux-ppc64le, linux-ppc64) > $@
 
-targets += aesp8-ppc.S ghashp8-ppc.S
+targets += aesp10-ppc.S ghashp10-ppc.S
 
-$(obj)/aesp8-ppc.S $(obj)/ghashp8-ppc.S: $(obj)/%.S: $(src)/%.pl FORCE
+$(obj)/aesp10-ppc.S $(obj)/ghashp10-ppc.S: $(obj)/%.S: $(src)/%.pl FORCE
 	$(call if_changed,perl)
 
-OBJECT_FILES_NON_STANDARD_aesp8-ppc.o := y
-OBJECT_FILES_NON_STANDARD_ghashp8-ppc.o := y
+OBJECT_FILES_NON_STANDARD_aesp10-ppc.o := y
+OBJECT_FILES_NON_STANDARD_ghashp10-ppc.o := y
diff --git a/arch/powerpc/crypto/aes-gcm-p10-glue.c b/arch/powerpc/crypto/aes-gcm-p10-glue.c
index bd3475f5348d..4b6e899895e7 100644
--- a/arch/powerpc/crypto/aes-gcm-p10-glue.c
+++ b/arch/powerpc/crypto/aes-gcm-p10-glue.c
@@ -30,15 +30,15 @@  MODULE_AUTHOR("Danny Tsen <dtsen@linux.ibm.com");
 MODULE_LICENSE("GPL v2");
 MODULE_ALIAS_CRYPTO("aes");
 
-asmlinkage int aes_p8_set_encrypt_key(const u8 *userKey, const int bits,
+asmlinkage int aes_p10_set_encrypt_key(const u8 *userKey, const int bits,
 				      void *key);
-asmlinkage void aes_p8_encrypt(const u8 *in, u8 *out, const void *key);
+asmlinkage void aes_p10_encrypt(const u8 *in, u8 *out, const void *key);
 asmlinkage void aes_p10_gcm_encrypt(u8 *in, u8 *out, size_t len,
 				    void *rkey, u8 *iv, void *Xi);
 asmlinkage void aes_p10_gcm_decrypt(u8 *in, u8 *out, size_t len,
 				    void *rkey, u8 *iv, void *Xi);
 asmlinkage void gcm_init_htable(unsigned char htable[256], unsigned char Xi[16]);
-asmlinkage void gcm_ghash_p8(unsigned char *Xi, unsigned char *Htable,
+asmlinkage void gcm_ghash_p10(unsigned char *Xi, unsigned char *Htable,
 		unsigned char *aad, unsigned int alen);
 
 struct aes_key {
@@ -93,7 +93,7 @@  static void set_aad(struct gcm_ctx *gctx, struct Hash_ctx *hash,
 	gctx->aadLen = alen;
 	i = alen & ~0xf;
 	if (i) {
-		gcm_ghash_p8(nXi, hash->Htable+32, aad, i);
+		gcm_ghash_p10(nXi, hash->Htable+32, aad, i);
 		aad += i;
 		alen -= i;
 	}
@@ -102,7 +102,7 @@  static void set_aad(struct gcm_ctx *gctx, struct Hash_ctx *hash,
 			nXi[i] ^= aad[i];
 
 		memset(gctx->aad_hash, 0, 16);
-		gcm_ghash_p8(gctx->aad_hash, hash->Htable+32, nXi, 16);
+		gcm_ghash_p10(gctx->aad_hash, hash->Htable+32, nXi, 16);
 	} else {
 		memcpy(gctx->aad_hash, nXi, 16);
 	}
@@ -115,7 +115,7 @@  static void gcmp10_init(struct gcm_ctx *gctx, u8 *iv, unsigned char *rdkey,
 {
 	__be32 counter = cpu_to_be32(1);
 
-	aes_p8_encrypt(hash->H, hash->H, rdkey);
+	aes_p10_encrypt(hash->H, hash->H, rdkey);
 	set_subkey(hash->H);
 	gcm_init_htable(hash->Htable+32, hash->H);
 
@@ -126,7 +126,7 @@  static void gcmp10_init(struct gcm_ctx *gctx, u8 *iv, unsigned char *rdkey,
 	/*
 	 * Encrypt counter vector as iv tag and increment counter.
 	 */
-	aes_p8_encrypt(iv, gctx->ivtag, rdkey);
+	aes_p10_encrypt(iv, gctx->ivtag, rdkey);
 
 	counter = cpu_to_be32(2);
 	*((__be32 *)(iv+12)) = counter;
@@ -160,7 +160,7 @@  static void finish_tag(struct gcm_ctx *gctx, struct Hash_ctx *hash, int len)
 	/*
 	 * hash (AAD len and len)
 	 */
-	gcm_ghash_p8(hash->Htable, hash->Htable+32, aclen, 16);
+	gcm_ghash_p10(hash->Htable, hash->Htable+32, aclen, 16);
 
 	for (i = 0; i < 16; i++)
 		hash->Htable[i] ^= gctx->ivtag[i];
@@ -192,7 +192,7 @@  static int p10_aes_gcm_setkey(struct crypto_aead *aead, const u8 *key,
 	int ret;
 
 	vsx_begin();
-	ret = aes_p8_set_encrypt_key(key, keylen * 8, &ctx->enc_key);
+	ret = aes_p10_set_encrypt_key(key, keylen * 8, &ctx->enc_key);
 	vsx_end();
 
 	return ret ? -EINVAL : 0;
diff --git a/arch/powerpc/crypto/aesp8-ppc.pl b/arch/powerpc/crypto/aesp10-ppc.pl
similarity index 99%
rename from arch/powerpc/crypto/aesp8-ppc.pl
rename to arch/powerpc/crypto/aesp10-ppc.pl
index 1f22aec27d79..2c06ce2a2c7c 100644
--- a/arch/powerpc/crypto/aesp8-ppc.pl
+++ b/arch/powerpc/crypto/aesp10-ppc.pl
@@ -110,7 +110,7 @@  die "can't locate ppc-xlate.pl";
 open STDOUT,"| $^X $xlate $flavour ".shift || die "can't call $xlate: $!";
 
 $FRAME=8*$SIZE_T;
-$prefix="aes_p8";
+$prefix="aes_p10";
 
 $sp="r1";
 $vrsave="r12";
diff --git a/arch/powerpc/crypto/ghashp8-ppc.pl b/arch/powerpc/crypto/ghashp10-ppc.pl
similarity index 97%
rename from arch/powerpc/crypto/ghashp8-ppc.pl
rename to arch/powerpc/crypto/ghashp10-ppc.pl
index b56603b4a893..27a6b0bec645 100644
--- a/arch/powerpc/crypto/ghashp8-ppc.pl
+++ b/arch/powerpc/crypto/ghashp10-ppc.pl
@@ -64,7 +64,7 @@  $code=<<___;
 
 .text
 
-.globl	.gcm_init_p8
+.globl	.gcm_init_p10
 	lis		r0,0xfff0
 	li		r8,0x10
 	mfspr		$vrsave,256
@@ -110,7 +110,7 @@  $code=<<___;
 	.long		0
 	.byte		0,12,0x14,0,0,0,2,0
 	.long		0
-.size	.gcm_init_p8,.-.gcm_init_p8
+.size	.gcm_init_p10,.-.gcm_init_p10
 
 .globl	.gcm_init_htable
 	lis		r0,0xfff0
@@ -237,7 +237,7 @@  $code=<<___;
 	.long		0
 .size	.gcm_init_htable,.-.gcm_init_htable
 
-.globl	.gcm_gmult_p8
+.globl	.gcm_gmult_p10
 	lis		r0,0xfff8
 	li		r8,0x10
 	mfspr		$vrsave,256
@@ -283,9 +283,9 @@  $code=<<___;
 	.long		0
 	.byte		0,12,0x14,0,0,0,2,0
 	.long		0
-.size	.gcm_gmult_p8,.-.gcm_gmult_p8
+.size	.gcm_gmult_p10,.-.gcm_gmult_p10
 
-.globl	.gcm_ghash_p8
+.globl	.gcm_ghash_p10
 	lis		r0,0xfff8
 	li		r8,0x10
 	mfspr		$vrsave,256
@@ -350,7 +350,7 @@  Loop:
 	.long		0
 	.byte		0,12,0x14,0,0,0,4,0
 	.long		0
-.size	.gcm_ghash_p8,.-.gcm_ghash_p8
+.size	.gcm_ghash_p10,.-.gcm_ghash_p10
 
 .asciz  "GHASH for PowerISA 2.07, CRYPTOGAMS by <appro\@openssl.org>"
 .align  2