get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 2183202,
    "url": "http://patchwork.ozlabs.org/api/patches/2183202/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/linuxppc-dev/patch/20260112192035.10427-31-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": "<20260112192035.10427-31-ebiggers@kernel.org>",
    "list_archive_url": "https://lore.kernel.org/linuxppc-dev/20260112192035.10427-31-ebiggers@kernel.org/",
    "date": "2026-01-12T19:20:28",
    "name": "[v2,30/35] crypto: inside-secure - Use new AES library API",
    "commit_ref": null,
    "pull_url": null,
    "state": "handled-elsewhere",
    "archived": false,
    "hash": "f062d69a4e028dda8ba4a5b28754e59046365737",
    "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/20260112192035.10427-31-ebiggers@kernel.org/mbox/",
    "series": [
        {
            "id": 488089,
            "url": "http://patchwork.ozlabs.org/api/series/488089/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/linuxppc-dev/list/?series=488089",
            "date": "2026-01-12T19:19:58",
            "name": "AES library improvements",
            "version": 2,
            "mbox": "http://patchwork.ozlabs.org/series/488089/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/2183202/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/2183202/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "\n <linuxppc-dev+bounces-15568-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=JGAY+Svh;\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-15568-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=JGAY+Svh;\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)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4dqj5C3GwYz1xpY\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 13 Jan 2026 06:25:19 +1100 (AEDT)",
            "from boromir.ozlabs.org (localhost [127.0.0.1])\n\tby lists.ozlabs.org (Postfix) with ESMTP id 4dqj3C6bJVz30VL;\n\tTue, 13 Jan 2026 06:23:35 +1100 (AEDT)",
            "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)\n\t(No client certificate requested)\n\tby lists.ozlabs.org (Postfix) with ESMTPS id 4dqj3C0v5Cz30Pn\n\tfor <linuxppc-dev@lists.ozlabs.org>; Tue, 13 Jan 2026 06:23:35 +1100 (AEDT)",
            "from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])\n\tby tor.source.kernel.org (Postfix) with ESMTP id B8095600AE;\n\tMon, 12 Jan 2026 19:23:34 +0000 (UTC)",
            "by smtp.kernel.org (Postfix) with ESMTPSA id 0EEABC16AAE;\n\tMon, 12 Jan 2026 19:23:34 +0000 (UTC)"
        ],
        "ARC-Seal": "i=1; a=rsa-sha256; d=lists.ozlabs.org; s=201707; t=1768245815;\n\tcv=none;\n b=WubY1ycOD0DmgYZy17GzcN6oXCzTMtciy9zAzCq1qu5jRNGZhTO8JfqQdk98rHehgk0suNyI+JL5z3OaUIwp0UMT6ac3NZjHjyTmhzPmREw3rB3kL7ho9xax6S7inqhzbHL7ykSVs9M3nzeHhJPKMIUn7DLZy3hvCwHJ48liaopYJ8ES7XQuLOYaVUOZd9aBdxIBlOQNseQCTLM0XcNOwmvmhvH8LeWcgzHEJCgb1jw8Flcbw0/M/DAiuGU4yQHg6fcTcetJbFGeC6vP6hDzSq8fkZPOUQwwok4vk8t+Ma/cfxsZm1xWP2LtxabuJWst7k0t4++WWBqMecJ4xn1YZA==",
        "ARC-Message-Signature": "i=1; a=rsa-sha256; d=lists.ozlabs.org; s=201707;\n\tt=1768245815; c=relaxed/relaxed;\n\tbh=Dcl3UE3umGt/L3RjuznoXNLadh4OW0Sy9sJ/IsckP2I=;\n\th=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References:\n\t MIME-Version;\n b=OQu8aDRWsHa9XpPRKxTVdCOOmY9hRGbe2lYsi1qiZrN1uB1OOduiWZ9FwHLIyjOxhEevEULB58uYJN/NNB0ThFQI6YbYMWJOjrEdCBAwBgQTW/crRBlzriOB1Vy9X3rr9uSH2QZUTg8e3AZOk/EaAFrqPfy+BUzbpXzOlxtThtEvg786lkYFhFGQdwpi4E8M7Z661ClPS2hzgQvXcPdDEtR35CmvhSTZxhgmpOZBBiwkVGm/og4Oojvt7xiyICk69q+FlMoQAoS4BOmYoPO9/f8bNZ1/n3E2TkbGKjL13irSoDgpfbN8muFZUwjlhjVKGfSsXWmudahVpD8t3gPleQ==",
        "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=JGAY+Svh; 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=1768245814;\n\tbh=2yX1SAnAgKA7xbLH25xiQD42E7Ke51oKK+KgmtTec0s=;\n\th=From:To:Cc:Subject:Date:In-Reply-To:References:From;\n\tb=JGAY+SvhLYay2TgvMrif+ANkVrcmyC25n1wXaObgxPNPKPgRoxlQESdodwyIlX2O1\n\t Q7V+wgk/nfCRxUZyBdqtJpnEkJt9FZOZmB5On9rs+UHN8bgEQHxrp9E0K0lczA7srL\n\t 6eJ9tBw9XF+0C2b1m7/xwczEdD9UCDYr7j5hz8+y1XDiwjnH7f+y/CNqvw8lACWblO\n\t sYUtSTxUN4kpurSKzm1oIDucrgK73G2ZVnm6TjcmdGSV0lvQyV+gFkFKri+6p6T7cv\n\t NYuvcNGcXlDvOweSxvKR6G27MBmsS4uZWPAbKl9rJo5b+3MJJrWYwA+f9oIUhjDU+a\n\t /ht13DAlXfpLg==",
        "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\tlinux-arm-kernel@lists.infradead.org,\n\tlinuxppc-dev@lists.ozlabs.org,\n\tlinux-riscv@lists.infradead.org,\n\tlinux-s390@vger.kernel.org,\n\tsparclinux@vger.kernel.org,\n\tx86@kernel.org,\n\tHolger Dengler <dengler@linux.ibm.com>,\n\tHarald Freudenberger <freude@linux.ibm.com>,\n\tEric Biggers <ebiggers@kernel.org>",
        "Subject": "[PATCH v2 30/35] crypto: inside-secure - Use new AES library API",
        "Date": "Mon, 12 Jan 2026 11:20:28 -0800",
        "Message-ID": "<20260112192035.10427-31-ebiggers@kernel.org>",
        "X-Mailer": "git-send-email 2.52.0",
        "In-Reply-To": "<20260112192035.10427-1-ebiggers@kernel.org>",
        "References": "<20260112192035.10427-1-ebiggers@kernel.org>",
        "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.2 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED,\n\tDKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS\n\tautolearn=disabled version=4.0.1 OzLabs 8",
        "X-Spam-Checker-Version": "SpamAssassin 4.0.1 (2024-03-25) on lists.ozlabs.org"
    },
    "content": "Switch from the old AES library functions (which use struct\ncrypto_aes_ctx) to the new ones (which use struct aes_enckey).  This\neliminates the unnecessary computation and caching of the decryption\nround keys.  The new AES en/decryption functions are also much faster\nand use AES instructions when supported by the CPU.\n\nNote that in addition to the change in the key preparation function and\nthe key struct type itself, the change in the type of the key struct\nresults in aes_encrypt() (which is temporarily a type-generic macro)\ncalling the new encryption function rather than the old one.\n\nThis driver used crypto_aes_ctx::key_enc, but only to access the copy of\nthe raw key that is stored at the beginning of the expanded key.  To\neliminate the dependency on this field, instead just access the raw key\ndirectly, which is already available in the relevant functions.\n\nAcked-by: Ard Biesheuvel <ardb@kernel.org>\nSigned-off-by: Eric Biggers <ebiggers@kernel.org>\n---\n drivers/crypto/inside-secure/safexcel_cipher.c | 12 +++++-------\n drivers/crypto/inside-secure/safexcel_hash.c   | 14 +++++++-------\n 2 files changed, 12 insertions(+), 14 deletions(-)",
    "diff": "diff --git a/drivers/crypto/inside-secure/safexcel_cipher.c b/drivers/crypto/inside-secure/safexcel_cipher.c\nindex 919e5a2cab95..27b180057417 100644\n--- a/drivers/crypto/inside-secure/safexcel_cipher.c\n+++ b/drivers/crypto/inside-secure/safexcel_cipher.c\n@@ -2505,31 +2505,29 @@ static int safexcel_aead_gcm_setkey(struct crypto_aead *ctfm, const u8 *key,\n \t\t\t\t    unsigned int len)\n {\n \tstruct crypto_tfm *tfm = crypto_aead_tfm(ctfm);\n \tstruct safexcel_cipher_ctx *ctx = crypto_tfm_ctx(tfm);\n \tstruct safexcel_crypto_priv *priv = ctx->base.priv;\n-\tstruct crypto_aes_ctx aes;\n+\tstruct aes_enckey aes;\n \tu32 hashkey[AES_BLOCK_SIZE >> 2];\n \tint ret, i;\n \n-\tret = aes_expandkey(&aes, key, len);\n-\tif (ret) {\n-\t\tmemzero_explicit(&aes, sizeof(aes));\n+\tret = aes_prepareenckey(&aes, key, len);\n+\tif (ret)\n \t\treturn ret;\n-\t}\n \n \tif (priv->flags & EIP197_TRC_CACHE && ctx->base.ctxr_dma) {\n \t\tfor (i = 0; i < len / sizeof(u32); i++) {\n-\t\t\tif (le32_to_cpu(ctx->key[i]) != aes.key_enc[i]) {\n+\t\t\tif (ctx->key[i] != get_unaligned((__le32 *)key + i)) {\n \t\t\t\tctx->base.needs_inv = true;\n \t\t\t\tbreak;\n \t\t\t}\n \t\t}\n \t}\n \n \tfor (i = 0; i < len / sizeof(u32); i++)\n-\t\tctx->key[i] = cpu_to_le32(aes.key_enc[i]);\n+\t\tctx->key[i] = get_unaligned((__le32 *)key + i);\n \n \tctx->key_len = len;\n \n \t/* Compute hash key by encrypting zeroes with cipher key */\n \tmemset(hashkey, 0, AES_BLOCK_SIZE);\ndiff --git a/drivers/crypto/inside-secure/safexcel_hash.c b/drivers/crypto/inside-secure/safexcel_hash.c\nindex ef0ba4832928..e534b7a200cf 100644\n--- a/drivers/crypto/inside-secure/safexcel_hash.c\n+++ b/drivers/crypto/inside-secure/safexcel_hash.c\n@@ -28,11 +28,11 @@ struct safexcel_ahash_ctx {\n \tbool cbcmac;\n \tbool do_fallback;\n \tbool fb_init_done;\n \tbool fb_do_setkey;\n \n-\tstruct crypto_aes_ctx *aes;\n+\tstruct aes_enckey *aes;\n \tstruct crypto_ahash *fback;\n \tstruct crypto_shash *shpre;\n \tstruct shash_desc *shdesc;\n };\n \n@@ -1974,11 +1974,11 @@ static int safexcel_xcbcmac_setkey(struct crypto_ahash *tfm, const u8 *key,\n {\n \tstruct safexcel_ahash_ctx *ctx = crypto_tfm_ctx(crypto_ahash_tfm(tfm));\n \tu32 key_tmp[3 * AES_BLOCK_SIZE / sizeof(u32)];\n \tint ret, i;\n \n-\tret = aes_expandkey(ctx->aes, key, len);\n+\tret = aes_prepareenckey(ctx->aes, key, len);\n \tif (ret)\n \t\treturn ret;\n \n \t/* precompute the XCBC key material */\n \taes_encrypt(ctx->aes, (u8 *)key_tmp + 2 * AES_BLOCK_SIZE,\n@@ -1988,13 +1988,13 @@ static int safexcel_xcbcmac_setkey(struct crypto_ahash *tfm, const u8 *key,\n \taes_encrypt(ctx->aes, (u8 *)key_tmp + AES_BLOCK_SIZE,\n \t\t    \"\\x3\\x3\\x3\\x3\\x3\\x3\\x3\\x3\\x3\\x3\\x3\\x3\\x3\\x3\\x3\\x3\");\n \tfor (i = 0; i < 3 * AES_BLOCK_SIZE / sizeof(u32); i++)\n \t\tctx->base.ipad.word[i] = swab32(key_tmp[i]);\n \n-\tret = aes_expandkey(ctx->aes,\n-\t\t\t    (u8 *)key_tmp + 2 * AES_BLOCK_SIZE,\n-\t\t\t    AES_MIN_KEY_SIZE);\n+\tret = aes_prepareenckey(ctx->aes,\n+\t\t\t\t(u8 *)key_tmp + 2 * AES_BLOCK_SIZE,\n+\t\t\t\tAES_MIN_KEY_SIZE);\n \tif (ret)\n \t\treturn ret;\n \n \tctx->alg    = CONTEXT_CONTROL_CRYPTO_ALG_XCBC128;\n \tctx->key_sz = AES_MIN_KEY_SIZE + 2 * AES_BLOCK_SIZE;\n@@ -2060,16 +2060,16 @@ static int safexcel_cmac_setkey(struct crypto_ahash *tfm, const u8 *key,\n \tu64 _const[2];\n \tu8 msb_mask, gfmask;\n \tint ret, i;\n \n \t/* precompute the CMAC key material */\n-\tret = aes_expandkey(ctx->aes, key, len);\n+\tret = aes_prepareenckey(ctx->aes, key, len);\n \tif (ret)\n \t\treturn ret;\n \n \tfor (i = 0; i < len / sizeof(u32); i++)\n-\t\tctx->base.ipad.word[i + 8] = swab32(ctx->aes->key_enc[i]);\n+\t\tctx->base.ipad.word[i + 8] = get_unaligned_be32(&key[4 * i]);\n \n \t/* code below borrowed from crypto/cmac.c */\n \t/* encrypt the zero block */\n \tmemset(consts, 0, AES_BLOCK_SIZE);\n \taes_encrypt(ctx->aes, (u8 *)consts, (u8 *)consts);\n",
    "prefixes": [
        "v2",
        "30/35"
    ]
}