get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 2202912,
    "url": "http://patchwork.ozlabs.org/api/patches/2202912/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/intel-wired-lan/patch/20260302011159.61778-2-ynorov@nvidia.com/",
    "project": {
        "id": 46,
        "url": "http://patchwork.ozlabs.org/api/projects/46/?format=api",
        "name": "Intel Wired Ethernet development",
        "link_name": "intel-wired-lan",
        "list_id": "intel-wired-lan.osuosl.org",
        "list_email": "intel-wired-lan@osuosl.org",
        "web_url": "",
        "scm_url": "",
        "webscm_url": "",
        "list_archive_url": "",
        "list_archive_url_format": "",
        "commit_url_format": ""
    },
    "msgid": "<20260302011159.61778-2-ynorov@nvidia.com>",
    "list_archive_url": null,
    "date": "2026-03-02T01:11:55",
    "name": "[v2,1/4] bitmap: introduce bitmap_weighted_xor()",
    "commit_ref": null,
    "pull_url": null,
    "state": "under-review",
    "archived": false,
    "hash": "cd6002fe8dc43d77b0da16b9f3f9a218a2b3f36c",
    "submitter": {
        "id": 92516,
        "url": "http://patchwork.ozlabs.org/api/people/92516/?format=api",
        "name": "Yury Norov",
        "email": "ynorov@nvidia.com"
    },
    "delegate": {
        "id": 109701,
        "url": "http://patchwork.ozlabs.org/api/users/109701/?format=api",
        "username": "anguy11",
        "first_name": "Anthony",
        "last_name": "Nguyen",
        "email": "anthony.l.nguyen@intel.com"
    },
    "mbox": "http://patchwork.ozlabs.org/project/intel-wired-lan/patch/20260302011159.61778-2-ynorov@nvidia.com/mbox/",
    "series": [
        {
            "id": 493940,
            "url": "http://patchwork.ozlabs.org/api/series/493940/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/intel-wired-lan/list/?series=493940",
            "date": "2026-03-02T01:11:54",
            "name": "ice: use better bitmap API",
            "version": 2,
            "mbox": "http://patchwork.ozlabs.org/series/493940/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/2202912/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/2202912/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<intel-wired-lan-bounces@osuosl.org>",
        "X-Original-To": [
            "incoming@patchwork.ozlabs.org",
            "intel-wired-lan@lists.osuosl.org"
        ],
        "Delivered-To": [
            "patchwork-incoming@legolas.ozlabs.org",
            "intel-wired-lan@lists.osuosl.org"
        ],
        "Authentication-Results": [
            "legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=osuosl.org header.i=@osuosl.org header.a=rsa-sha256\n header.s=default header.b=oburD2cU;\n\tdkim-atps=neutral",
            "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=osuosl.org\n (client-ip=2605:bc80:3010::138; helo=smtp1.osuosl.org;\n envelope-from=intel-wired-lan-bounces@osuosl.org;\n receiver=patchwork.ozlabs.org)"
        ],
        "Received": [
            "from smtp1.osuosl.org (smtp1.osuosl.org [IPv6:2605:bc80:3010::138])\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 4fPLWN34H1z1xy9\n\tfor <incoming@patchwork.ozlabs.org>; Mon, 02 Mar 2026 12:12:15 +1100 (AEDT)",
            "from localhost (localhost [127.0.0.1])\n\tby smtp1.osuosl.org (Postfix) with ESMTP id 861BD82865;\n\tMon,  2 Mar 2026 01:12:13 +0000 (UTC)",
            "from smtp1.osuosl.org ([127.0.0.1])\n by localhost (smtp1.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP\n id VqIoqkS5XObR; Mon,  2 Mar 2026 01:12:11 +0000 (UTC)",
            "from lists1.osuosl.org (lists1.osuosl.org [140.211.166.142])\n\tby smtp1.osuosl.org (Postfix) with ESMTP id 8669F82896;\n\tMon,  2 Mar 2026 01:12:11 +0000 (UTC)",
            "from smtp4.osuosl.org (smtp4.osuosl.org [IPv6:2605:bc80:3010::137])\n by lists1.osuosl.org (Postfix) with ESMTP id AA031231\n for <intel-wired-lan@lists.osuosl.org>; Mon,  2 Mar 2026 01:12:10 +0000 (UTC)",
            "from localhost (localhost [127.0.0.1])\n by smtp4.osuosl.org (Postfix) with ESMTP id A62FB40A57\n for <intel-wired-lan@lists.osuosl.org>; Mon,  2 Mar 2026 01:12:09 +0000 (UTC)",
            "from smtp4.osuosl.org ([127.0.0.1])\n by localhost (smtp4.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP\n id 7k0Chso_cfDW for <intel-wired-lan@lists.osuosl.org>;\n Mon,  2 Mar 2026 01:12:08 +0000 (UTC)",
            "from CY3PR05CU001.outbound.protection.outlook.com\n (mail-westcentralusazon11013059.outbound.protection.outlook.com\n [40.93.201.59])\n by smtp4.osuosl.org (Postfix) with ESMTPS id 8599B40A77\n for <intel-wired-lan@lists.osuosl.org>; Mon,  2 Mar 2026 01:12:08 +0000 (UTC)",
            "from PH0PR12MB8800.namprd12.prod.outlook.com (2603:10b6:510:26f::12)\n by PH8PR12MB7184.namprd12.prod.outlook.com (2603:10b6:510:227::14)\n with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.22; Mon, 2 Mar\n 2026 01:12:05 +0000",
            "from PH0PR12MB8800.namprd12.prod.outlook.com\n ([fe80::f79d:ddc5:2ad7:762d]) by PH0PR12MB8800.namprd12.prod.outlook.com\n ([fe80::f79d:ddc5:2ad7:762d%4]) with mapi id 15.20.9654.015; Mon, 2 Mar 2026\n 01:12:05 +0000"
        ],
        "X-Virus-Scanned": [
            "amavis at osuosl.org",
            "amavis at osuosl.org"
        ],
        "X-Comment": "SPF check N/A for local connections - client-ip=140.211.166.142;\n helo=lists1.osuosl.org; envelope-from=intel-wired-lan-bounces@osuosl.org;\n receiver=<UNKNOWN> ",
        "DKIM-Filter": [
            "OpenDKIM Filter v2.11.0 smtp1.osuosl.org 8669F82896",
            "OpenDKIM Filter v2.11.0 smtp4.osuosl.org 8599B40A77"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=osuosl.org;\n\ts=default; t=1772413931;\n\tbh=XXdoeZXUo11GbYcgW9+O9sb+qIeVeFihPLc+0pKtR/s=;\n\th=To:Cc:Date:In-Reply-To:References:Subject:List-Id:\n\t List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe:\n\t From:Reply-To:From;\n\tb=oburD2cUSwHkXsFILaY1GCbQAh3SLr9pJ/QMj5fOobOOMEt0Xe3pt8INlNlPQ7Y3D\n\t k8gRFw1BvF2EAAkBfd/DX/BQCwyNhhVj3TB2xyaekCb6dGsIdcuWIGkSahAZOyPnz/\n\t UsSsImsjdOVz6z+JRsbGBkLJNjY3XxaKrjm0MQRTOU07SWmyXckqowpUtv6aXHQ0+V\n\t N2xOnNxMGyO4zv3vkKSz7oEbDaxKhf+qPL2hnhDlgUrA+EzkgZmjq1GRsqRVg7jJie\n\t OMR6lsiAffxOJPNK0xiut4kaKdjq/6Fw2vBFZHzqz0ShJDV0/pGIv5tblONxWdj7wg\n\t sr3VIO7O1VQMQ==",
        "Received-SPF": "Pass (mailfrom) identity=mailfrom; client-ip=40.93.201.59;\n helo=cy3pr05cu001.outbound.protection.outlook.com;\n envelope-from=ynorov@nvidia.com; receiver=<UNKNOWN>",
        "DMARC-Filter": "OpenDMARC Filter v1.4.2 smtp4.osuosl.org 8599B40A77",
        "ARC-Seal": "i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=YU9NNPalVVeHpRbrC+wsFkMiuuwvOC06gbV86bJTiRV0fxFt1gSLT9P75eczTB5xAwPtVS3kQVyiAWJvtH2AAyKPW/PQHDVpNlkgz7mFsMZec/rMrjFKQfrS1Mki6LvCLbWnEyVHoyIcRVovUxo9OJfoaGubgKRvXNd5DhSA/YPsvGu190ucomtUmgWNgJ5/2BP49ZgERfbAingFc3Bk1zo+a5meJfTvlXuJZaDkYYHznDW5QW2BS86ev/SGM46uIUZS9jhgQmF2jv7SEMwUDZmkfqHzEf4YAcCAvd5Rf8ySvVfbXTUBSKQW2EyzukTTwWi3l076rFMB5PklqnTBtw==",
        "ARC-Message-Signature": "i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector10001;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;\n bh=XXdoeZXUo11GbYcgW9+O9sb+qIeVeFihPLc+0pKtR/s=;\n b=Vown2QzSlUnQmVEtmdnFDXkV4f5gNp4xyHCiJmicj8aE80004/OS4lvnozncIA3U7Y0/jXBNWQdjSpM7WAQDr8GALlT0tulqmWc8YmKl5ZnuMaFMB310pYb7uoOng/gnlzcRS0HAIJzW2MSSk56cuytiKR3UTHFtLy5I8uM7KEth2IEl+HUKRej/SEvr3Mf0lU5Y+twZ0ygn83k6wtkr9AN1rop9CRLm5tu1ElmGA4JWVImnJqcQxz5JrR6EKXivkGz5DKDeftzFUDot2RBxC8X5XfL/fDI6xP4zhVWukdl2YER9KGbCY5idDF1QYVUa3Fe3wf2weH/vnzYb8BXfFg==",
        "ARC-Authentication-Results": "i=1; mx.microsoft.com 1; spf=pass\n smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com;\n dkim=pass header.d=nvidia.com; arc=none",
        "To": "Tony Nguyen <anthony.l.nguyen@intel.com>,\n \"David S. Miller\" <davem@davemloft.net>,\n =?utf-8?q?Thomas_Hellstr=C3=B6m?= <thomas.hellstrom@linux.intel.com>,\n Andrew Lunn <andrew+netdev@lunn.ch>,\n Andrew Morton <akpm@linux-foundation.org>, David Airlie <airlied@gmail.com>,\n Eric Dumazet <edumazet@google.com>, Jakub Kicinski <kuba@kernel.org>,\n Matthew Brost <matthew.brost@intel.com>, Paolo Abeni <pabeni@redhat.com>,\n Przemek Kitszel <przemyslaw.kitszel@intel.com>,\n Rodrigo Vivi <rodrigo.vivi@intel.com>, Simona Vetter <simona@ffwll.ch>,\n Yury Norov <yury.norov@gmail.com>,\n Rasmus Villemoes <linux@rasmusvillemoes.dk>, dri-devel@lists.freedesktop.org,\n intel-xe@lists.freedesktop.org, linux-kernel@vger.kernel.org,\n netdev@vger.kernel.org, intel-wired-lan@lists.osuosl.org",
        "Cc": "Yury Norov <ynorov@nvidia.com>, Simon Horman <horms@kernel.org>,\n David Laight <david.laight.linux@gmail.com>",
        "Date": "Sun,  1 Mar 2026 20:11:55 -0500",
        "Message-ID": "<20260302011159.61778-2-ynorov@nvidia.com>",
        "X-Mailer": "git-send-email 2.43.0",
        "In-Reply-To": "<20260302011159.61778-1-ynorov@nvidia.com>",
        "References": "<20260302011159.61778-1-ynorov@nvidia.com>",
        "Content-Transfer-Encoding": "8bit",
        "Content-Type": "text/plain",
        "X-ClientProxiedBy": "BN9PR03CA0141.namprd03.prod.outlook.com\n (2603:10b6:408:fe::26) To PH0PR12MB8800.namprd12.prod.outlook.com\n (2603:10b6:510:26f::12)",
        "MIME-Version": "1.0",
        "X-MS-PublicTrafficType": "Email",
        "X-MS-TrafficTypeDiagnostic": "PH0PR12MB8800:EE_|PH8PR12MB7184:EE_",
        "X-MS-Office365-Filtering-Correlation-Id": "1480c59a-7de4-4fe6-14cb-08de77f8b783",
        "X-MS-Exchange-SenderADCheck": "1",
        "X-MS-Exchange-AntiSpam-Relay": "0",
        "X-Microsoft-Antispam": "BCL:0;\n ARA:13230040|366016|1800799024|10070799003|376014|7416014|921020;",
        "X-Microsoft-Antispam-Message-Info": "\n bFCYY2D0QCm7JzyyrsCGEiKrJAZDt2R+snq/uQg/GkndWIxPxTayJTpiKxLSsrP6mkQt2A3iv1jIfJ3HIfiTeMMGpRIaBSiQRLtQjckDsjc/ighA+FpdXSvhqyL67SMQ7oCmF1Wgma3n4xia1EL4E5kixHdTnHCV8cPdgfy5HeiREGOkCVWWeZe02G+JbnGRmlEgiLdapJCVa/svOY0oXjSk0ght0cO8YLTlSlQZp/9zBk2aTAH0IUJLWkLaZcTWOH7V55QflD7T0EWP7OcRrccQ1Qzq/qRq3VVmMPonlwea8FPbUb/rp7EOkCBZxiLXotxHok55Mj8pVB8ayaSlpgOfnGOMC4GJaeuMEZ1l8zTcaoP8vMqSqoEJTxPc9oUjKUhaIEVuTInilTsc/Mra8Ntgj/4QHvSpbP6i8C2AMpXhqfd91lQsJIMuxuI9C/qoh8pRCV+Txpt+5OViJPuTG80ACWCmL/nLPGjtfwVADsP02JIS9OHI/pb1+D0CmeXJZH8bzu9KWE2CjoZN6VVKboVDRdR1qjs55dXRiPGGn0bvfjQVEJuhlOLq/NZ3FzYtRHRwRWiNk1w48GfJeq3UNjbakStYfoNuylVKlb9gM62b9j/fIL6N9SiRMm5tWTuD2HtIBWX+KIpbqDjO+qwOLwWXU7LV25Y4YHTYpkVDE3zF7kV8qM9LfFLeMsEGkRzRk2VP3wXwDAvDnNXMvD/tpbcTGcSj8fmhwMGCOAM14yqklVXHyr9Z0yhkMt6dyDJrViewf0MjG1yBWuHyorj88Q==",
        "X-Forefront-Antispam-Report": "CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;\n IPV:NLI; SFV:NSPM; H:PH0PR12MB8800.namprd12.prod.outlook.com; PTR:; CAT:NONE;\n SFS:(13230040)(366016)(1800799024)(10070799003)(376014)(7416014)(921020);\n DIR:OUT; SFP:1101;",
        "X-MS-Exchange-AntiSpam-MessageData-ChunkCount": "1",
        "X-MS-Exchange-AntiSpam-MessageData-0": "\n pJ9Op1TpW5T4OHGrN/iibjwC4AIF6soHn2hyZG9GaeWjw8FUEHXxrwdtaBZp1Qyq01Ujjz8M9Q8249gXhiWIAvN7leURrHftMmxNmhuAi44rjx0F8cph/V6vDjPud0MfgGZGizgUZC/3rZv7vMD3LmBZPyw9wjMPtU7GyATApTTxI0sKPX1Sb4ha4iaitnH5uvYiL2IuM7DrYEf84qob5f/fCEvOUQl+8EXXcWJcrWH6O2EhD1Ry6oV7EwqsE+4eQerilie/tbiS00npO+Gv0SnB89Dz06W2a9s/63kZFMvymU9l23IdLA+9oaqhDkpvw573BUbEnTDB1b/5yk+YmaNJ3XN0LbQMWmLY/iQbQmeMPtfHzrwrSsKCYRkm5B+txBGInOU0bnAHoWWhXuR7awTMECi8scjIgBqA1ivNGGTC4EygxbRc9s3jDL1aZrq+mFf4ohOiRA1hWYOuWR0QT0kSx20T6BRQX09/j08osK4385fAS69X92D+eEayxX18qkCdcEVUtXJYjCT3YBsJXnq+jH1yG+HBETtkE0E75upA1DVpTotf+1g7JS1YwTjMFFCYyG2QNbd0FYdwI0r0qSdJ7s0PD0QSaft42YOLizA4zhIVeBAFA8GGjQbA5pdw1/h5/tekZyp3QTmzeAkIQFc1THB6uZ8+wEQF0Jqkmd565Is8QOSIYjEBJO8D8XaDXhOw2Hil7EjG5eo8n6F4r3aXXof7XulbYzKCg7iRWy93/qDEcgbx9ZjSS0RRQMxWN4oxl7vsoWXmQFOhFCWO4XlLNnHb6yutV71sWtyo5iIzjQNDfibm/IY8WJkazW3WNGIvnSTwPrcNBep4g+xM0u6QAy9hsJs958/a3kV0KFtG1oqQrtXY2NRy4K6QXh31HrHx99UPS3xJWZskXPEKi8qtpJAczt7N36oFcfz/+DgI3RJLykLbl7uP6mvtfl5KPT80x+TkNuWMtj7lc9N4zPrNrs+RADebwJEjpFWCvg6fOQLCOtLynLz/qT1Bo6kixC3WSoAtOruqhdt5kXfShYN04fdO80RT24gGj8h3tiTB+GtaWqAPP31KoL6k76DMzsU2CjtxgPKreFL3sKCbGuuhDPvoPAYvJITfuFZ9eCcnCkKy68caJ/hqsvWyAcLmZ83gDnoqu/fLM8CDoMo8TXa0O7j+N3oKlpI4zN7ZXYMsIgtfQ0p0VARqrkyexBr9PVr6yI7UxFA4pSVv8UnJkbUM6Mt7ksJR1x2MW7zznWJ8MTC6HK5v1QvRPNxnWhA6rvYdsrb/XAv0RhjL/cVRl7fi9uCGs/vcE38eEoACZgQNzx9mcslSvxNWqGo/R4HeZAKF7+AvyKadAeC57okGT/pfgiXcCISmMN6VnZm1SNRvgQN8olO/Zq3G77TzH+d/d10k/UWbK1USx8lUCqCxJ+zwscxVfSykjv97wGVglbOY7msrm5GUceHnGPDwPuxWQqyKYNsbd8hv8bRTDgMojNmGMDe/z3YQtvuJMSN618XMg/TwPm+TxQfZl5aJpGpxSD2uUdkCyVI8D8IYh5djYhTeQxtBuwrYc/duFMkc7g3J4+zhJxVOnrYUXkYRO8d7hXHvfZQTx5jknfngah5oETd7h3oTOD9KfRLA73U8WjQ3kx56MW1NBxUH6QMP0AXR0OMvT5AVbyxsIV6nteG1i54XdV59Xb+JewKA01XAmgR1pzVsgG5W5pjsN0trpQSqxV8J27lAvlEg050Bh+7MmXmlw9ZE1akWV2BwYLr+lad2+SkVbfMHh5U8CI5wgLrV",
        "X-OriginatorOrg": "Nvidia.com",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n 1480c59a-7de4-4fe6-14cb-08de77f8b783",
        "X-MS-Exchange-CrossTenant-AuthSource": "PH0PR12MB8800.namprd12.prod.outlook.com",
        "X-MS-Exchange-CrossTenant-AuthAs": "Internal",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "02 Mar 2026 01:12:04.9754 (UTC)",
        "X-MS-Exchange-CrossTenant-FromEntityHeader": "Hosted",
        "X-MS-Exchange-CrossTenant-Id": "43083d15-7273-40c1-b7db-39efd9ccc17a",
        "X-MS-Exchange-CrossTenant-MailboxType": "HOSTED",
        "X-MS-Exchange-CrossTenant-UserPrincipalName": "\n /ifmHJS3s6pdnDB+VahUQ+LPpWzzEq/usT0aUJOhuxyCNb5OThSvwwm5dSTXdHyUqK4ql79FFBqdMq8ub1wZ/g==",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "PH8PR12MB7184",
        "X-Mailman-Original-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=Nvidia.com; s=selector2;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=XXdoeZXUo11GbYcgW9+O9sb+qIeVeFihPLc+0pKtR/s=;\n b=K8EI44zN439ma9xFJBE2Dx8cORuR0sYkIHL1IQFsbm9wkwCqwTCNhCdY8wj3cj95YHavQrXa20unhaVW+4CH58FgjuGuIP3k/ecwkpZhRApFF1RrCMb15rnzB6zdqQ+icvM7sQHv0cdNznfVpIE8noO0KAFl+CjirBy+6VdVweDJvz3jj2x1ZWY4bkRJh+0p6J/bvIXH7TLGs2mUYtGoz7sdyNekVhizos6MWx4daRStUd6hFm/oHbV7fdcrDVPQEMg9c0r7GzuRuPZfrNT+ckdnKXbgoGWDhI9Nchs2EFhoSA7aKLdjzpdU/696l40t4cul3Ir81E6SmFxUJXiCeA==",
        "X-Mailman-Original-Authentication-Results": [
            "smtp4.osuosl.org;\n dmarc=pass (p=reject dis=none)\n header.from=nvidia.com",
            "smtp4.osuosl.org;\n dkim=pass (2048-bit key,\n unprotected) header.d=Nvidia.com header.i=@Nvidia.com header.a=rsa-sha256\n header.s=selector2 header.b=K8EI44zN",
            "dkim=none (message not signed)\n header.d=none;dmarc=none action=none header.from=nvidia.com;"
        ],
        "Subject": "[Intel-wired-lan] [PATCH v2 1/4] bitmap: introduce\n bitmap_weighted_xor()",
        "X-BeenThere": "intel-wired-lan@osuosl.org",
        "X-Mailman-Version": "2.1.30",
        "Precedence": "list",
        "List-Id": "Intel Wired Ethernet Linux Kernel Driver Development\n <intel-wired-lan.osuosl.org>",
        "List-Unsubscribe": "<https://lists.osuosl.org/mailman/options/intel-wired-lan>,\n <mailto:intel-wired-lan-request@osuosl.org?subject=unsubscribe>",
        "List-Archive": "<http://lists.osuosl.org/pipermail/intel-wired-lan/>",
        "List-Post": "<mailto:intel-wired-lan@osuosl.org>",
        "List-Help": "<mailto:intel-wired-lan-request@osuosl.org?subject=help>",
        "List-Subscribe": "<https://lists.osuosl.org/mailman/listinfo/intel-wired-lan>,\n <mailto:intel-wired-lan-request@osuosl.org?subject=subscribe>",
        "From": "Yury Norov via Intel-wired-lan <intel-wired-lan@osuosl.org>",
        "Reply-To": "Yury Norov <ynorov@nvidia.com>",
        "Errors-To": "intel-wired-lan-bounces@osuosl.org",
        "Sender": "\"Intel-wired-lan\" <intel-wired-lan-bounces@osuosl.org>"
    },
    "content": "The function helps to XOR bitmaps and calculate Hamming weight of\nthe result in one pass.\n\nSigned-off-by: Yury Norov <ynorov@nvidia.com>\n---\n include/linux/bitmap.h | 15 +++++++++++++++\n lib/bitmap.c           |  7 +++++++\n 2 files changed, 22 insertions(+)",
    "diff": "diff --git a/include/linux/bitmap.h b/include/linux/bitmap.h\nindex b0395e4ccf90..874f744870ef 100644\n--- a/include/linux/bitmap.h\n+++ b/include/linux/bitmap.h\n@@ -46,6 +46,7 @@ struct device;\n  *  bitmap_and(dst, src1, src2, nbits)          *dst = *src1 & *src2\n  *  bitmap_or(dst, src1, src2, nbits)           *dst = *src1 | *src2\n  *  bitmap_weighted_or(dst, src1, src2, nbits)\t*dst = *src1 | *src2. Returns Hamming Weight of dst\n+ *  bitmap_weighted_xor(dst, src1, src2, nbits)\t*dst = *src1 ^ *src2. Returns Hamming Weight of dst\n  *  bitmap_xor(dst, src1, src2, nbits)          *dst = *src1 ^ *src2\n  *  bitmap_andnot(dst, src1, src2, nbits)       *dst = *src1 & ~(*src2)\n  *  bitmap_complement(dst, src, nbits)          *dst = ~(*src)\n@@ -168,6 +169,8 @@ void __bitmap_or(unsigned long *dst, const unsigned long *bitmap1,\n \t\t const unsigned long *bitmap2, unsigned int nbits);\n unsigned int __bitmap_weighted_or(unsigned long *dst, const unsigned long *bitmap1,\n \t\t\t\t  const unsigned long *bitmap2, unsigned int nbits);\n+unsigned int __bitmap_weighted_xor(unsigned long *dst, const unsigned long *bitmap1,\n+\t\t\t\t  const unsigned long *bitmap2, unsigned int nbits);\n void __bitmap_xor(unsigned long *dst, const unsigned long *bitmap1,\n \t\t  const unsigned long *bitmap2, unsigned int nbits);\n bool __bitmap_andnot(unsigned long *dst, const unsigned long *bitmap1,\n@@ -352,6 +355,18 @@ unsigned int bitmap_weighted_or(unsigned long *dst, const unsigned long *src1,\n \t}\n }\n \n+static __always_inline\n+unsigned int bitmap_weighted_xor(unsigned long *dst, const unsigned long *src1,\n+\t\t\t\tconst unsigned long *src2, unsigned int nbits)\n+{\n+\tif (small_const_nbits(nbits)) {\n+\t\t*dst = *src1 ^ *src2;\n+\t\treturn hweight_long(*dst & BITMAP_LAST_WORD_MASK(nbits));\n+\t} else {\n+\t\treturn __bitmap_weighted_xor(dst, src1, src2, nbits);\n+\t}\n+}\n+\n static __always_inline\n void bitmap_xor(unsigned long *dst, const unsigned long *src1,\n \t\tconst unsigned long *src2, unsigned int nbits)\ndiff --git a/lib/bitmap.c b/lib/bitmap.c\nindex 9dc526507875..a2bcb5b1fe99 100644\n--- a/lib/bitmap.c\n+++ b/lib/bitmap.c\n@@ -361,6 +361,13 @@ unsigned int __bitmap_weighted_or(unsigned long *dst, const unsigned long *bitma\n \treturn BITMAP_WEIGHT(({dst[idx] = bitmap1[idx] | bitmap2[idx]; dst[idx]; }), bits);\n }\n \n+unsigned int __bitmap_weighted_xor(unsigned long *dst, const unsigned long *bitmap1,\n+\t\t\t\t  const unsigned long *bitmap2, unsigned int bits)\n+{\n+\treturn BITMAP_WEIGHT(({dst[idx] = bitmap1[idx] ^ bitmap2[idx]; dst[idx]; }), bits);\n+}\n+EXPORT_SYMBOL(__bitmap_weighted_xor);\n+\n void __bitmap_set(unsigned long *map, unsigned int start, int len)\n {\n \tunsigned long *p = map + BIT_WORD(start);\n",
    "prefixes": [
        "v2",
        "1/4"
    ]
}