get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/2232256/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 2232256,
    "url": "http://patchwork.ozlabs.org/api/patches/2232256/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/linuxppc-dev/patch/20260504041448.15820-1-ebiggers@kernel.org/",
    "project": {
        "id": 2,
        "url": "http://patchwork.ozlabs.org/api/projects/2/?format=api",
        "name": "Linux PPC development",
        "link_name": "linuxppc-dev",
        "list_id": "linuxppc-dev.lists.ozlabs.org",
        "list_email": "linuxppc-dev@lists.ozlabs.org",
        "web_url": "https://github.com/linuxppc/wiki/wiki",
        "scm_url": "https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git",
        "webscm_url": "https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git/",
        "list_archive_url": "https://lore.kernel.org/linuxppc-dev/",
        "list_archive_url_format": "https://lore.kernel.org/linuxppc-dev/{}/",
        "commit_url_format": "https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git/commit/?id={}"
    },
    "msgid": "<20260504041448.15820-1-ebiggers@kernel.org>",
    "list_archive_url": "https://lore.kernel.org/linuxppc-dev/20260504041448.15820-1-ebiggers@kernel.org/",
    "date": "2026-05-04T04:14:48",
    "name": "lib/crypto: powerpc/md5: Drop powerpc optimized MD5 code",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "b1c72c729808fdf6a5581503999e9c498fcbaf56",
    "submitter": {
        "id": 74690,
        "url": "http://patchwork.ozlabs.org/api/people/74690/?format=api",
        "name": "Eric Biggers",
        "email": "ebiggers@kernel.org"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/linuxppc-dev/patch/20260504041448.15820-1-ebiggers@kernel.org/mbox/",
    "series": [
        {
            "id": 502610,
            "url": "http://patchwork.ozlabs.org/api/series/502610/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/linuxppc-dev/list/?series=502610",
            "date": "2026-05-04T04:14:48",
            "name": "lib/crypto: powerpc/md5: Drop powerpc optimized MD5 code",
            "version": 1,
            "mbox": "http://patchwork.ozlabs.org/series/502610/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/2232256/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/2232256/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "\n <linuxppc-dev+bounces-20394-incoming=patchwork.ozlabs.org@lists.ozlabs.org>",
        "X-Original-To": [
            "incoming@patchwork.ozlabs.org",
            "linuxppc-dev@lists.ozlabs.org"
        ],
        "Delivered-To": "patchwork-incoming@legolas.ozlabs.org",
        "Authentication-Results": [
            "legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256\n header.s=k20201202 header.b=YYwVZuyB;\n\tdkim-atps=neutral",
            "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=lists.ozlabs.org\n (client-ip=2404:9400:21b9:f100::1; helo=lists.ozlabs.org;\n envelope-from=linuxppc-dev+bounces-20394-incoming=patchwork.ozlabs.org@lists.ozlabs.org;\n receiver=patchwork.ozlabs.org)",
            "lists.ozlabs.org;\n arc=none smtp.remote-ip=172.105.4.254",
            "lists.ozlabs.org;\n dmarc=pass (p=quarantine dis=none) header.from=kernel.org",
            "lists.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256\n header.s=k20201202 header.b=YYwVZuyB;\n\tdkim-atps=neutral",
            "lists.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=kernel.org\n (client-ip=172.105.4.254; helo=tor.source.kernel.org;\n envelope-from=ebiggers@kernel.org; receiver=lists.ozlabs.org)"
        ],
        "Received": [
            "from lists.ozlabs.org (lists.ozlabs.org\n [IPv6:2404:9400:21b9:f100::1])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1 raw public key)\n server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g87dN3Wfnz1yJ9\n\tfor <incoming@patchwork.ozlabs.org>; Mon, 04 May 2026 14:16:55 +1000 (AEST)",
            "from boromir.ozlabs.org (localhost [127.0.0.1])\n\tby lists.ozlabs.org (Postfix) with ESMTP id 4g87dL33Rwz2yZ6;\n\tMon, 04 May 2026 14:16:54 +1000 (AEST)",
            "from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature RSA-PSS (2048 bits) server-digest\n SHA256)\n\t(No client certificate requested)\n\tby lists.ozlabs.org (Postfix) with ESMTPS id 4g87dK224Tz2xZK\n\tfor <linuxppc-dev@lists.ozlabs.org>; Mon, 04 May 2026 14:16:53 +1000 (AEST)",
            "from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])\n\tby tor.source.kernel.org (Postfix) with ESMTP id B8BBB60008;\n\tMon,  4 May 2026 04:16:50 +0000 (UTC)",
            "by smtp.kernel.org (Postfix) with ESMTPSA id 03914C2BCB8;\n\tMon,  4 May 2026 04:16:49 +0000 (UTC)"
        ],
        "ARC-Seal": "i=1; a=rsa-sha256; d=lists.ozlabs.org; s=201707; t=1777868214;\n\tcv=none;\n b=TKaR6eES8iFUDR8I9n+ITtALJqu71W6v/5dT1zA1YWhmi/Bh1UC2ygxZyQVYDpr1xwlptYXyrXC/IBJWLfre5NnCmGH5M9XI/WxJ8kNP12hxVxBa3SjLOngMrc6ml/ALE8K4gvBlKWJbYS40L5m9YelfbJGt4D2GBWqiy3oL/2ypJDWSRcKy4Vd4iNeVGJCQdhzdvyO9MtaYqEwC/C4kXbMUxDsUZWoF117SK5g0QV/UrDpieeykwzHVGOzeXAejMqpNVCCRLmcTPCJ+oVPKO7WEvWa1jXow0DzoX+h3qMjEcPFPhi8naDB4/u93T7DqJ7lPLd93Zh8LaEdKeTv0aw==",
        "ARC-Message-Signature": "i=1; a=rsa-sha256; d=lists.ozlabs.org; s=201707;\n\tt=1777868214; c=relaxed/relaxed;\n\tbh=zDxygFY2dV2Ovgu2bRY8uj9jJ+BumT9Gmg2J16axPu8=;\n\th=From:To:Cc:Subject:Date:Message-ID:MIME-Version;\n b=ZxIOgDxCZXe6fT9UKJ/iNkvtunSXxPJl0DwuJlvZ3GziuFK3HK7pag+rtV6YaDkVYDRawsBIyNq1mJqcT+zgKgrT+kxxVbDI7RQHMhbNwir3azCLcQ+menKDNM2VjYINX/Lqr5+eF5jP4ledaE+dDxmat00LbT4V+9kCiz/V4nLPV7YLWKfT0Z0JvFsqY47foF2F5w+YyU1UiZEMXihFF9Q9UY99gz5tuXCGuGEn7hY+DQq4ftimI5l+13GEUsEdKA2ShYs8zGInOleaC8ajab3f6VrLMOFDkCec+GcXEWAjpvxWoKQp4O2WxTxvmSvq4UYq4aww+E6asgorkk2qIQ==",
        "ARC-Authentication-Results": "i=1; lists.ozlabs.org;\n dmarc=pass (p=quarantine dis=none) header.from=kernel.org;\n dkim=pass (2048-bit key;\n unprotected) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256\n header.s=k20201202 header.b=YYwVZuyB; dkim-atps=neutral;\n spf=pass (client-ip=172.105.4.254; helo=tor.source.kernel.org;\n envelope-from=ebiggers@kernel.org;\n receiver=lists.ozlabs.org) smtp.mailfrom=kernel.org",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;\n\ts=k20201202; t=1777868210;\n\tbh=2qTFNfaYMJyy1ie9DH2LN5N/zDt1ma9a7qyx7DY0dQk=;\n\th=From:To:Cc:Subject:Date:From;\n\tb=YYwVZuyBrnLRTB+8vvgAB/Y1eDKZ945ziP2WnHA7kzQK8+AvucpfheS/2LkOqtwUN\n\t J+zXeCd/mfmXw5lra5Itxb/2hjXAoJPj+1NPaatfj7Yqb5XL1CWIrf29iimHQNFOdu\n\t NZNp/5kmW/Mwdo9eZuAJfIO2Eza6HiJTRCkhxehIMXjVUEU7zsGWgVp6GlKZ+v43Yy\n\t tFUVbRpsSsYC4WSWw+P//Yo/NWJmVe+zq56h95RW5MC3X3tm96I1NcA43s/2DgDGGV\n\t N7PY+pAPKUuhoYRoJTld4N1Oba03c48f0J2UPRXoBMhp2RBy/Lha+Y2407kv5WNDdZ\n\t c4WCC4xh47xCw==",
        "From": "Eric Biggers <ebiggers@kernel.org>",
        "To": "linux-crypto@vger.kernel.org",
        "Cc": "linux-kernel@vger.kernel.org,\n\tArd Biesheuvel <ardb@kernel.org>,\n\t\"Jason A . Donenfeld\" <Jason@zx2c4.com>,\n\tHerbert Xu <herbert@gondor.apana.org.au>,\n\tlinuxppc-dev@lists.ozlabs.org,\n\tChristophe Leroy <chleroy@kernel.org>,\n\tNicholas Piggin <npiggin@gmail.com>,\n\tMichael Ellerman <mpe@ellerman.id.au>,\n\tMadhavan Srinivasan <maddy@linux.ibm.com>,\n\tEric Biggers <ebiggers@kernel.org>",
        "Subject": "[PATCH] lib/crypto: powerpc/md5: Drop powerpc optimized MD5 code",
        "Date": "Sun,  3 May 2026 21:14:48 -0700",
        "Message-ID": "<20260504041448.15820-1-ebiggers@kernel.org>",
        "X-Mailer": "git-send-email 2.54.0",
        "X-Mailing-List": "linuxppc-dev@lists.ozlabs.org",
        "List-Id": "<linuxppc-dev.lists.ozlabs.org>",
        "List-Help": "<mailto:linuxppc-dev+help@lists.ozlabs.org>",
        "List-Owner": "<mailto:linuxppc-dev+owner@lists.ozlabs.org>",
        "List-Post": "<mailto:linuxppc-dev@lists.ozlabs.org>",
        "List-Archive": "<https://lore.kernel.org/linuxppc-dev/>,\n  <https://lists.ozlabs.org/pipermail/linuxppc-dev/>",
        "List-Subscribe": "<mailto:linuxppc-dev+subscribe@lists.ozlabs.org>,\n  <mailto:linuxppc-dev+subscribe-digest@lists.ozlabs.org>,\n  <mailto:linuxppc-dev+subscribe-nomail@lists.ozlabs.org>",
        "List-Unsubscribe": "<mailto:linuxppc-dev+unsubscribe@lists.ozlabs.org>",
        "Precedence": "list",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "X-Spam-Status": "No, score=-0.6 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED,\n\tDKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS,\n\tT_FILL_THIS_FORM_SHORT autolearn=disabled version=4.0.1 OzLabs 8",
        "X-Spam-Checker-Version": "SpamAssassin 4.0.1 (2024-03-25) on lists.ozlabs.org"
    },
    "content": "Earlier the decision was made to keep this code for a while, despite no\nother architectures having optimized MD5 code anymore, because of\nsomeone using it via AF_ALG via libkcapi-hasher\n(https://lore.kernel.org/r/f0d771d5-ed70-444c-957a-ad4c16f6c115@csgroup.eu/)\n\nHowever, with AF_ALG itself now being on its way out due to its\ncontinuous stream of security vulnerabilities\n(https://lore.kernel.org/r/20260430011544.31823-1-ebiggers@kernel.org/),\nit's time to be a bit more forceful with nudging people towards\nuserspace crypto code.  It's always been the better solution anyway, and\nit's much more efficient if properly optimized code is used.\n\nThus, drop the PowerPC optimized MD5 code.  Note that this code contains\nno privileged instructions and could be run in userspace just fine.\n\nMD5 is still supported, just with the generic code only.  I.e., this\ncommit only changes performance; it isn't a hard break.\n\nThis also has no effect on implementations of md5sum that already just\nuse userspace code (as they should), for example the coreutils one.\n\nSigned-off-by: Eric Biggers <ebiggers@kernel.org>\n---\n lib/crypto/Kconfig           |   5 -\n lib/crypto/Makefile          |   4 -\n lib/crypto/md5.c             |  20 ++-\n lib/crypto/powerpc/md5-asm.S | 235 -----------------------------------\n lib/crypto/powerpc/md5.h     |  12 --\n 5 files changed, 7 insertions(+), 269 deletions(-)\n delete mode 100644 lib/crypto/powerpc/md5-asm.S\n delete mode 100644 lib/crypto/powerpc/md5.h\n\n\nbase-commit: 7fd2df204f342fc17d1a0bfcd474b24232fb0f32",
    "diff": "diff --git a/lib/crypto/Kconfig b/lib/crypto/Kconfig\nindex d3904b72dae7..591c1c2a7fb3 100644\n--- a/lib/crypto/Kconfig\n+++ b/lib/crypto/Kconfig\n@@ -129,15 +129,10 @@ config CRYPTO_LIB_MD5\n \ttristate\n \thelp\n \t  The MD5 and HMAC-MD5 library functions.  Select this if your module\n \t  uses any of the functions from <crypto/md5.h>.\n \n-config CRYPTO_LIB_MD5_ARCH\n-\tbool\n-\tdepends on CRYPTO_LIB_MD5 && !UML\n-\tdefault y if PPC\n-\n config CRYPTO_LIB_MLDSA\n \ttristate\n \tselect CRYPTO_LIB_SHA3\n \thelp\n \t  The ML-DSA library functions.  Select this if your module uses any of\ndiff --git a/lib/crypto/Makefile b/lib/crypto/Makefile\nindex 4ad91f390038..f1e9bf89785f 100644\n--- a/lib/crypto/Makefile\n+++ b/lib/crypto/Makefile\n@@ -185,14 +185,10 @@ clean-files += powerpc/ghashp8-ppc.S\n \n ################################################################################\n \n obj-$(CONFIG_CRYPTO_LIB_MD5) += libmd5.o\n libmd5-y := md5.o\n-ifeq ($(CONFIG_CRYPTO_LIB_MD5_ARCH),y)\n-CFLAGS_md5.o += -I$(src)/$(SRCARCH)\n-libmd5-$(CONFIG_PPC) += powerpc/md5-asm.o\n-endif # CONFIG_CRYPTO_LIB_MD5_ARCH\n \n ################################################################################\n \n obj-$(CONFIG_CRYPTO_LIB_MLDSA) += libmldsa.o\n libmldsa-y := mldsa.o\ndiff --git a/lib/crypto/md5.c b/lib/crypto/md5.c\nindex c4af57db0ea8..6bf130cfbbf9 100644\n--- a/lib/crypto/md5.c\n+++ b/lib/crypto/md5.c\n@@ -1,11 +1,11 @@\n // SPDX-License-Identifier: GPL-2.0-or-later\n /*\n  * MD5 and HMAC-MD5 library functions\n  *\n- * md5_block_generic() is derived from cryptoapi implementation, originally\n- * based on the public domain implementation written by Colin Plumb in 1993.\n+ * md5_block() is derived from cryptoapi implementation, originally based on the\n+ * public domain implementation written by Colin Plumb in 1993.\n  *\n  * Copyright (c) Cryptoapi developers.\n  * Copyright (c) 2002 James Morris <jmorris@intercode.com.au>\n  * Copyright 2025 Google LLC\n  */\n@@ -29,12 +29,12 @@ static const struct md5_block_state md5_iv = {\n #define F4(x, y, z) (y ^ (x | ~z))\n \n #define MD5STEP(f, w, x, y, z, in, s) \\\n \t(w += f(x, y, z) + in, w = rol32(w, s) + x)\n \n-static void md5_block_generic(struct md5_block_state *state,\n-\t\t\t      const u8 data[MD5_BLOCK_SIZE])\n+static void md5_block(struct md5_block_state *state,\n+\t\t      const u8 data[MD5_BLOCK_SIZE])\n {\n \tu32 in[MD5_BLOCK_WORDS];\n \tu32 a, b, c, d;\n \n \tmemcpy(in, data, MD5_BLOCK_SIZE);\n@@ -117,25 +117,19 @@ static void md5_block_generic(struct md5_block_state *state,\n \tstate->h[1] += b;\n \tstate->h[2] += c;\n \tstate->h[3] += d;\n }\n \n-static void __maybe_unused md5_blocks_generic(struct md5_block_state *state,\n-\t\t\t\t\t      const u8 *data, size_t nblocks)\n+static void md5_blocks(struct md5_block_state *state,\n+\t\t       const u8 *data, size_t nblocks)\n {\n \tdo {\n-\t\tmd5_block_generic(state, data);\n+\t\tmd5_block(state, data);\n \t\tdata += MD5_BLOCK_SIZE;\n \t} while (--nblocks);\n }\n \n-#ifdef CONFIG_CRYPTO_LIB_MD5_ARCH\n-#include \"md5.h\" /* $(SRCARCH)/md5.h */\n-#else\n-#define md5_blocks md5_blocks_generic\n-#endif\n-\n void md5_init(struct md5_ctx *ctx)\n {\n \tctx->state = md5_iv;\n \tctx->bytecount = 0;\n }\ndiff --git a/lib/crypto/powerpc/md5-asm.S b/lib/crypto/powerpc/md5-asm.S\ndeleted file mode 100644\nindex fa6bc440cf4a..000000000000\n--- a/lib/crypto/powerpc/md5-asm.S\n+++ /dev/null\n@@ -1,235 +0,0 @@\n-/* SPDX-License-Identifier: GPL-2.0-or-later */\n-/*\n- * Fast MD5 implementation for PPC\n- *\n- * Copyright (c) 2015 Markus Stockhausen <stockhausen@collogia.de>\n- */\n-#include <asm/ppc_asm.h>\n-#include <asm/asm-offsets.h>\n-#include <asm/asm-compat.h>\n-\n-#define rHP\tr3\n-#define rWP\tr4\n-\n-#define rH0\tr0\n-#define rH1\tr6\n-#define rH2\tr7\n-#define rH3\tr5\n-\n-#define rW00\tr8\n-#define rW01\tr9\n-#define rW02\tr10\n-#define rW03\tr11\n-#define rW04\tr12\n-#define rW05\tr14\n-#define rW06\tr15\n-#define rW07\tr16\n-#define rW08\tr17\n-#define rW09\tr18\n-#define rW10\tr19\n-#define rW11\tr20\n-#define rW12\tr21\n-#define rW13\tr22\n-#define rW14\tr23\n-#define rW15\tr24\n-\n-#define rT0\tr25\n-#define rT1\tr26\n-\n-#define INITIALIZE \\\n-\tPPC_STLU r1,-INT_FRAME_SIZE(r1); \\\n-\tSAVE_GPRS(14, 26, r1)\t\t/* push registers onto stack\t*/\n-\n-#define FINALIZE \\\n-\tREST_GPRS(14, 26, r1);\t\t/* pop registers from stack\t*/ \\\n-\taddi\tr1,r1,INT_FRAME_SIZE\n-\n-#ifdef __BIG_ENDIAN__\n-#define LOAD_DATA(reg, off) \\\n-\tlwbrx\t\treg,0,rWP;\t/* load data\t\t\t*/\n-#define INC_PTR \\\n-\taddi\t\trWP,rWP,4;\t/* increment per word\t\t*/\n-#define NEXT_BLOCK\t\t\t/* nothing to do\t\t*/\n-#else\n-#define LOAD_DATA(reg, off) \\\n-\tlwz\t\treg,off(rWP);\t/* load data\t\t\t*/\n-#define INC_PTR\t\t\t\t/* nothing to do\t\t*/\n-#define NEXT_BLOCK \\\n-\taddi\t\trWP,rWP,64;\t/* increment per block\t\t*/\n-#endif\n-\n-#define R_00_15(a, b, c, d, w0, w1, p, q, off, k0h, k0l, k1h, k1l) \\\n-\tLOAD_DATA(w0, off)\t\t/*    W\t\t\t\t*/ \\\n-\tand\t\trT0,b,c;\t/* 1: f = b and c\t\t*/ \\\n-\tINC_PTR\t\t\t\t/*    ptr++\t\t\t*/ \\\n-\tandc\t\trT1,d,b;\t/* 1: f' = ~b and d\t\t*/ \\\n-\tLOAD_DATA(w1, off+4)\t\t/*    W\t\t\t\t*/ \\\n-\tor\t\trT0,rT0,rT1;\t/* 1: f = f or f'\t\t*/ \\\n-\taddi\t\tw0,w0,k0l;\t/* 1: wk = w + k\t\t*/ \\\n-\tadd\t\ta,a,rT0;\t/* 1: a = a + f\t\t\t*/ \\\n-\taddis\t\tw0,w0,k0h;\t/* 1: wk = w + k'\t\t*/ \\\n-\taddis\t\tw1,w1,k1h;\t/* 2: wk = w + k\t\t*/ \\\n-\tadd\t\ta,a,w0;\t\t/* 1: a = a + wk\t\t*/ \\\n-\taddi\t\tw1,w1,k1l;\t/* 2: wk = w + k'\t\t*/ \\\n-\trotrwi\t\ta,a,p;\t\t/* 1: a = a rotl x\t\t*/ \\\n-\tadd\t\td,d,w1;\t\t/* 2: a = a + wk\t\t*/ \\\n-\tadd\t\ta,a,b;\t\t/* 1: a = a + b\t\t\t*/ \\\n-\tand\t\trT0,a,b;\t/* 2: f = b and c\t\t*/ \\\n-\tandc\t\trT1,c,a;\t/* 2: f' = ~b and d\t\t*/ \\\n-\tor\t\trT0,rT0,rT1;\t/* 2: f = f or f'\t\t*/ \\\n-\tadd\t\td,d,rT0;\t/* 2: a = a + f\t\t\t*/ \\\n-\tINC_PTR\t\t\t\t/*    ptr++\t\t\t*/ \\\n-\trotrwi\t\td,d,q;\t\t/* 2: a = a rotl x\t\t*/ \\\n-\tadd\t\td,d,a;\t\t/* 2: a = a + b\t\t\t*/\n-\n-#define R_16_31(a, b, c, d, w0, w1, p, q, k0h, k0l, k1h, k1l) \\\n-\tandc\t\trT0,c,d;\t/* 1: f = c and ~d\t\t*/ \\\n-\tand\t\trT1,b,d;\t/* 1: f' = b and d\t\t*/ \\\n-\taddi\t\tw0,w0,k0l;\t/* 1: wk = w + k\t\t*/ \\\n-\tor\t\trT0,rT0,rT1;\t/* 1: f = f or f'\t\t*/ \\\n-\taddis\t\tw0,w0,k0h;\t/* 1: wk = w + k'\t\t*/ \\\n-\tadd\t\ta,a,rT0;\t/* 1: a = a + f\t\t\t*/ \\\n-\taddi\t\tw1,w1,k1l;\t/* 2: wk = w + k\t\t*/ \\\n-\tadd\t\ta,a,w0;\t\t/* 1: a = a + wk\t\t*/ \\\n-\taddis\t\tw1,w1,k1h;\t/* 2: wk = w + k'\t\t*/ \\\n-\tandc\t\trT0,b,c;\t/* 2: f = c and ~d\t\t*/ \\\n-\trotrwi\t\ta,a,p;\t\t/* 1: a = a rotl x\t\t*/ \\\n-\tadd\t\ta,a,b;\t\t/* 1: a = a + b\t\t\t*/ \\\n-\tadd\t\td,d,w1;\t\t/* 2: a = a + wk\t\t*/ \\\n-\tand\t\trT1,a,c;\t/* 2: f' = b and d\t\t*/ \\\n-\tor\t\trT0,rT0,rT1;\t/* 2: f = f or f'\t\t*/ \\\n-\tadd\t\td,d,rT0;\t/* 2: a = a + f\t\t\t*/ \\\n-\trotrwi\t\td,d,q;\t\t/* 2: a = a rotl x\t\t*/ \\\n-\tadd\t\td,d,a;\t\t/* 2: a = a +b\t\t\t*/\n-\n-#define R_32_47(a, b, c, d, w0, w1, p, q, k0h, k0l, k1h, k1l) \\\n-\txor\t\trT0,b,c;\t/* 1: f' = b xor c\t\t*/ \\\n-\taddi\t\tw0,w0,k0l;\t/* 1: wk = w + k\t\t*/ \\\n-\txor\t\trT1,rT0,d;\t/* 1: f = f xor f'\t\t*/ \\\n-\taddis\t\tw0,w0,k0h;\t/* 1: wk = w + k'\t\t*/ \\\n-\tadd\t\ta,a,rT1;\t/* 1: a = a + f\t\t\t*/ \\\n-\taddi\t\tw1,w1,k1l;\t/* 2: wk = w + k\t\t*/ \\\n-\tadd\t\ta,a,w0;\t\t/* 1: a = a + wk\t\t*/ \\\n-\taddis\t\tw1,w1,k1h;\t/* 2: wk = w + k'\t\t*/ \\\n-\trotrwi\t\ta,a,p;\t\t/* 1: a = a rotl x\t\t*/ \\\n-\tadd\t\td,d,w1;\t\t/* 2: a = a + wk\t\t*/ \\\n-\tadd\t\ta,a,b;\t\t/* 1: a = a + b\t\t\t*/ \\\n-\txor\t\trT1,rT0,a;\t/* 2: f = b xor f'\t\t*/ \\\n-\tadd\t\td,d,rT1;\t/* 2: a = a + f\t\t\t*/ \\\n-\trotrwi\t\td,d,q;\t\t/* 2: a = a rotl x\t\t*/ \\\n-\tadd\t\td,d,a;\t\t/* 2: a = a + b\t\t\t*/\n-\n-#define R_48_63(a, b, c, d, w0, w1, p, q, k0h, k0l, k1h, k1l) \\\n-\taddi\t\tw0,w0,k0l;\t/* 1: w = w + k\t\t\t*/ \\\n-\torc\t\trT0,b,d;\t/* 1: f = b or ~d\t\t*/ \\\n-\taddis\t\tw0,w0,k0h;\t/* 1: w = w + k'\t\t*/ \\\n-\txor\t\trT0,rT0,c;\t/* 1: f = f xor c\t\t*/ \\\n-\tadd\t\ta,a,w0;\t\t/* 1: a = a + wk\t\t*/ \\\n-\taddi\t\tw1,w1,k1l;\t/* 2: w = w + k\t\t\t*/ \\\n-\tadd\t\ta,a,rT0;\t/* 1: a = a + f\t\t\t*/ \\\n-\taddis\t\tw1,w1,k1h;\t/* 2: w = w + k'\t\t*/ \\\n-\trotrwi\t\ta,a,p;\t\t/* 1: a = a rotl x\t\t*/ \\\n-\tadd\t\ta,a,b;\t\t/* 1: a = a + b\t\t\t*/ \\\n-\torc\t\trT0,a,c;\t/* 2: f = b or ~d\t\t*/ \\\n-\tadd\t\td,d,w1;\t\t/* 2: a = a + wk\t\t*/ \\\n-\txor\t\trT0,rT0,b;\t/* 2: f = f xor c\t\t*/ \\\n-\tadd\t\td,d,rT0;\t/* 2: a = a + f\t\t\t*/ \\\n-\trotrwi\t\td,d,q;\t\t/* 2: a = a rotl x\t\t*/ \\\n-\tadd\t\td,d,a;\t\t/* 2: a = a + b\t\t\t*/\n-\n-_GLOBAL(ppc_md5_transform)\n-\tINITIALIZE\n-\n-\tmtctr\t\tr5\n-\tlwz\t\trH0,0(rHP)\n-\tlwz\t\trH1,4(rHP)\n-\tlwz\t\trH2,8(rHP)\n-\tlwz\t\trH3,12(rHP)\n-\n-ppc_md5_main:\n-\tR_00_15(rH0, rH1, rH2, rH3, rW00, rW01, 25, 20, 0,\n-\t\t0xd76b, -23432, 0xe8c8, -18602)\n-\tR_00_15(rH2, rH3, rH0, rH1, rW02, rW03, 15, 10, 8,\n-\t\t0x2420, 0x70db, 0xc1be, -12562)\n-\tR_00_15(rH0, rH1, rH2, rH3, rW04, rW05, 25, 20, 16,\n-\t\t0xf57c, 0x0faf, 0x4788, -14806)\n-\tR_00_15(rH2, rH3, rH0, rH1, rW06, rW07, 15, 10, 24,\n-\t\t0xa830, 0x4613, 0xfd47, -27391)\n-\tR_00_15(rH0, rH1, rH2, rH3, rW08, rW09, 25, 20, 32,\n-\t\t0x6981, -26408, 0x8b45,  -2129)\n-\tR_00_15(rH2, rH3, rH0, rH1, rW10, rW11, 15, 10, 40,\n-\t\t0xffff, 0x5bb1, 0x895d, -10306)\n-\tR_00_15(rH0, rH1, rH2, rH3, rW12, rW13, 25, 20, 48,\n-\t\t0x6b90, 0x1122, 0xfd98, 0x7193)\n-\tR_00_15(rH2, rH3, rH0, rH1, rW14, rW15, 15, 10, 56,\n-\t\t0xa679, 0x438e, 0x49b4, 0x0821)\n-\n-\tR_16_31(rH0, rH1, rH2, rH3, rW01, rW06, 27, 23,\n-\t\t0x0d56, 0x6e0c, 0x1810, 0x6d2d)\n-\tR_16_31(rH2, rH3, rH0, rH1, rW11, rW00, 18, 12,\n-\t\t0x9d02, -32109, 0x124c, 0x2332)\n-\tR_16_31(rH0, rH1, rH2, rH3, rW05, rW10, 27, 23,\n-\t\t0x8ea7, 0x4a33, 0x0245, -18270)\n-\tR_16_31(rH2, rH3, rH0, rH1, rW15, rW04, 18, 12,\n-\t\t0x8eee,  -8608, 0xf258,  -5095)\n-\tR_16_31(rH0, rH1, rH2, rH3, rW09, rW14, 27, 23,\n-\t\t0x969d, -10697, 0x1cbe, -15288)\n-\tR_16_31(rH2, rH3, rH0, rH1, rW03, rW08, 18, 12,\n-\t\t0x3317, 0x3e99, 0xdbd9, 0x7c15)\n-\tR_16_31(rH0, rH1, rH2, rH3, rW13, rW02, 27, 23,\n-\t\t0xac4b, 0x7772, 0xd8cf, 0x331d)\n-\tR_16_31(rH2, rH3, rH0, rH1, rW07, rW12, 18, 12,\n-\t\t0x6a28, 0x6dd8, 0x219a, 0x3b68)\n-\n-\tR_32_47(rH0, rH1, rH2, rH3, rW05, rW08, 28, 21,\n-\t\t0x29cb, 0x28e5, 0x4218,  -7788)\n-\tR_32_47(rH2, rH3, rH0, rH1, rW11, rW14, 16,  9,\n-\t\t0x473f, 0x06d1, 0x3aae, 0x3036)\n-\tR_32_47(rH0, rH1, rH2, rH3, rW01, rW04, 28, 21,\n-\t\t0xaea1, -15134, 0x640b, -11295)\n-\tR_32_47(rH2, rH3, rH0, rH1, rW07, rW10, 16,  9,\n-\t\t0x8f4c, 0x4887, 0xbc7c, -22499)\n-\tR_32_47(rH0, rH1, rH2, rH3, rW13, rW00, 28, 21,\n-\t\t0x7eb8, -27199, 0x00ea, 0x6050)\n-\tR_32_47(rH2, rH3, rH0, rH1, rW03, rW06, 16,  9,\n-\t\t0xe01a, 0x22fe, 0x4447, 0x69c5)\n-\tR_32_47(rH0, rH1, rH2, rH3, rW09, rW12, 28, 21,\n-\t\t0xb7f3, 0x0253, 0x59b1, 0x4d5b)\n-\tR_32_47(rH2, rH3, rH0, rH1, rW15, rW02, 16,  9,\n-\t\t0x4701, -27017, 0xc7bd, -19859)\n-\n-\tR_48_63(rH0, rH1, rH2, rH3, rW00, rW07, 26, 22,\n-\t\t0x0988,  -1462, 0x4c70, -19401)\n-\tR_48_63(rH2, rH3, rH0, rH1, rW14, rW05, 17, 11,\n-\t\t0xadaf,  -5221, 0xfc99, 0x66f7)\n-\tR_48_63(rH0, rH1, rH2, rH3, rW12, rW03, 26, 22,\n-\t\t0x7e80, -16418, 0xba1e, -25587)\n-\tR_48_63(rH2, rH3, rH0, rH1, rW10, rW01, 17, 11,\n-\t\t0x4130, 0x380d, 0xe0c5, 0x738d)\n-\tlwz\t\trW00,0(rHP)\n-\tR_48_63(rH0, rH1, rH2, rH3, rW08, rW15, 26, 22,\n-\t\t0xe837, -30770, 0xde8a, 0x69e8)\n-\tlwz\t\trW14,4(rHP)\n-\tR_48_63(rH2, rH3, rH0, rH1, rW06, rW13, 17, 11,\n-\t\t0x9e79, 0x260f, 0x256d, -27941)\n-\tlwz\t\trW12,8(rHP)\n-\tR_48_63(rH0, rH1, rH2, rH3, rW04, rW11, 26, 22,\n-\t\t0xab75, -20775, 0x4f9e, -28397)\n-\tlwz\t\trW10,12(rHP)\n-\tR_48_63(rH2, rH3, rH0, rH1, rW02, rW09, 17, 11,\n-\t\t0x662b, 0x7c56, 0x11b2, 0x0358)\n-\n-\tadd\t\trH0,rH0,rW00\n-\tstw\t\trH0,0(rHP)\n-\tadd\t\trH1,rH1,rW14\n-\tstw\t\trH1,4(rHP)\n-\tadd\t\trH2,rH2,rW12\n-\tstw\t\trH2,8(rHP)\n-\tadd\t\trH3,rH3,rW10\n-\tstw\t\trH3,12(rHP)\n-\tNEXT_BLOCK\n-\n-\tbdnz\t\tppc_md5_main\n-\n-\tFINALIZE\n-\tblr\ndiff --git a/lib/crypto/powerpc/md5.h b/lib/crypto/powerpc/md5.h\ndeleted file mode 100644\nindex 540b08e34d1d..000000000000\n--- a/lib/crypto/powerpc/md5.h\n+++ /dev/null\n@@ -1,12 +0,0 @@\n-/* SPDX-License-Identifier: GPL-2.0-or-later */\n-/*\n- * MD5 optimized for PowerPC\n- */\n-\n-void ppc_md5_transform(u32 *state, const u8 *data, size_t nblocks);\n-\n-static void md5_blocks(struct md5_block_state *state,\n-\t\t       const u8 *data, size_t nblocks)\n-{\n-\tppc_md5_transform(state->h, data, nblocks);\n-}\n",
    "prefixes": []
}