get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 2219628,
    "url": "http://patchwork.ozlabs.org/api/patches/2219628/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/linux-mtd/patch/20260403-winbond-v6-18-rc1-spi-nor-swp-v4-3-833dab5e7288@bootlin.com/",
    "project": {
        "id": 3,
        "url": "http://patchwork.ozlabs.org/api/projects/3/?format=api",
        "name": "Linux MTD development",
        "link_name": "linux-mtd",
        "list_id": "linux-mtd.lists.infradead.org",
        "list_email": "linux-mtd@lists.infradead.org",
        "web_url": null,
        "scm_url": null,
        "webscm_url": null,
        "list_archive_url": "",
        "list_archive_url_format": "",
        "commit_url_format": ""
    },
    "msgid": "<20260403-winbond-v6-18-rc1-spi-nor-swp-v4-3-833dab5e7288@bootlin.com>",
    "list_archive_url": null,
    "date": "2026-04-03T16:09:21",
    "name": "[v4,03/27] mtd: spi-nor: swp: Improve locking user experience",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "32beca4860235252b9e046de19647aa2e18301da",
    "submitter": {
        "id": 73368,
        "url": "http://patchwork.ozlabs.org/api/people/73368/?format=api",
        "name": "Miquel Raynal",
        "email": "miquel.raynal@bootlin.com"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/linux-mtd/patch/20260403-winbond-v6-18-rc1-spi-nor-swp-v4-3-833dab5e7288@bootlin.com/mbox/",
    "series": [
        {
            "id": 498652,
            "url": "http://patchwork.ozlabs.org/api/series/498652/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/linux-mtd/list/?series=498652",
            "date": "2026-04-03T16:09:18",
            "name": "mtd: spi-nor: Enhance software protection",
            "version": 4,
            "mbox": "http://patchwork.ozlabs.org/series/498652/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/2219628/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/2219628/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "\n <linux-mtd-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org>",
        "X-Original-To": "incoming@patchwork.ozlabs.org",
        "Delivered-To": "patchwork-incoming@legolas.ozlabs.org",
        "Authentication-Results": [
            "legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n secure) header.d=lists.infradead.org header.i=@lists.infradead.org\n header.a=rsa-sha256 header.s=bombadil.20210309 header.b=nUtUdGkI;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n unprotected) header.d=bootlin.com header.i=@bootlin.com header.a=rsa-sha256\n header.s=dkim header.b=yyYukdm8;\n\tdkim-atps=neutral",
            "legolas.ozlabs.org;\n spf=none (no SPF record) smtp.mailfrom=lists.infradead.org\n (client-ip=2607:7c80:54:3::133; helo=bombadil.infradead.org;\n envelope-from=linux-mtd-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org;\n receiver=patchwork.ozlabs.org)"
        ],
        "Received": [
            "from bombadil.infradead.org (bombadil.infradead.org\n [IPv6:2607:7c80:54:3::133])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fnNwN42FXz1yCs\n\tfor <incoming@patchwork.ozlabs.org>; Sat, 04 Apr 2026 03:09:56 +1100 (AEDT)",
            "from localhost ([::1] helo=bombadil.infradead.org)\n\tby bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux))\n\tid 1w8h5h-00000002Gh7-1NMa;\n\tFri, 03 Apr 2026 16:09:49 +0000",
            "from smtpout-04.galae.net ([185.171.202.116])\n\tby bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux))\n\tid 1w8h5d-00000002GYl-3Rpg\n\tfor linux-mtd@lists.infradead.org;\n\tFri, 03 Apr 2026 16:09:47 +0000",
            "from smtpout-01.galae.net (smtpout-01.galae.net [212.83.139.233])\n\tby smtpout-04.galae.net (Postfix) with ESMTPS id E7157C59F67;\n\tFri,  3 Apr 2026 16:10:14 +0000 (UTC)",
            "from mail.galae.net (mail.galae.net [212.83.136.155])\n\tby smtpout-01.galae.net (Postfix) with ESMTPS id EA8F4603C1;\n\tFri,  3 Apr 2026 16:09:42 +0000 (UTC)",
            "from [127.0.0.1] (localhost [127.0.0.1]) by localhost (Mailerdaemon)\n with ESMTPSA id F3AE3104500FB;\n\tFri,  3 Apr 2026 18:09:39 +0200 (CEST)"
        ],
        "DKIM-Signature": [
            "v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;\n\td=lists.infradead.org; s=bombadil.20210309; h=Sender:\n\tContent-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post:\n\tList-Archive:List-Unsubscribe:List-Id:Cc:To:In-Reply-To:References:Message-Id\n\t:MIME-Version:Subject:Date:From:Reply-To:Content-ID:Content-Description:\n\tResent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:\n\tList-Owner; bh=rAYpxVdDoLM90R2rQGJRDGAUhcd0daEnoNJup/t16GI=; b=nUtUdGkI8f5/Y1\n\tOcBk3mPi1YI2YAIJE/RYpagR5a8coHSK+tcAp3eaD677m7rNgKkabCMAAeX2xJxDToXjdXWCFa153\n\tiCXH/i1X9J36mckFi6OkIYja5XMqBZqVpgFYFv1sc93Lzc492/IJlhrixkfeVZ2L2k//Cv1qSm7tS\n\tl4st6qbY4qQ1N19aJZJVgXspKAccJBXTMCTx0YzHp3qtHiRvpDTV8Qg/Qd/2UFYGsbZdj6eCRVaIR\n\t+5uYKwnDee2mEuvcw04aM97TFmSetYkDy0ZQmqY2T0vATaykEUIIIO8q+WRTtwM3wRcIJ2ffD9UMJ\n\tfFvzddDjZwFLMA7mBGoQ==;",
            "v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=dkim;\n\tt=1775232582; h=from:subject:date:message-id:to:cc:mime-version:content-type:\n\t content-transfer-encoding:in-reply-to:references;\n\tbh=FOjmpf/BiPzAyc0p3HUqSMX9zMlXNwI7+2z6Kuibe7o=;\n\tb=yyYukdm86ZsAGlKG/3f3PQKPIfYDuOQx1VPnli+S74aXqfjp+2mQ6UJdTZrIw7f5QNqyg5\n\tmIBaOo+eM2CRlZuu25RWyN/8ozqLlk+5J3tDVYK5Q1/OtwfZUTiLVaeYyLIKG6pItD8dlF\n\tNgcpnYshN4V9VkyuV0dEWYBQ7mFQyUhs7OYcMl2IxBxlr56JhFCmWH3ATvDRVQc8whNV78\n\tOx4uaIbR40Low5OEyUCaXsP88triWvZ1obqchLLc0mtfQQV5MnvYiv4lDPVG/z1h6pxcWB\n\txdfeeEWalx9p4oJYuqgMsrN+zYk9GZ1QnUtt/WPsRjGpOI4/NF+Vadya2kOTwQ=="
        ],
        "From": "Miquel Raynal <miquel.raynal@bootlin.com>",
        "Date": "Fri, 03 Apr 2026 18:09:21 +0200",
        "Subject": "[PATCH v4 03/27] mtd: spi-nor: swp: Improve locking user\n experience",
        "MIME-Version": "1.0",
        "Message-Id": "\n <20260403-winbond-v6-18-rc1-spi-nor-swp-v4-3-833dab5e7288@bootlin.com>",
        "References": "\n <20260403-winbond-v6-18-rc1-spi-nor-swp-v4-0-833dab5e7288@bootlin.com>",
        "In-Reply-To": "\n <20260403-winbond-v6-18-rc1-spi-nor-swp-v4-0-833dab5e7288@bootlin.com>",
        "To": "Pratyush Yadav <pratyush@kernel.org>, Michael Walle <mwalle@kernel.org>,\n Takahiro Kuwano <takahiro.kuwano@infineon.com>,\n Richard Weinberger <richard@nod.at>, Vignesh Raghavendra <vigneshr@ti.com>,\n Jonathan Corbet <corbet@lwn.net>",
        "Cc": "Sean Anderson <sean.anderson@linux.dev>,\n Thomas Petazzoni <thomas.petazzoni@bootlin.com>,\n Steam Lin <STLin2@winbond.com>, linux-mtd@lists.infradead.org,\n linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org,\n Miquel Raynal <miquel.raynal@bootlin.com>, stable@kernel.org",
        "X-Mailer": "b4 0.14.3",
        "X-Last-TLS-Session-Version": "TLSv1.3",
        "X-CRM114-Version": "20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 ",
        "X-CRM114-CacheID": "sfid-20260403_090946_025940_BA2011A9 ",
        "X-CRM114-Status": "GOOD (  14.62  )",
        "X-Spam-Score": "-2.1 (--)",
        "X-Spam-Report": "Spam detection software,\n running on the system \"bombadil.infradead.org\",\n has NOT identified this incoming email as spam.  The original\n message has been attached to this so you can view it or label\n similar future email.  If you have any questions, see\n the administrator of that system for details.\n Content preview:  In the case of the first block being locked (or the few\n first\n    blocks),\n if the user want to fully unlock the device it has two possibilities:\n    - either it asks to unlock the entire device, and this work [...]\n Content analysis details:   (-2.1 points, 5.0 required)\n  pts rule name              description\n ---- ----------------------\n --------------------------------------------------\n  0.0 RCVD_IN_VALIDITY_SAFE_BLOCKED RBL: ADMINISTRATOR NOTICE: The query to\n                              Validity was blocked.  See\n                             https://knowledge.validity.com/hc/en-us/articles/20961730681243\n                              for more information.\n                             [185.171.202.116 listed in\n sa-accredit.habeas.com]\n  0.0 RCVD_IN_VALIDITY_CERTIFIED_BLOCKED RBL: ADMINISTRATOR NOTICE: The\n                             query to Validity was blocked.  See\n                             https://knowledge.validity.com/hc/en-us/articles/20961730681243\n                              for more information.\n                        [185.171.202.116 listed in\n sa-trusted.bondedsender.org]\n -0.0 SPF_HELO_PASS          SPF: HELO matches SPF record\n -0.0 SPF_PASS               SPF: sender matches SPF record\n  0.1 DKIM_SIGNED            Message has a DKIM or DK signature,\n not necessarily valid\n -0.1 DKIM_VALID_EF          Message has a valid DKIM or DK signature from\n                             envelope-from domain\n -0.1 DKIM_VALID             Message has at least one valid DKIM or DK\n signature\n -0.1 DKIM_VALID_AU          Message has a valid DKIM or DK signature from\n author's\n                             domain\n -1.9 BAYES_00               BODY: Bayes spam probability is 0 to 1%\n                             [score: 0.0000]\n  0.0 RCVD_IN_VALIDITY_RPBL_BLOCKED RBL: ADMINISTRATOR NOTICE: The query to\n                              Validity was blocked.  See\n                             https://knowledge.validity.com/hc/en-us/articles/20961730681243\n                              for more information.\n                           [185.171.202.116 listed in\n bl.score.senderscore.com]",
        "X-BeenThere": "linux-mtd@lists.infradead.org",
        "X-Mailman-Version": "2.1.34",
        "Precedence": "list",
        "List-Id": "Linux MTD discussion mailing list <linux-mtd.lists.infradead.org>",
        "List-Unsubscribe": "<http://lists.infradead.org/mailman/options/linux-mtd>,\n <mailto:linux-mtd-request@lists.infradead.org?subject=unsubscribe>",
        "List-Archive": "<http://lists.infradead.org/pipermail/linux-mtd/>",
        "List-Post": "<mailto:linux-mtd@lists.infradead.org>",
        "List-Help": "<mailto:linux-mtd-request@lists.infradead.org?subject=help>",
        "List-Subscribe": "<http://lists.infradead.org/mailman/listinfo/linux-mtd>,\n <mailto:linux-mtd-request@lists.infradead.org?subject=subscribe>",
        "Content-Type": "text/plain; charset=\"us-ascii\"",
        "Content-Transfer-Encoding": "7bit",
        "Sender": "\"linux-mtd\" <linux-mtd-bounces@lists.infradead.org>",
        "Errors-To": "linux-mtd-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org"
    },
    "content": "In the case of the first block being locked (or the few first blocks),\nif the user want to fully unlock the device it has two possibilities:\n- either it asks to unlock the entire device, and this works;\n- or it asks to unlock just the block(s) that are currently locked,\n  which fails.\n\nIt fails because the conditions \"can_be_top\" and \"can_be_bottom\" are\ntrue. Indeed, in this case, we unlock everything, so the TB bit does not\nmatter. However in the current implementation, use_top would be true (as\nthis is the favourite option) and lock_len, which in practice should be\nreduced down to 0, is set to \"nor->params->size - (ofs + len)\" which is\na positive number. This is wrong.\n\nAn easy way is to simply add an extra condition. In the unlock() path,\nif we can achieve the same result from both sides, it means we unlock\neverything and lock_len must simply be 0. A comment is added to clarify\nthat logic.\n\nFixes: 3dd8012a8eeb (\"mtd: spi-nor: add TB (Top/Bottom) protect support\")\nCc: stable@kernel.org\nSigned-off-by: Miquel Raynal <miquel.raynal@bootlin.com>\nReviewed-by: Michael Walle <mwalle@kernel.org>\n---\n drivers/mtd/spi-nor/swp.c | 11 +++++++++--\n 1 file changed, 9 insertions(+), 2 deletions(-)",
    "diff": "diff --git a/drivers/mtd/spi-nor/swp.c b/drivers/mtd/spi-nor/swp.c\nindex 9b07f83aeac7..1d50db1ef1a0 100644\n--- a/drivers/mtd/spi-nor/swp.c\n+++ b/drivers/mtd/spi-nor/swp.c\n@@ -280,8 +280,15 @@ static int spi_nor_sr_unlock(struct spi_nor *nor, loff_t ofs, u64 len)\n \t/* Prefer top, if both are valid */\n \tuse_top = can_be_top;\n \n-\t/* lock_len: length of region that should remain locked */\n-\tif (use_top)\n+\t/*\n+\t * lock_len: length of region that should remain locked.\n+\t *\n+\t * When can_be_top and can_be_bottom booleans are true, both adjacent\n+\t * regions are unlocked, thus the entire flash can be unlocked.\n+\t */\n+\tif (can_be_top && can_be_bottom)\n+\t\tlock_len = 0;\n+\telse if (use_top)\n \t\tlock_len = nor->params->size - (ofs + len);\n \telse\n \t\tlock_len = ofs;\n",
    "prefixes": [
        "v4",
        "03/27"
    ]
}