)]}'
{
  "log": [
    {
      "commit": "26b760d0f8148e4ee73936577b8b3be51dbb64d7",
      "tree": "3a2b1fb1637db684ce353e3da39b93b9373826ef",
      "parents": [
        "8a1f9de80e45951b43d6e1e287a07f7d94cadbe8"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Sun Apr 26 14:25:23 2026 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Sun Apr 26 14:32:57 2026 -0700"
      },
      "message": "Input: stmfts - fix formatting issues\n\nFix a few formatting issues reported by checkpatch.\n\nSigned-off-by: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\n"
    },
    {
      "commit": "8a1f9de80e45951b43d6e1e287a07f7d94cadbe8",
      "tree": "ac83473ac2d8ef9f645ea48fa3d50010a6b5ff70",
      "parents": [
        "dd78ec391fbd56fad39e3c6d9a37e82df0439289"
      ],
      "author": {
        "name": "Petr Hodina",
        "email": "petr.hodina@protonmail.com",
        "time": "Sun Apr 26 13:57:41 2026 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Sun Apr 26 14:32:56 2026 -0700"
      },
      "message": "Input: stmfts - add optional reset GPIO support\n\nAdd support for an optional \"reset-gpios\" property. If present, the\ndriver drives the reset line high at probe time and releases it during\npower-on, after the regulators have been enabled.\n\nSigned-off-by: Petr Hodina \u003cpetr.hodina@protonmail.com\u003e\nCo-developed-by: David Heidelberg \u003cdavid@ixit.cz\u003e\nSigned-off-by: David Heidelberg \u003cdavid@ixit.cz\u003e\nLink: https://patch.msgid.link/20260409-stmfts5-v4-8-64fe62027db5@ixit.cz\nSigned-off-by: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\n"
    },
    {
      "commit": "dd78ec391fbd56fad39e3c6d9a37e82df0439289",
      "tree": "c3b50003bfdff3f48083dbd589ad830f7a0b3e2e",
      "parents": [
        "9ecb0c045bebd832f75505fc86b590cfda0cd947"
      ],
      "author": {
        "name": "David Heidelberg",
        "email": "david@ixit.cz",
        "time": "Sun Apr 26 13:57:18 2026 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Sun Apr 26 14:32:56 2026 -0700"
      },
      "message": "dt-bindings: input: touchscreen: st,stmfts: Introduce reset GPIO\n\nFTS has associated reset GPIO, document it.\n\nSigned-off-by: David Heidelberg \u003cdavid@ixit.cz\u003e\nReviewed-by: Krzysztof Kozlowski \u003ckrzysztof.kozlowski@oss.qualcomm.com\u003e\nLink: https://patch.msgid.link/20260409-stmfts5-v4-7-64fe62027db5@ixit.cz\nSigned-off-by: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\n"
    },
    {
      "commit": "9ecb0c045bebd832f75505fc86b590cfda0cd947",
      "tree": "f80004f468f946d6e18b1e3931cd64a5e49d6130",
      "parents": [
        "85c3d6e410eb16df8c359c935c4a9321b7d430c0"
      ],
      "author": {
        "name": "Petr Hodina",
        "email": "petr.hodina@protonmail.com",
        "time": "Sun Apr 26 13:56:55 2026 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Sun Apr 26 14:32:55 2026 -0700"
      },
      "message": "Input: stmfts - use client to make future code cleaner\n\nMake code cleaner, compiler will optimize it away anyway.\n\nPreparation for FTM5 support, where more steps are needed.\n\nSigned-off-by: Petr Hodina \u003cpetr.hodina@protonmail.com\u003e\nSigned-off-by: David Heidelberg \u003cdavid@ixit.cz\u003e\nLink: https://patch.msgid.link/20260409-stmfts5-v4-6-64fe62027db5@ixit.cz\nSigned-off-by: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\n"
    },
    {
      "commit": "85c3d6e410eb16df8c359c935c4a9321b7d430c0",
      "tree": "a7a4dfb00487a3b9886dca97b9d8094fd49adee9",
      "parents": [
        "9ea34baf20cd41e5fe4aa8f7bc3283196b0a2bc9"
      ],
      "author": {
        "name": "David Heidelberg",
        "email": "david@ixit.cz",
        "time": "Sun Apr 26 13:46:36 2026 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Sun Apr 26 14:32:54 2026 -0700"
      },
      "message": "Input: stmfts - disable regulators and disable irq when power on fails\n\nWe must power off regulators and ensure that IRQ is disabled when\nfailing at power on phase. Create stmfts_configure function to limit\nuse of goto.\n\nSigned-off-by: David Heidelberg \u003cdavid@ixit.cz\u003e\nLink: https://patch.msgid.link/20260409-stmfts5-v4-5-64fe62027db5@ixit.cz\nSigned-off-by: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\n"
    },
    {
      "commit": "9ea34baf20cd41e5fe4aa8f7bc3283196b0a2bc9",
      "tree": "cf39b4a1a92ad1eb35bee3594380073baf4bcdab",
      "parents": [
        "18ac49e763af7e10064438da3d8f1c864db29a55"
      ],
      "author": {
        "name": "David Heidelberg",
        "email": "david@ixit.cz",
        "time": "Sun Apr 26 13:08:55 2026 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Sun Apr 26 14:32:54 2026 -0700"
      },
      "message": "Input: stmfts - abstract reading information from the firmware\n\nImproves readability and makes splitting power on function in following\ncommit easier.\n\nSigned-off-by: David Heidelberg \u003cdavid@ixit.cz\u003e\nLink: https://patch.msgid.link/20260409-stmfts5-v4-4-64fe62027db5@ixit.cz\nSigned-off-by: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\n"
    },
    {
      "commit": "18ac49e763af7e10064438da3d8f1c864db29a55",
      "tree": "b13fb1494f82e85e4b5bda8e45717a588ae3787a",
      "parents": [
        "04336c6e93ad00fc1c51c561ad65edb96caecc70"
      ],
      "author": {
        "name": "David Heidelberg",
        "email": "david@ixit.cz",
        "time": "Sun Apr 26 13:05:12 2026 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Sun Apr 26 14:32:53 2026 -0700"
      },
      "message": "Input: stmfts - switch to devm_regulator_bulk_get_const\n\nSwitch to devm_regulator_bulk_get_const() to stop setting the supplies\nlist in probe(), and move the regulator_bulk_data struct in static const.\n\nSigned-off-by: David Heidelberg \u003cdavid@ixit.cz\u003e\nLink: https://patch.msgid.link/20260409-stmfts5-v4-3-64fe62027db5@ixit.cz\nSigned-off-by: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\n"
    },
    {
      "commit": "04336c6e93ad00fc1c51c561ad65edb96caecc70",
      "tree": "12531060709a0cfea0fccf4af988fdcb4a55c6aa",
      "parents": [
        "4e2e14c2b19095f7e82a98e202eb5b07a8c9f83c"
      ],
      "author": {
        "name": "David Heidelberg",
        "email": "david@ixit.cz",
        "time": "Sun Apr 26 13:02:06 2026 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Sun Apr 26 14:32:52 2026 -0700"
      },
      "message": "Input: stmfts - use dev struct directly\n\nMakes the code better readable and noticably shorter.\n\nSigned-off-by: David Heidelberg \u003cdavid@ixit.cz\u003e\nLink: https://patch.msgid.link/20260409-stmfts5-v4-2-64fe62027db5@ixit.cz\nSigned-off-by: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\n"
    },
    {
      "commit": "4e2e14c2b19095f7e82a98e202eb5b07a8c9f83c",
      "tree": "d4a8c342a572bbbba0d0de5b5a8a9a777238d1ee",
      "parents": [
        "fc59cad7e896fdb7a07bd91f7c0952e2a0e12b36"
      ],
      "author": {
        "name": "David Heidelberg",
        "email": "david@ixit.cz",
        "time": "Sun Apr 26 13:01:31 2026 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Sun Apr 26 14:32:52 2026 -0700"
      },
      "message": "Input: stmfts - fix the MODULE_LICENSE() string\n\nReplace the bogus \"GPL v2\" with \"GPL\" as MODULE_LICNSE() string. The\nvalue does not declare the module\u0027s exact license, but only lets the\nmodule loader test whether the module is Free Software or not.\n\nSee commit bf7fbeeae6db (\"module: Cure the MODULE_LICENSE \"GPL\" vs.\n\"GPL v2\" bogosity\") in the details of the issue. The fix is to use\n\"GPL\" for all modules under any variant of the GPL.\n\nSigned-off-by: David Heidelberg \u003cdavid@ixit.cz\u003e\nLink: https://patch.msgid.link/20260409-stmfts5-v4-1-64fe62027db5@ixit.cz\nSigned-off-by: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\n"
    },
    {
      "commit": "fc59cad7e896fdb7a07bd91f7c0952e2a0e12b36",
      "tree": "4ae992570d678ff611fd4e583af98a418b91be77",
      "parents": [
        "2ca45e57ea027fffe3350ae5e21ad9cecb0dce74"
      ],
      "author": {
        "name": "Colin Ian King",
        "email": "colin.i.king@gmail.com",
        "time": "Tue Jul 29 12:31:47 2025 +0100"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Mon Apr 20 10:22:52 2026 -0700"
      },
      "message": "Input: lm8323 - remove space before newline\n\nThere is an extraneous space before a newline in a dev_err message.\nRemove it\n\nSigned-off-by: Colin Ian King \u003ccolin.i.king@gmail.com\u003e\nLink: https://patch.msgid.link/20250729113147.1924862-1-colin.i.king@gmail.com\nSigned-off-by: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\n"
    },
    {
      "commit": "2ca45e57ea027fffe3350ae5e21ad9cecb0dce74",
      "tree": "ac1b3615052739a813c546f809d0108184e3c7ca",
      "parents": [
        "0d64bee764847a488ac33be8ec61b4ae7828f8f1"
      ],
      "author": {
        "name": "Hugo Villeneuve",
        "email": "hvilleneuve@dimonoff.com",
        "time": "Sat Apr 18 22:18:54 2026 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Sun Apr 19 18:27:01 2026 -0700"
      },
      "message": "Input: charlieplex_keypad - add GPIO charlieplex keypad\n\nAdd support for GPIO-based charlieplex keypad, allowing to control\nN^2-N keys using N GPIO lines.\n\nReuse matrix keypad keymap to simplify, even if there is no concept\nof rows and columns in this type of keyboard.\n\nSigned-off-by: Hugo Villeneuve \u003chvilleneuve@dimonoff.com\u003e\nReviewed-by: Andy Shevchenko \u003candriy.shevchenko@intel.com\u003e\nLink: https://patch.msgid.link/20260312180304.3865850-5-hugo@hugovil.com\nSigned-off-by: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\n"
    },
    {
      "commit": "0d64bee764847a488ac33be8ec61b4ae7828f8f1",
      "tree": "3c2eb9b7a783edcd82b24b67cdb77a7ab7a2deab",
      "parents": [
        "906a37ba5481ac1b6f6a51c25eba88e43749d428"
      ],
      "author": {
        "name": "Hugo Villeneuve",
        "email": "hvilleneuve@dimonoff.com",
        "time": "Sat Apr 18 22:18:30 2026 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Sun Apr 19 18:27:00 2026 -0700"
      },
      "message": "dt-bindings: input: add GPIO charlieplex keypad\n\nAdd DT bindings for GPIO charlieplex keypad.\n\nReviewed-by: Rob Herring (Arm) \u003crobh@kernel.org\u003e\nSigned-off-by: Hugo Villeneuve \u003chvilleneuve@dimonoff.com\u003e\nLink: https://patch.msgid.link/20260312180304.3865850-4-hugo@hugovil.com\nSigned-off-by: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\n"
    },
    {
      "commit": "906a37ba5481ac1b6f6a51c25eba88e43749d428",
      "tree": "80693866ef9a37602cd3b64a695b5e8061783c97",
      "parents": [
        "cf1f976aee444af0143c3a2fa6cf0f8bf9bd938e"
      ],
      "author": {
        "name": "Hugo Villeneuve",
        "email": "hvilleneuve@dimonoff.com",
        "time": "Sat Apr 18 22:17:43 2026 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Sun Apr 19 18:26:59 2026 -0700"
      },
      "message": "dt-bindings: input: add settling-time-us common property\n\nAdd common property that can be reused by other bindings.\n\nReviewed-by: Rob Herring (Arm) \u003crobh@kernel.org\u003e\nSigned-off-by: Hugo Villeneuve \u003chvilleneuve@dimonoff.com\u003e\nLink: https://patch.msgid.link/20260312180304.3865850-3-hugo@hugovil.com\nSigned-off-by: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\n"
    },
    {
      "commit": "cf1f976aee444af0143c3a2fa6cf0f8bf9bd938e",
      "tree": "f3865900f7b50a78335cb455cb7bcfb96e59c784",
      "parents": [
        "2e32d2ba1797578115bf0b91071791abaf302649"
      ],
      "author": {
        "name": "Hugo Villeneuve",
        "email": "hvilleneuve@dimonoff.com",
        "time": "Sat Apr 18 22:16:38 2026 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Sun Apr 19 18:26:59 2026 -0700"
      },
      "message": "dt-bindings: input: add debounce-delay-ms common property\n\nA few bindings are already defining a debounce-delay-ms property, so\nadd it to the input binding to reduce redundant redefines.\n\nReviewed-by: Rob Herring (Arm) \u003crobh@kernel.org\u003e\nSigned-off-by: Hugo Villeneuve \u003chvilleneuve@dimonoff.com\u003e\nLink: https://patch.msgid.link/20260312180304.3865850-2-hugo@hugovil.com\nSigned-off-by: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\n"
    },
    {
      "commit": "2e32d2ba1797578115bf0b91071791abaf302649",
      "tree": "58800758107d635f78565d4de36cc1d0f36f79bf",
      "parents": [
        "f5f9e07060519e2287e99019a6de1eb3ebb65c37"
      ],
      "author": {
        "name": "Ethan Carter Edwards",
        "email": "ethan@ethancedwards.com",
        "time": "Sat Apr 18 20:58:32 2026 -0400"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Sun Apr 19 17:55:20 2026 -0700"
      },
      "message": "Input: imx_keypad - fix spelling mistake \"Colums\" -\u003e \"Columns\"\n\nThere is a spelling mistake in two comments. Fix them.\n\nSigned-off-by: Ethan Carter Edwards \u003cethan@ethancedwards.com\u003e\nLink: https://patch.msgid.link/20260418-imx-typo-v1-1-2a15e54ad4e7@ethancedwards.com\nSigned-off-by: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\n"
    },
    {
      "commit": "f5f9e07060519e2287e99019a6de1eb3ebb65c37",
      "tree": "421b6c1867ee1eeb2c5a9053b53c9135add73fcc",
      "parents": [
        "875115b82c295277b81b6dfee7debc725f44e854"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Fri Apr 10 21:13:43 2026 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Sun Apr 19 17:54:06 2026 -0700"
      },
      "message": "Input: edt-ft5x06 - fix use-after-free in debugfs teardown\n\nThe commit 68743c500c6e (\"Input: edt-ft5x06 - use per-client debugfs\ndirectory\") removed the manual debugfs teardown, relying on the I2C core\nto handle it. However, this creates a window where debugfs files are\nstill accessible after edt_ft5x06_ts_teardown_debugfs() frees\ntsdata-\u003eraw_buffer.\n\nTo prevent a use-after-free, protect the freeing of raw_buffer with the\ndevice mutex and set raw_buffer to NULL. The debugfs read function\nalready checks if raw_buffer is NULL under the same mutex, so this\nsafely avoids the use-after-free.\n\nFixes: 68743c500c6e (\"Input: edt-ft5x06 - use per-client debugfs directory\")\nCc: stable@vger.kernel.org\nLink: https://patch.msgid.link/adnJicDh-bTUaWXP@google.com\nSigned-off-by: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\n"
    },
    {
      "commit": "875115b82c295277b81b6dfee7debc725f44e854",
      "tree": "cb4aed59e0e311c08331b6716f65a4fb7340276b",
      "parents": [
        "f7a78e84446e19c9de9adda85a064f947aefa336"
      ],
      "author": {
        "name": "Seungjin Bae",
        "email": "eeodqql09@gmail.com",
        "time": "Wed Apr 08 09:03:59 2026 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Wed Apr 08 10:15:46 2026 -0700"
      },
      "message": "Input: ims-pcu - fix heap-buffer-overflow in ims_pcu_process_data()\n\nThe `ims_pcu_process_data()` processes incoming URB data byte by byte.\nHowever, it fails to check if the `read_pos` index exceeds\nIMS_PCU_BUF_SIZE.\n\nIf a malicious USB device sends a packet larger than IMS_PCU_BUF_SIZE,\n`read_pos` will increment indefinitely. Moreover, since `read_pos` is\nlocated immediately after `read_buf`, the attacker can overwrite\n`read_pos` itself to arbitrarily control the index.\n\nThis manipulated `read_pos` is subsequently used in\n`ims_pcu_handle_response()` to copy data into `cmd_buf`, leading to a\nheap buffer overflow.\n\nSpecifically, an attacker can overwrite the `cmd_done.wait.head` located\nat offset 136 relative to `cmd_buf` in the `ims_pcu_handle_response()`.\nConsequently, when the driver calls `complete(\u0026pcu-\u003ecmd_done)`, it\ntriggers a control flow hijack by using the manipulated pointer.\n\nFix this by adding a bounds check for `read_pos` before writing to\n`read_buf`. If the packet is too long, discard it, log a warning,\nand reset the parser state.\n\nFixes: 628329d524743 (\"Input: add IMS Passenger Control Unit driver\")\nCo-developed-by: Sanghoon Choi \u003ccsh0052@gmail.com\u003e\nSigned-off-by: Sanghoon Choi \u003ccsh0052@gmail.com\u003e\nSigned-off-by: Seungjin Bae \u003ceeodqql09@gmail.com\u003e\nLink: https://patch.msgid.link/20251221211442.841549-2-eeodqql09@gmail.com\n[dtor: factor out resetting packet state, reset checksum as well]\nSigned-off-by: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\n"
    },
    {
      "commit": "f7a78e84446e19c9de9adda85a064f947aefa336",
      "tree": "88e4e179e3fe588d9e79cf2d5f5787eaf566a4dc",
      "parents": [
        "86a9e4f4efc0a8dc4490023c6e2bf57fd8080ea3"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Thu Aug 08 10:27:31 2024 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Wed Apr 08 07:58:02 2026 -0700"
      },
      "message": "Input: ct82c710 - remove driver\n\nThis is a PS/2 mouse interface chip from Chips \u0026 Technologies that was\nused in TI TravelMate and Gateway Nomad laptops, which used 386 and 486\nCPUs. With 486 support being removed from the kernel (and 386 support is\nlong gone) it is time to retire this driver as well.\n\nRemove the driver.\n\nLink: https://patch.msgid.link/20240808172733.1194442-6-dmitry.torokhov@gmail.com\nSigned-off-by: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\n"
    },
    {
      "commit": "86a9e4f4efc0a8dc4490023c6e2bf57fd8080ea3",
      "tree": "663d960e49f6dcaddc91f8c17194b301f2f97656",
      "parents": [
        "931e3151dba74786f36a948a8d08490f3657c1f3"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Thu Aug 08 10:27:30 2024 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Wed Apr 08 07:55:25 2026 -0700"
      },
      "message": "Input: mk712 - remove driver\n\nThis touchscreen controller was used om Gateway AOL Connected Touchpad\nreleased in 2000 and, according to Wikipedia, removed from the market\nin October 2001 due to slow sales.\n\nIt looks like it can still be bought on eBay for $1000 but I really\ndoubt anyone will actually use it.\n\nRemove the driver.\n\nLink: https://patch.msgid.link/20240808172733.1194442-5-dmitry.torokhov@gmail.com\nSigned-off-by: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\n"
    },
    {
      "commit": "931e3151dba74786f36a948a8d08490f3657c1f3",
      "tree": "0efa2a9d1d169389ae806e76bdc8f3170a8d09cf",
      "parents": [
        "8291ffa3e51d6a280b9348fcf5ac6cf45abd2fb8"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Thu Aug 08 10:27:28 2024 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Wed Apr 08 07:53:13 2026 -0700"
      },
      "message": "Input: logibm - remove driver\n\nBus mice use specialized bus interface implemented via an ISA add-in\ncards. They were superseded by PS/2 and later USB.\n\nKconfig entry for the Logitech bus mice states that they \"are rather\nrare these days\". This statement was true in 2002 and is no less true\nin 2024.\n\nRemove the driver.\n\nLink: https://patch.msgid.link/20240808172733.1194442-3-dmitry.torokhov@gmail.com\nSigned-off-by: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\n"
    },
    {
      "commit": "8291ffa3e51d6a280b9348fcf5ac6cf45abd2fb8",
      "tree": "d72b25c92a721cc50a3044f13b4984b5f317dc52",
      "parents": [
        "16bbb5912742ffba347828ddf5b1a297de5bcd58"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Thu Aug 08 10:27:27 2024 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Wed Apr 08 07:53:05 2026 -0700"
      },
      "message": "Input: inport - remove driver\n\nInport (ATI XL and Microsoft) mice use specialized bus interface\nimplemented via an ISA add-in card. Have been superseded by PS/2 and\nthen USB, and are historical curiosity by now.\n\nRemove the driver.\n\nLink: https://patch.msgid.link/20240808172733.1194442-2-dmitry.torokhov@gmail.com\nSigned-off-by: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\n"
    },
    {
      "commit": "16bbb5912742ffba347828ddf5b1a297de5bcd58",
      "tree": "2305590b0fc29db600c6fe2d5ee4127fcf96274e",
      "parents": [
        "512b0f41aab28733fff9fb78f0162224ba581cad"
      ],
      "author": {
        "name": "Thorsten Blum",
        "email": "thorsten.blum@linux.dev",
        "time": "Wed Apr 08 16:19:26 2026 +0200"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Wed Apr 08 07:46:01 2026 -0700"
      },
      "message": "Input: qt1070 - inline i2c_check_functionality check\n\nInline the i2c_check_functionality() check, since the function returns a\nboolean status rather than an error code.\n\nSigned-off-by: Thorsten Blum \u003cthorsten.blum@linux.dev\u003e\nLink: https://patch.msgid.link/20260408141926.1181389-4-thorsten.blum@linux.dev\nSigned-off-by: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\n"
    },
    {
      "commit": "512b0f41aab28733fff9fb78f0162224ba581cad",
      "tree": "176e9a3311e8573f742fc6e069d21a33cbde90e6",
      "parents": [
        "95dffe32a66cbed07fbfa7afed39d56d5014e04f"
      ],
      "author": {
        "name": "Thorsten Blum",
        "email": "thorsten.blum@linux.dev",
        "time": "Wed Apr 08 16:19:25 2026 +0200"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Wed Apr 08 07:46:01 2026 -0700"
      },
      "message": "Input: qt1050 - inline i2c_check_functionality check\n\nInline the i2c_check_functionality() check, since the function returns a\nboolean status rather than an error code.\n\nSigned-off-by: Thorsten Blum \u003cthorsten.blum@linux.dev\u003e\nLink: https://patch.msgid.link/20260408141926.1181389-3-thorsten.blum@linux.dev\nSigned-off-by: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\n"
    },
    {
      "commit": "95dffe32a66cbed07fbfa7afed39d56d5014e04f",
      "tree": "f20ffda00fb5c8e66b01663935ae9c15099eb236",
      "parents": [
        "bc561dc8ba5b9fe56ed1757bdad218c9a0f992f1"
      ],
      "author": {
        "name": "Pengpeng Hou",
        "email": "pengpeng@iscas.ac.cn",
        "time": "Mon Apr 06 21:52:34 2026 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Mon Apr 06 22:10:55 2026 -0700"
      },
      "message": "Input: aiptek - validate raw macro indices before updating state\n\naiptek_irq() derives macro key indices directly from tablet reports and\nthen uses them to index macroKeyEvents[]. Report types 4 and 5 also save\nthe derived value in aiptek-\u003elastMacro and later use that state to\nrelease the previous key.\n\nValidate the raw macro index once before it enters that state machine, so\nlastMacro only ever stores an in-range macro key. Keep direct bounds\nchecks for report type 6, which reads the macro number from the packet\nbody and uses it immediately.\n\nSigned-off-by: Pengpeng Hou \u003cpengpeng@iscas.ac.cn\u003e\nLink: https://patch.msgid.link/20260329001711.88076-1-pengpeng@iscas.ac.cn\n[dtor: fix macro fallback in report 5s to use -1]\nSigned-off-by: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\n"
    },
    {
      "commit": "bc561dc8ba5b9fe56ed1757bdad218c9a0f992f1",
      "tree": "77819a0678b8bcaedd5f76ca1ef187a6a3a1c205",
      "parents": [
        "84e7a17d1813394b48b0641fce8217fc0bba1960"
      ],
      "author": {
        "name": "Pengpeng Hou",
        "email": "pengpeng@iscas.ac.cn",
        "time": "Tue Apr 07 09:56:52 2026 +0800"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Mon Apr 06 22:10:13 2026 -0700"
      },
      "message": "Input: gf2k - skip invalid hat lookup values\n\ngf2k_read() decodes the hat position from a 4-bit field and uses it\ndirectly to index gf2k_hat_to_axis[]. The lookup table only has nine\nentries, so malformed packets can read past the end of the fixed table.\n\nSkip hat reporting when the decoded value falls outside the lookup\ntable instead of forcing it to the neutral position. This keeps the\nfix local and avoids reporting a made-up axis state for malformed\npackets.\n\nSigned-off-by: Pengpeng Hou \u003cpengpeng@iscas.ac.cn\u003e\nLink: https://patch.msgid.link/20260407120001.1-gf2k-v2-pengpeng@iscas.ac.cn\nSigned-off-by: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\n"
    },
    {
      "commit": "84e7a17d1813394b48b0641fce8217fc0bba1960",
      "tree": "f24c1ad71ba6b622c56c34191a565a62040fee4e",
      "parents": [
        "802b4c158cf57d615dae50000be4c6063a7db7ba"
      ],
      "author": {
        "name": "Sanjay Govind",
        "email": "sanjay.govind9@gmail.com",
        "time": "Fri Apr 03 22:35:50 2026 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Fri Apr 03 22:36:46 2026 -0700"
      },
      "message": "Input: xpad - add RedOctane Games vendor id\n\nAdd vendor ID for RedOctane Games to xpad driver.\n\nSigned-off-by: Sanjay Govind \u003csanjay.govind9@gmail.com\u003e\nLink: https://patch.msgid.link/20260311213106.271577-2-sanjay.govind9@gmail.com\nSigned-off-by: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\n"
    },
    {
      "commit": "802b4c158cf57d615dae50000be4c6063a7db7ba",
      "tree": "fe63fbd1d90609f979e72156c75d77d9fd9bca5e",
      "parents": [
        "f13b7800929df0df0ba2407226ba1b627b482c92"
      ],
      "author": {
        "name": "Elliot Tester",
        "email": "elliotctester@gmail.com",
        "time": "Wed Mar 25 23:16:17 2026 +0100"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Fri Apr 03 22:35:34 2026 -0700"
      },
      "message": "Input: xpad - remove stale TODO and changelog header\n\nAll items in the TODO block have since been addressed: axis tuning,\nanalog button handling, rumble support, and dance pad USB IDs are all\nimplemented. The manual changelog is also removed as history is tracked\nin git.\n\nSigned-off-by: Elliot Tester \u003celliotctester1@gmail.com\u003e\nLink: https://patch.msgid.link/20260325221618.135833-1-elliotctester1@gmail.com\nSigned-off-by: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\n"
    },
    {
      "commit": "f13b7800929df0df0ba2407226ba1b627b482c92",
      "tree": "5e1fcf166f07f45506d5e2ec6f3b655c44c2e3a5",
      "parents": [
        "df53055c540fe8850f587a6ef0d6944bdd909483"
      ],
      "author": {
        "name": "Johan Hovold",
        "email": "johan@kernel.org",
        "time": "Wed Apr 01 10:22:12 2026 +0200"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Wed Apr 01 10:37:38 2026 -0700"
      },
      "message": "Input: usbtouchscreen - refactor endpoint lookup\n\nUse the common USB helpers for looking up bulk and interrupt endpoints\n(and determining endpoint numbers) instead of open coding.\n\nNote that the NEXIO data interface has two bulk endpoints (see commit\n5197424cdccc (\"Input: usbtouchscreen - add NEXIO (or iNexio) support\")\nfor the descriptors).\n\nThe lookup in probe handles both bulk-in and interrupt-in endpoints and\nwas added to handle NEXIO devices. Replace the open coded lookup with a\nlookup for the common interrupt endpoint and an explicit fallback\naccepting a bulk endpoint.\n\nThis iterates over the (two) endpoints twice for NEXIO devices but makes\nit more clear what is going on.\n\nSigned-off-by: Johan Hovold \u003cjohan@kernel.org\u003e\nLink: https://patch.msgid.link/20260401082212.2180434-1-johan@kernel.org\nSigned-off-by: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\n"
    },
    {
      "commit": "df53055c540fe8850f587a6ef0d6944bdd909483",
      "tree": "08c01fa37476a0567fcfdad6d32754908c592b5d",
      "parents": [
        "b73724b1defe253fa9d76be4bcb585ef37ef4d68"
      ],
      "author": {
        "name": "Griffin Kroah-Hartman",
        "email": "griffin.kroah@fairphone.com",
        "time": "Tue Mar 03 17:40:41 2026 -0800"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Wed Apr 01 09:08:33 2026 -0700"
      },
      "message": "Input: aw86927 - add support for Awinic AW86938\n\nAdd support for the I2C-connected Awinic AW86938 LRA haptic controller.\n\nThe AW86938 has a similar but slightly different register layout. In\nparticular, the boost mode register values.\n\nThe AW86938 also has some extra features that aren\u0027t implemented\nin this driver yet.\n\nSigned-off-by: Griffin Kroah-Hartman \u003cgriffin.kroah@fairphone.com\u003e\nLink: https://patch.msgid.link/20260302-aw86938-driver-v4-3-92c865df9cca@fairphone.com\nSigned-off-by: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\n"
    },
    {
      "commit": "b73724b1defe253fa9d76be4bcb585ef37ef4d68",
      "tree": "010c7fa78af507a00d2de5b51bf66e1ddcd16a4e",
      "parents": [
        "53ba7a47d3783192e6846cbb42f246f0fb9f9488"
      ],
      "author": {
        "name": "Griffin Kroah-Hartman",
        "email": "griffin.kroah@fairphone.com",
        "time": "Tue Mar 03 17:40:10 2026 -0800"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Wed Apr 01 09:08:32 2026 -0700"
      },
      "message": "dt-bindings: input: awinic,aw86927: Add Awinic AW86938\n\nAdd bindings for the Awinic AW86938 haptic chip which can be found in\nsmartphones. These two chips require a similar devicetree configuration,\nbut have a register layout that\u0027s not 100% compatible.\nStill, because chip model is fully detectable via ID register, these\nchips can be documnented in the same file.\n\nReviewed-by: Krzysztof Kozlowski \u003ckrzysztof.kozlowski@oss.qualcomm.com\u003e\nSigned-off-by: Griffin Kroah-Hartman \u003cgriffin.kroah@fairphone.com\u003e\nLink: https://patch.msgid.link/20260302-aw86938-driver-v4-2-92c865df9cca@fairphone.com\nSigned-off-by: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\n"
    },
    {
      "commit": "53ba7a47d3783192e6846cbb42f246f0fb9f9488",
      "tree": "d0265b0e954b03af7060c09465a639d465b9f1fd",
      "parents": [
        "4decd8f4ae06a6d82079186b6ad3fe51d4654a1d"
      ],
      "author": {
        "name": "Griffin Kroah-Hartman",
        "email": "griffin.kroah@fairphone.com",
        "time": "Tue Mar 03 17:37:18 2026 -0800"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Wed Apr 01 09:08:32 2026 -0700"
      },
      "message": "Input: aw86927 - respect vibration magnitude levels\n\nPreviously the gain value was hardcoded. Take the magnitude passed via\nthe input API and configure the gain register accordingly.\n\nSigned-off-by: Griffin Kroah-Hartman \u003cgriffin.kroah@fairphone.com\u003e\nLink: https://patch.msgid.link/20260302-aw86938-driver-v4-1-92c865df9cca@fairphone.com\nSigned-off-by: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\n"
    },
    {
      "commit": "4decd8f4ae06a6d82079186b6ad3fe51d4654a1d",
      "tree": "8d90f532d24851a46249eec16d6129c03d755ee2",
      "parents": [
        "5bb3ab0daaabedb67b142835b6905bce126df6ec"
      ],
      "author": {
        "name": "Johan Hovold",
        "email": "johan@kernel.org",
        "time": "Mon Mar 30 11:59:47 2026 +0200"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Mon Mar 30 16:54:41 2026 -0700"
      },
      "message": "Input: synaptics_usb - refactor endpoint lookup\n\nUse the common USB helper for looking up interrupt-in endpoints instead\nof open coding.\n\nSigned-off-by: Johan Hovold \u003cjohan@kernel.org\u003e\nLink: https://patch.msgid.link/20260330095948.1663141-4-johan@kernel.org\nSigned-off-by: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\n"
    },
    {
      "commit": "5bb3ab0daaabedb67b142835b6905bce126df6ec",
      "tree": "965593f0f39e959bae6df2d8f4bce4370fde341e",
      "parents": [
        "a7675c1f1fa38c559f267b0452ae9d7a736fa743"
      ],
      "author": {
        "name": "Johan Hovold",
        "email": "johan@kernel.org",
        "time": "Mon Mar 30 11:59:46 2026 +0200"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Mon Mar 30 16:54:41 2026 -0700"
      },
      "message": "Input: appletouch - refactor endpoint lookup\n\nUse the common USB helpers for looking up interrupt-in endpoints (and\ndetermining endpoint numbers) instead of open coding.\n\nSigned-off-by: Johan Hovold \u003cjohan@kernel.org\u003e\nLink: https://patch.msgid.link/20260330095948.1663141-3-johan@kernel.org\nSigned-off-by: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\n"
    },
    {
      "commit": "a7675c1f1fa38c559f267b0452ae9d7a736fa743",
      "tree": "e6be18c0d6164e5626071ef7380ac2c2209c9214",
      "parents": [
        "734fd5ba78cb079ba1873336387da8cb4df60403"
      ],
      "author": {
        "name": "Johan Hovold",
        "email": "johan@kernel.org",
        "time": "Mon Mar 30 11:59:45 2026 +0200"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Mon Mar 30 16:54:41 2026 -0700"
      },
      "message": "Input: keyspan-remote - refactor endpoint lookup\n\nUse the common USB helper for looking up interrupt-in endpoints instead\nof open coding.\n\nSigned-off-by: Johan Hovold \u003cjohan@kernel.org\u003e\nLink: https://patch.msgid.link/20260330095948.1663141-2-johan@kernel.org\nSigned-off-by: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\n"
    },
    {
      "commit": "734fd5ba78cb079ba1873336387da8cb4df60403",
      "tree": "a3775bf8ffa840d54d8c08e472a6dd0ca3217b8d",
      "parents": [
        "ffd01c3bcc1af4d8c3e7949152af0d9fe3d1fda5"
      ],
      "author": {
        "name": "Oliver Neukum",
        "email": "oneukum@suse.com",
        "time": "Wed Mar 25 15:32:47 2026 +0100"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Wed Mar 25 09:09:51 2026 -0700"
      },
      "message": "Input: pegasus_notetaker - use HID defines\n\nThe driver uses its own definitions for HID requests.\nThis leads to duplication and obfuscation. Use HID\u0027s\ndefinitions.\n\nSigned-off-by: Oliver Neukum \u003coneukum@suse.com\u003e\nLink: https://patch.msgid.link/20260325143256.371854-2-oneukum@suse.com\nSigned-off-by: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\n"
    },
    {
      "commit": "ffd01c3bcc1af4d8c3e7949152af0d9fe3d1fda5",
      "tree": "f1d50bbc7c3bf9798462c125be4deb8a747212de",
      "parents": [
        "653f3100f551cf01974a18cce66e368f248ee48a"
      ],
      "author": {
        "name": "Oliver Neukum",
        "email": "oneukum@suse.com",
        "time": "Wed Mar 25 15:32:46 2026 +0100"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Wed Mar 25 09:09:51 2026 -0700"
      },
      "message": "Input: aiptek - use HID headers\n\nThe driver uses its own definitions for HID requests.\nThis leads to duplication and obfuscation. Use HID\u0027s\ndefinitions.\n\nSigned-off-by: Oliver Neukum \u003coneukum@suse.com\u003e\nLink: https://patch.msgid.link/20260325143256.371854-1-oneukum@suse.com\nSigned-off-by: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\n"
    },
    {
      "commit": "653f3100f551cf01974a18cce66e368f248ee48a",
      "tree": "b2f820a258571455d5b3d66c8d4d39275b7fdeb8",
      "parents": [
        "79df764dbecd5c4bf1b1431b865a361ce7bebb2d"
      ],
      "author": {
        "name": "Val Packett",
        "email": "val@packett.cool",
        "time": "Sat Mar 21 04:30:07 2026 -0300"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Wed Mar 25 09:08:17 2026 -0700"
      },
      "message": "Input: goodix-berlin - report a resolution of 10 units/mm\n\nWithout a reported resolution, userspace was assuming 1 unit/mm which\nis wildly wrong: a regular smartphone is clearly not 2.4 meters tall.\nMost applications do not care much for this kind of raw mm value,\nbut Phosh\u0027s on-screen keyboard would accidentally trigger swipe-to-close\ngestures due to misinterpreting small movements as huge ones.\n\nDo what the older goodix.c driver does and set the resolution to 10\nunits/mm to make sure the numbers calculated by userspace are reasonable.\n\nSigned-off-by: Val Packett \u003cval@packett.cool\u003e\nLink: https://patch.msgid.link/20260321073242.556253-1-val@packett.cool\nSigned-off-by: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\n"
    },
    {
      "commit": "79df764dbecd5c4bf1b1431b865a361ce7bebb2d",
      "tree": "c7bf92069e8d6fd885e54f74ecab1f6d91b15b48",
      "parents": [
        "35ee82990df219f6f42962c0306c00231b85f238"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Sat Aug 17 19:08:21 2024 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Wed Mar 25 07:54:00 2026 -0700"
      },
      "message": "Input: zinitix - use guard notation when acquiring mutex\n\nGuard notation simplifies code.\n\nSigned-off-by: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\n"
    },
    {
      "commit": "35ee82990df219f6f42962c0306c00231b85f238",
      "tree": "27c59ea5f4beb41bce0d996c939cbaba45b9b560",
      "parents": [
        "da52f4b27a798304a7f4639ac5addc5574242cdf"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Fri Aug 16 15:18:44 2024 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Wed Mar 25 07:54:00 2026 -0700"
      },
      "message": "Input: wm97xx - use guard notation when acquiring mutex\n\nGuard notation simplifies code.\n\nSigned-off-by: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\n"
    },
    {
      "commit": "da52f4b27a798304a7f4639ac5addc5574242cdf",
      "tree": "033f3b8bd92a69398caaf6186470709b277dc6d4",
      "parents": [
        "e65407f838368fb7ab98fb7f02cbf5b9377976d3"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Wed May 29 11:08:15 2024 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Wed Mar 25 07:53:59 2026 -0700"
      },
      "message": "Input: wdt87xx_i2c - switch to using cleanup functions\n\nStart using __free() and guard() primitives to simplify the code\nand error handling.\n\nSigned-off-by: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\n"
    },
    {
      "commit": "e65407f838368fb7ab98fb7f02cbf5b9377976d3",
      "tree": "b748b5ecd943ec2f87f30bfddb524b580e36ac97",
      "parents": [
        "600a2db76bf28ab791774ed378d74c50f16e24d5"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Tue Aug 06 16:48:00 2024 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Wed Mar 25 07:53:59 2026 -0700"
      },
      "message": "Input: tsc2007 - use guard notation when acquiring mutexes\n\nThis makes the code more compact and error handling more robust.\n\nSigned-off-by: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\n"
    },
    {
      "commit": "600a2db76bf28ab791774ed378d74c50f16e24d5",
      "tree": "d3fc2a9163485b92b514c6cd018c64e20e5974dd",
      "parents": [
        "a8f56931c432c8c9a5198887bdd0f5d181b75495"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Wed Aug 14 14:22:13 2024 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Wed Mar 25 07:53:59 2026 -0700"
      },
      "message": "Input: sx8654 - use IRQF_NOAUTOEN when requesting interrupt\n\nInstead of requesting interrupt normally and immediately disabling it\nwith call to disable_irq() use IRQF_NOAUTOEN to keep it disabled until\nit is needed. This avoids a tiny window when interrupt is enabled but\nnot needed.\n\nSigned-off-by: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\n"
    },
    {
      "commit": "a8f56931c432c8c9a5198887bdd0f5d181b75495",
      "tree": "1442ad4f4d746266cae37ca035e69e39ad27c4d2",
      "parents": [
        "dc05a01180814440aee1959721528012dcda4461"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Wed Aug 14 14:13:33 2024 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Wed Mar 25 07:53:59 2026 -0700"
      },
      "message": "Input: sx8654 - use guard notation when acquiring spinlock\n\nGuard notation simplifies code.\n\nSigned-off-by: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\n"
    },
    {
      "commit": "dc05a01180814440aee1959721528012dcda4461",
      "tree": "76410d0872384b6afa8b3ddc84d108a598045d03",
      "parents": [
        "8665ceb926ec9d302ca94e46a2fe07afc08f56d0"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Wed Aug 14 14:38:11 2024 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Wed Mar 25 07:53:59 2026 -0700"
      },
      "message": "Input: sur40 - use guard notation when acquiring spinlock\n\nGuard notation simplifies code.\n\nAlso use list_first_entry() instead of list_entry() to emphasize intent.\n\nSigned-off-by: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\n"
    },
    {
      "commit": "8665ceb926ec9d302ca94e46a2fe07afc08f56d0",
      "tree": "43f8819611ccae9f112bc8e31285cd0c361d522a",
      "parents": [
        "e3e82a9d08fcfebc9ece8333711658ab8d7f3684"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Fri Aug 16 14:09:22 2024 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Wed Mar 25 07:53:58 2026 -0700"
      },
      "message": "Input: stmfts - use guard notation when acquiring mutex\n\nGuard notation simplifies code.\n\nSigned-off-by: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\n"
    },
    {
      "commit": "e3e82a9d08fcfebc9ece8333711658ab8d7f3684",
      "tree": "a8a71a1fa507f0755428be3dda764a7dc550d18e",
      "parents": [
        "738de07ddf0926b01fd8d3ba24f0c65fa5b418f5"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Wed May 29 11:22:15 2024 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Wed Mar 25 07:53:58 2026 -0700"
      },
      "message": "Input: raydium_i2c_ts - switch to using cleanup functions\n\nStart using __free() and guard() primitives to simplify the code\nand error handling.\n\nSigned-off-by: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\n"
    },
    {
      "commit": "738de07ddf0926b01fd8d3ba24f0c65fa5b418f5",
      "tree": "69e399cdd61494cf7042eab5ca69eacaa74d0b56",
      "parents": [
        "9f33f4fd39964d13379af396f3bfe3d3617a33f5"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Sat Aug 17 19:07:03 2024 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Wed Mar 25 07:53:58 2026 -0700"
      },
      "message": "Input: pixcir_i2c_ts - use guard notation when acquiring mutex\n\nGuard notation simplifies code.\n\nSigned-off-by: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\n"
    },
    {
      "commit": "9f33f4fd39964d13379af396f3bfe3d3617a33f5",
      "tree": "f4e3302df26162c57e095112cc112ec4c788f22d",
      "parents": [
        "7c011b6ddbe8350ad9b69295520553d461fcabba"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Sat Aug 17 19:04:21 2024 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Wed Mar 25 07:53:58 2026 -0700"
      },
      "message": "Input: novatek-nvt-ts - use guard notation when acquiring mutex\n\nGuard notation simplifies code.\n\nSigned-off-by: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\n"
    },
    {
      "commit": "7c011b6ddbe8350ad9b69295520553d461fcabba",
      "tree": "8a934e9cc1662a5c880c3632073715294e25b8d8",
      "parents": [
        "03bf327434456c3bde003509d57169ea1ebbe9a3"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Thu Aug 22 17:12:08 2024 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Wed Mar 25 07:53:57 2026 -0700"
      },
      "message": "Input: mxs-lradc-ts - use guard notation when acquiring spinlock\n\nGuard notation simplifies code and shows critical section more clearly.\n\nSigned-off-by: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\n"
    },
    {
      "commit": "03bf327434456c3bde003509d57169ea1ebbe9a3",
      "tree": "64385a57c09e314c0e3d0f4cc3edbaa79f9663fe",
      "parents": [
        "11a64d6bb70bad120468f39ba1358b449dca4167"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Sat Aug 17 19:02:31 2024 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Tue Mar 24 21:14:56 2026 -0700"
      },
      "message": "Input: msg2638 - use guard notation when acquiring mutex\n\nGuard notation simplifies code.\n\nSigned-off-by: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\n"
    },
    {
      "commit": "11a64d6bb70bad120468f39ba1358b449dca4167",
      "tree": "4472b556f4ca3c0ecc8a8529dab65e2cd550cfb3",
      "parents": [
        "7e1e5722e859e6624c9509a55d1f302b44d1853b"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Fri Aug 16 13:56:28 2024 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Tue Mar 24 21:14:55 2026 -0700"
      },
      "message": "Input: mms114 - use guard notation when acquiring mutex\n\nGuard notation simplifies code.\n\nAlso stop trying to check if input device is opened/in use in the\ninterrupt handler - the interrupt is disabled when device is closed or\nsuspended.\n\nSigned-off-by: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\n"
    },
    {
      "commit": "7e1e5722e859e6624c9509a55d1f302b44d1853b",
      "tree": "59059aba40db291810c85fd569f338c4e656951f",
      "parents": [
        "8e4ae01d84cd0879636c333e0707c86074b00405"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Sun Sep 01 16:11:38 2024 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Tue Mar 24 21:14:55 2026 -0700"
      },
      "message": "Input: mk712 - use guard notation when acquiring spinlock\n\nUsing guard notation makes the code more compact and error handling\nmore robust by ensuring that locks are released in all code paths\nwhen control leaves critical section.\n\nSigned-off-by: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\n"
    },
    {
      "commit": "8e4ae01d84cd0879636c333e0707c86074b00405",
      "tree": "b8621063c3331cd50b8b0a801ad8a5e9aedf2d66",
      "parents": [
        "a00a9fad1c05293859c25b30621dde0f34290121"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Wed May 29 11:58:26 2024 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Tue Mar 24 21:14:54 2026 -0700"
      },
      "message": "Input: melfas_mip4 - switch to using cleanup functions\n\nStart using __free() and guard() primitives to simplify the code\nand error handling.\n\nSigned-off-by: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\n"
    },
    {
      "commit": "a00a9fad1c05293859c25b30621dde0f34290121",
      "tree": "37f28223970486418767e6726de02e79d27d3a30",
      "parents": [
        "3092610fdc62b798f648b6de59a83ecd70315913"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Fri Aug 16 14:11:25 2024 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Tue Mar 24 21:14:53 2026 -0700"
      },
      "message": "Input: lpc32xx_ts - use guard notation when acquiring mutex\n\nGuard notation simplifies code.\n\nSigned-off-by: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\n"
    },
    {
      "commit": "3092610fdc62b798f648b6de59a83ecd70315913",
      "tree": "3f68fd942c00bba4bf48fc6864132279383a5077",
      "parents": [
        "3b5e7a62651ec2c1a8b515ffec14cd7262dda4a7"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Wed Aug 21 15:48:31 2024 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Tue Mar 24 21:14:53 2026 -0700"
      },
      "message": "Input: iqs7211 - use cleanup facility for fwnodes\n\nUse __free(fwnode_handle) cleanup facility to ensure that references to\nacquired fwnodes are dropped at appropriate times automatically.\n\nSigned-off-by: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\n"
    },
    {
      "commit": "3b5e7a62651ec2c1a8b515ffec14cd7262dda4a7",
      "tree": "0c506c39c93e2d7faf3f45bf652605eaab506e4b",
      "parents": [
        "582f32aa89e66ab1e16aab157fdd483b5acc86fa"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Mon Apr 28 17:53:02 2025 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Tue Mar 24 21:14:52 2026 -0700"
      },
      "message": "Input: iqs5xx - simplify parsing of firmware blob\n\nDo not define or use iqs5xx_ihex_rec structure: the original code was\nusing just a couple of fields in it and instead used it to calculate\noffset to record data. The data field was actually reserving space for\nchecksum.\n\nInstead iterate through fields and advance pointer explicitly.\n\nSigned-off-by: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\n"
    },
    {
      "commit": "582f32aa89e66ab1e16aab157fdd483b5acc86fa",
      "tree": "5e03791bce0966f31aa4c8d6e4ba5fad586073c3",
      "parents": [
        "f1324109d1a41125815eb4bd1666c6b02a3ac7d4"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Tue Jan 16 13:52:33 2024 -0800"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Tue Mar 24 21:14:52 2026 -0700"
      },
      "message": "Input: iqs5xx - switch to using cleanup functions\n\nStart using __free() and guard() primitives to simplify the code and error\nhandling.\n\nSigned-off-by: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\n"
    },
    {
      "commit": "f1324109d1a41125815eb4bd1666c6b02a3ac7d4",
      "tree": "06428fa4277cbce9f8417250ca658053fb8e538e",
      "parents": [
        "445dcfc7f676842994eb7f011924ff0e3a90c13b"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Sat Aug 17 19:01:18 2024 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Tue Mar 24 21:14:51 2026 -0700"
      },
      "message": "Input: ipaq-micro-ts - use guard notation when acquiring mutex/spinlock\n\nGuard notation simplifies code.\n\nSigned-off-by: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\n"
    },
    {
      "commit": "445dcfc7f676842994eb7f011924ff0e3a90c13b",
      "tree": "4cb56c60fe28c7096c7193ed0534e990aa4639e6",
      "parents": [
        "d2862b87add9966bc23af73a033f27a296bdbb55"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Sat Aug 17 19:00:21 2024 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Tue Mar 24 21:14:50 2026 -0700"
      },
      "message": "Input: imx6ul_tsc - use guard notation when acquiring mutex\n\nGuard notation simplifies code.\n\nSigned-off-by: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\n"
    },
    {
      "commit": "d2862b87add9966bc23af73a033f27a296bdbb55",
      "tree": "04c1f00b76216e90565a1919f23bd6d29e9d9957",
      "parents": [
        "ded32cc611ef48a47d1ff6d424151e3d0c82a3a8"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Sat Aug 17 18:58:22 2024 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Tue Mar 24 21:14:50 2026 -0700"
      },
      "message": "Input: imagis - use guard notation when acquiring mutex\n\nGuard notation simplifies code.\n\nSigned-off-by: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\n"
    },
    {
      "commit": "ded32cc611ef48a47d1ff6d424151e3d0c82a3a8",
      "tree": "6cba723018287154054e78e8003812be802dbb5b",
      "parents": [
        "5568c1aeb33b008b1f643b1fa16360cdb6ccadf7"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Sat Aug 17 18:55:08 2024 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Tue Mar 24 21:14:49 2026 -0700"
      },
      "message": "Input: hycon-hy46xx - use guard notation when acquiring mutex\n\nGuard notation simplifies code.\n\nSigned-off-by: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\n"
    },
    {
      "commit": "5568c1aeb33b008b1f643b1fa16360cdb6ccadf7",
      "tree": "a3a0db7462bafe3449b73b33de86d946c5ef24cf",
      "parents": [
        "777f5b42f895a1c3693ec4968023d02722acdd7c"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Tue Jan 16 11:35:26 2024 -0800"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Tue Mar 24 21:14:49 2026 -0700"
      },
      "message": "Input: hideep - switch to using cleanup functions\n\nStart using __free() and guard() primitives to simplify the code and error\nhandling.\n\nSigned-off-by: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\n"
    },
    {
      "commit": "777f5b42f895a1c3693ec4968023d02722acdd7c",
      "tree": "365c909ed712fd504c44297de366947ce1ab1110",
      "parents": [
        "576c99f1a34da9618a5df8ed8648f2beee7e5411"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Wed May 29 14:43:30 2024 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Tue Mar 24 21:14:27 2026 -0700"
      },
      "message": "Input: goodix - switch to using cleanup functions in firmware code\n\nStart using __free(firmware) to simplify the code and error handling.\n\nSigned-off-by: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\n"
    },
    {
      "commit": "576c99f1a34da9618a5df8ed8648f2beee7e5411",
      "tree": "37b3ec8fdd04be3e5a645c6f1c019165e9c1eb04",
      "parents": [
        "cec3bcec6fd54cd1bdcb8786ca661912d879d399"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Sat Aug 17 17:26:09 2024 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Tue Mar 24 21:14:26 2026 -0700"
      },
      "message": "Input: exc3000 - use guard notation when acquiring mutex\n\nGuard notation simplifies code.\n\nNote that callers of exc3000_vendor_data_request() always expect\nresponse, so it was adjusted to always wait for it.\n\nSigned-off-by: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\n"
    },
    {
      "commit": "cec3bcec6fd54cd1bdcb8786ca661912d879d399",
      "tree": "e2340b60d1cc390ce5a65d5fcf34367789c06f46",
      "parents": [
        "e5c79d9f65a1211c56a41ca27136c985842fb1b5"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Sat Aug 17 17:20:30 2024 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Tue Mar 24 21:14:26 2026 -0700"
      },
      "message": "Input: elo - use guard notation when acquiring mutex\n\nGuard notation simplifies code.\n\nSigned-off-by: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\n"
    },
    {
      "commit": "e5c79d9f65a1211c56a41ca27136c985842fb1b5",
      "tree": "a490c505592818a3dc676bfaac458ce5ab1f189d",
      "parents": [
        "8c187a4c1592c483e95fc14fb800272cb41395a4"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Thu Jun 06 23:32:05 2024 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Tue Mar 24 21:14:25 2026 -0700"
      },
      "message": "Input: elants_i2c - switch to using cleanup facilities\n\nStart using __free() and guard() primitives to simplify the code\nand error handling.\n\nSigned-off-by: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\n"
    },
    {
      "commit": "8c187a4c1592c483e95fc14fb800272cb41395a4",
      "tree": "ed2038a26244a494965f1d2566ff607c3e10586a",
      "parents": [
        "6e9b9192d69d5d206afc502a06569a1650e41ef0"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Sat Aug 17 17:17:10 2024 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Tue Mar 24 21:14:24 2026 -0700"
      },
      "message": "Input: ektf2127 - use guard notation when acquiring mutex\n\nGuard notation simplifies code.\n\nSigned-off-by: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\n"
    },
    {
      "commit": "6e9b9192d69d5d206afc502a06569a1650e41ef0",
      "tree": "856df1920d9266b4c1bd841715b26a0915d9316f",
      "parents": [
        "df2e75e070a82fc02eac99743d0823972da293b1"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Sun Jun 30 19:26:14 2024 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Tue Mar 24 21:14:24 2026 -0700"
      },
      "message": "Input: eeti_ts - use guard notation when acquiring mutexes\n\nThis makes the code more compact and error handling more robust.\n\nSigned-off-by: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\n"
    },
    {
      "commit": "df2e75e070a82fc02eac99743d0823972da293b1",
      "tree": "eccfbf3af09cb61d97b8059292fce5777f63d40d",
      "parents": [
        "a0a92414af42b79f4e2829adfd55478a8e74eb33"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Sat Aug 17 17:05:00 2024 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Tue Mar 24 21:14:23 2026 -0700"
      },
      "message": "Input: edt-ft5x06 - use guard notation when acquiring mutex\n\nGuard notation simplifies code.\n\nSigned-off-by: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\n"
    },
    {
      "commit": "a0a92414af42b79f4e2829adfd55478a8e74eb33",
      "tree": "122bb6fafe5ed12a453ee8731041cdc6b3c2d079",
      "parents": [
        "37115e7df5d0e75c661aa65f7ac9fa0991759c6d"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Sat Aug 17 17:14:57 2024 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Tue Mar 24 21:14:23 2026 -0700"
      },
      "message": "Input: cyttsp - use guard notation when acquiring mutex\n\nGuard notation simplifies code.\n\nAlso fix the touchscreen not being marked as suspended when noone has\nopened/is using it.\n\nSigned-off-by: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\n"
    },
    {
      "commit": "37115e7df5d0e75c661aa65f7ac9fa0991759c6d",
      "tree": "f5f0e5343966de1a7902eb4bd22d4266face7d2b",
      "parents": [
        "b29be7bae37086fa04ffc52d6f1d761e5be811a3"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Sat Aug 17 17:10:01 2024 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Tue Mar 24 21:14:22 2026 -0700"
      },
      "message": "Input: chipone_icn8318 - use guard notation when acquiring mutex\n\nGuard notation simplifies code.\n\nSigned-off-by: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\n"
    },
    {
      "commit": "b29be7bae37086fa04ffc52d6f1d761e5be811a3",
      "tree": "3c68a6d176c61cca7016f866e10da51d19e25e27",
      "parents": [
        "24b3bc4a8f1bf90d742de14b664845deba2e52ab"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Sat Aug 17 17:08:28 2024 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Tue Mar 24 21:14:21 2026 -0700"
      },
      "message": "Input: bu21029_ts - use guard notation when acquiring mutex\n\nGuard notation simplifies code.\n\nSigned-off-by: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\n"
    },
    {
      "commit": "24b3bc4a8f1bf90d742de14b664845deba2e52ab",
      "tree": "f9f970db1002d46530cd9b33b91f5898bfd0bec0",
      "parents": [
        "d911a55b29bc393cccdd9236bbbd7333eaeafe3c"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Sun Jun 30 22:51:52 2024 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Tue Mar 24 21:14:21 2026 -0700"
      },
      "message": "Input: auo-pixcir-ts - use guard notation when acquiring mutexes\n\nThis makes the code more compact and error handling more robust.\n\nSigned-off-by: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\n"
    },
    {
      "commit": "d911a55b29bc393cccdd9236bbbd7333eaeafe3c",
      "tree": "356bb2672149dd33b267ed68deb47036d1b803c4",
      "parents": [
        "d77c45c8f0fd6a8cbbcaceb181633c092856f1c7"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Wed May 29 14:37:21 2024 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Tue Mar 24 21:14:20 2026 -0700"
      },
      "message": "Input: atmel_mxt_ts - switch to using cleanup functions\n\nStart using __free() and guard() primitives to simplify the code\nand error handling.\n\nSigned-off-by: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\n"
    },
    {
      "commit": "d77c45c8f0fd6a8cbbcaceb181633c092856f1c7",
      "tree": "4516bfe765a93789b8f0cb52ed723535490ed0ed",
      "parents": [
        "ab2a8300179b80c7d05b460cbf319cd56c0eaf4d"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Sun Jun 30 22:47:44 2024 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Tue Mar 24 21:14:20 2026 -0700"
      },
      "message": "Input: ads7846 - switch to using cleanup functions\n\nStart using __free() and guard() primitives to simplify the code\nand error handling.\n\nSigned-off-by: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\n"
    },
    {
      "commit": "ab2a8300179b80c7d05b460cbf319cd56c0eaf4d",
      "tree": "6fb850df24b8914efb77600a44b64fa89a900530",
      "parents": [
        "f3488759a5c141d68a8660d1ca858353e97994a1"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Sun Jun 30 22:40:19 2024 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Tue Mar 24 21:14:19 2026 -0700"
      },
      "message": "Input: ad7879 - use guard notation when acquiring mutexes\n\nThis makes the code more compact and error handling more robust.\n\nSigned-off-by: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\n"
    },
    {
      "commit": "f3488759a5c141d68a8660d1ca858353e97994a1",
      "tree": "c2e5a53c48a3971ceae531c7e9f96f3d76a58e0b",
      "parents": [
        "824d679941c9bf098214e8fbacbce9b7213e07ce"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Sun Jun 30 22:30:26 2024 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Tue Mar 24 21:14:18 2026 -0700"
      },
      "message": "Input: ad7877 - use guard notation when acquiring mutexes/locks\n\nThis makes the code more compact and error handling more robust.\n\nSigned-off-by: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\n"
    },
    {
      "commit": "824d679941c9bf098214e8fbacbce9b7213e07ce",
      "tree": "c18da0dc619905370c5e9b9f10cc9fbe714cf65d",
      "parents": [
        "731c634ea95ebf2eb0162174f14c6f341c44f71e"
      ],
      "author": {
        "name": "Hugo Villeneuve",
        "email": "hvilleneuve@dimonoff.com",
        "time": "Mon Mar 23 10:00:21 2026 -0400"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Tue Mar 24 20:04:06 2026 -0700"
      },
      "message": "dt-bindings: input: matrix-keymap: fix key board wording\n\nThe correct wording is keyboard, without a space.\n\nSigned-off-by: Hugo Villeneuve \u003chvilleneuve@dimonoff.com\u003e\nLink: https://patch.msgid.link/20260323140024.104475-1-hugo@hugovil.com\nSigned-off-by: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\n"
    },
    {
      "commit": "731c634ea95ebf2eb0162174f14c6f341c44f71e",
      "tree": "1009ac2b11d87e456b6478c37df8de6d7d897eca",
      "parents": [
        "117f8e71d61dab08b9be84b7dd0dd65916ed13c0"
      ],
      "author": {
        "name": "Bhushan Shah",
        "email": "bhushan.shah@machinesoul.in",
        "time": "Sat Mar 14 20:27:58 2026 +0530"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Tue Mar 24 18:43:22 2026 -0700"
      },
      "message": "dt-bindings: input: touchscreen: edt-ft5x06: Add FocalTech FT3519\n\nDocument FocalTech FT3519 support by adding the compatible. It\u0027s 10\npoint touchscreen, which is compatible with FT3518\n\nSigned-off-by: Bhushan Shah \u003cbhushan.shah@machinesoul.in\u003e\nReviewed-by: Krzysztof Kozlowski \u003ckrzysztof.kozlowski@oss.qualcomm.com\u003e\nLink: https://patch.msgid.link/20260314-edt-ft3519-v3-1-5ee91b408ed6@machinesoul.in\nSigned-off-by: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\n"
    },
    {
      "commit": "117f8e71d61dab08b9be84b7dd0dd65916ed13c0",
      "tree": "df443572c14d9d0d4cfe2561ee754dccf76247b9",
      "parents": [
        "0f9bcf224f983e27f29fb0349c113b4817d5357c",
        "c369299895a591d96745d6492d4888259b004a9e"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Tue Mar 24 13:49:39 2026 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Tue Mar 24 13:49:39 2026 -0700"
      },
      "message": "Merge tag \u0027v7.0-rc5\u0027 into next\n\nSync up with mainline to pull in a fix for smb compilation error.\n"
    },
    {
      "commit": "c369299895a591d96745d6492d4888259b004a9e",
      "tree": "cee98a9ab3b537d18372f54b3b2e6ecbb56387f4",
      "parents": [
        "ec69c9e88315c4be70c283f18c2ff130da6320b5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 22 14:42:17 2026 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 22 14:42:17 2026 -0700"
      },
      "message": "Linux 7.0-rc5\n"
    },
    {
      "commit": "ec69c9e88315c4be70c283f18c2ff130da6320b5",
      "tree": "cbb721d4f0b9a5e2dbb9e3ff881e0a912153e538",
      "parents": [
        "d5273fd3ca0bf0b59fff49fb59237440998fbec8"
      ],
      "author": {
        "name": "Mikko Perttunen",
        "email": "mperttunen@nvidia.com",
        "time": "Tue Mar 03 13:32:11 2026 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 22 11:37:58 2026 -0700"
      },
      "message": "i2c: tegra: Don\u0027t mark devices with pins as IRQ safe\n\nI2C devices with associated pinctrl states (DPAUX I2C controllers)\nwill change pinctrl state during runtime PM. This requires taking\na mutex, so these devices cannot be marked as IRQ safe.\n\nAdd PINCTRL as dependency to avoid build errors.\n\nSigned-off-by: Mikko Perttunen \u003cmperttunen@nvidia.com\u003e\nReported-by: Russell King \u003crmk+kernel@armlinux.org.uk\u003e\nLink: https://lore.kernel.org/all/E1vsNBv-00000009nfA-27ZK@rmk-PC.armlinux.org.uk/\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d5273fd3ca0bf0b59fff49fb59237440998fbec8",
      "tree": "6ddd60c3d384c171a438befcc6058c659797fffa",
      "parents": [
        "ac57fa9faf716c6a0e30128c2c313443cf633019",
        "4a04d13576fd69149b91672b5f1dc62eca272fa5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 22 11:16:06 2026 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 22 11:16:06 2026 -0700"
      },
      "message": "Merge tag \u0027bpf-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf\n\nPull bpf fixes from Alexei Starovoitov:\n\n - Fix how linked registers track zero extension of subregisters (Daniel\n   Borkmann)\n\n - Fix unsound scalar fork for OR instructions (Daniel Wade)\n\n - Fix exception exit lock check for subprogs (Ihor Solodrai)\n\n - Fix undefined behavior in interpreter for SDIV/SMOD instructions\n   (Jenny Guanni Qu)\n\n - Release module\u0027s BTF when module is unloaded (Kumar Kartikeya\n   Dwivedi)\n\n - Fix constant blinding for PROBE_MEM32 instructions (Sachin Kumar)\n\n - Reset register ID for END instructions to prevent incorrect value\n   tracking (Yazhou Tang)\n\n* tag \u0027bpf-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf:\n  selftests/bpf: Add a test cases for sync_linked_regs regarding zext propagation\n  bpf: Fix sync_linked_regs regarding BPF_ADD_CONST32 zext propagation\n  selftests/bpf: Add tests for maybe_fork_scalars() OR vs AND handling\n  bpf: Fix unsound scalar forking in maybe_fork_scalars() for BPF_OR\n  selftests/bpf: Add tests for sdiv32/smod32 with INT_MIN dividend\n  bpf: Fix undefined behavior in interpreter sdiv/smod for INT_MIN\n  selftests/bpf: Add tests for bpf_throw lock leak from subprogs\n  bpf: Fix exception exit lock checking for subprogs\n  bpf: Release module BTF IDR before module unload\n  selftests/bpf: Fix pkg-config call on static builds\n  bpf: Fix constant blinding for PROBE_MEM32 stores\n  selftests/bpf: Add test for BPF_END register ID reset\n  bpf: Reset register ID for BPF_END value tracking\n"
    },
    {
      "commit": "ac57fa9faf716c6a0e30128c2c313443cf633019",
      "tree": "df4eb46c83b3b8b776b0268600f82092b4ceedf7",
      "parents": [
        "11ac4ce3f708a073eb9e35fa11f741bb51f45302",
        "50b35c9e50a865600344ab1d8f9a8b3384d7e63d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 22 11:10:31 2026 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 22 11:10:31 2026 -0700"
      },
      "message": "Merge tag \u0027trace-v7.0-rc4\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace\n\nPull tracing fixes from Steven Rostedt:\n\n - Revert \"tracing: Remove pid in task_rename tracing output\"\n\n   A change was made to remove the pid field from the task_rename event\n   because it was thought that it was always done for the current task\n   and recording the pid would be redundant. This turned out to be\n   incorrect and there are a few corner case where this is not true and\n   caused some regressions in tooling.\n\n - Fix the reading from user space for migration\n\n   The reading of user space uses a seq lock type of logic where it uses\n   a per-cpu temporary buffer and disables migration, then enables\n   preemption, does the copy from user space, disables preemption,\n   enables migration and checks if there was any schedule switches while\n   preemption was enabled. If there was a context switch, then it is\n   considered that the per-cpu buffer could be corrupted and it tries\n   again. There\u0027s a protection check that tests if it takes a hundred\n   tries, it issues a warning and exits out to prevent a live lock.\n\n   This was triggered because the task was selected by the load balancer\n   to be migrated to another CPU, every time preemption is enabled the\n   migration task would schedule in try to migrate the task but can\u0027t\n   because migration is disabled and let it run again. This caused the\n   scheduler to schedule out the task every time it enabled preemption\n   and made the loop never exit (until the 100 iteration test\n   triggered).\n\n   Fix this by enabling and disabling preemption and keeping migration\n   enabled if the reading from user space needs to be done again. This\n   will let the migration thread migrate the task and the copy from user\n   space will likely pass on the next iteration.\n\n - Fix trace_marker copy option freeing\n\n   The \"copy_trace_marker\" option allows a tracing instance to get a\n   copy of a write to the trace_marker file of the top level instance.\n   This is managed by a link list protected by RCU. When an instance is\n   removed, a check is made if the option is set, and if so\n   synchronized_rcu() is called.\n\n   The problem is that an iteration is made to reset all the flags to\n   what they were when the instance was created (to perform clean ups)\n   was done before the check of the copy_trace_marker option and that\n   option was cleared, so the synchronize_rcu() was never called.\n\n   Move the clearing of all the flags after the check of\n   copy_trace_marker to do synchronize_rcu() so that the option is still\n   set if it was before and the synchronization is performed.\n\n - Fix entries setting when validating the persistent ring buffer\n\n   When validating the persistent ring buffer on boot up, the number of\n   events per sub-buffer is added to the sub-buffer meta page. The\n   validator was updating cpu_buffer-\u003ehead_page (the first sub-buffer of\n   the per-cpu buffer) and not the \"head_page\" variable that was\n   iterating the sub-buffers. This was causing the first sub-buffer to\n   be assigned the entries for each sub-buffer and not the sub-buffer\n   that was supposed to be updated.\n\n - Use \"hash\" value to update the direct callers\n\n   When updating the ftrace direct callers, it assigned a temporary\n   callback to all the callback functions of the ftrace ops and not just\n   the functions represented by the passed in hash. This causes an\n   unnecessary slow down of the functions of the ftrace_ops that is not\n   being modified. Only update the functions that are going to be\n   modified to call the ftrace loop function so that the update can be\n   made on those functions.\n\n* tag \u0027trace-v7.0-rc4\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace:\n  ftrace: Use hash argument for tmp_ops in update_ftrace_direct_mod\n  ring-buffer: Fix to update per-subbuf entries of persistent ring buffer\n  tracing: Fix trace_marker copy link list updates\n  tracing: Fix failure to read user space from system call trace events\n  tracing: Revert \"tracing: Remove pid in task_rename tracing output\"\n"
    },
    {
      "commit": "11ac4ce3f708a073eb9e35fa11f741bb51f45302",
      "tree": "6ef3fd48f3df4022ccfa1153109a3353bb911f37",
      "parents": [
        "8d8bd2a5aa980efaf39b3f46eb1bfd0b5da54453",
        "2f42e85622567a19459679f71e55d41904866aa7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 22 11:05:34 2026 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 22 11:05:34 2026 -0700"
      },
      "message": "Merge tag \u0027i2c-for-7.0-rc5\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux\n\nPull i2c fixes from Wolfram Sang:\n\n - fix broken I2C communication on Armada 3700 with recovery\n\n - fix device_node reference leak in probe (fsi)\n\n - fix NULL-deref when serial string is missing (cp2615)\n\n* tag \u0027i2c-for-7.0-rc5\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux:\n  i2c: pxa: defer reset on Armada 3700 when recovery is used\n  i2c: fsi: Fix a potential leak in fsi_i2c_probe()\n  i2c: cp2615: fix serial string NULL-deref at probe\n"
    },
    {
      "commit": "8d8bd2a5aa980efaf39b3f46eb1bfd0b5da54453",
      "tree": "ba52a7967962c3c5b01f9a1a392be089e272f2cb",
      "parents": [
        "ebfd9b7af2fb1e4bbc97a8b33845e7402c3defa9",
        "1f6aa5bbf1d0f81a8a2aafc16136e7dd9a609ff3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 22 10:54:12 2026 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 22 10:54:12 2026 -0700"
      },
      "message": "Merge tag \u0027x86-urgent-2026-03-22\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull x86 fixes from Ingo Molnar:\n\n - Improve Qemu MCE-injection behavior by only using AMD SMCA MSRs if\n   the feature bit is set\n\n - Fix the relative path of gettimeofday.c inclusion in vclock_gettime.c\n\n - Fix a boot crash on UV clusters when a socket is marked as\n   \u0027deconfigured\u0027 which are mapped to the SOCK_EMPTY node ID by\n   the UV firmware, while Linux APIs expect NUMA_NO_NODE.\n\n   The difference being (0xffff [unsigned short ~0]) vs [int -1]\n\n* tag \u0027x86-urgent-2026-03-22\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  x86/platform/uv: Handle deconfigured sockets\n  x86/entry/vdso: Fix path of included gettimeofday.c\n  x86/mce/amd: Check SMCA feature bit before accessing SMCA MSRs\n"
    },
    {
      "commit": "ebfd9b7af2fb1e4bbc97a8b33845e7402c3defa9",
      "tree": "f084f6b3e07b843bf625c60e8da3233b77913c6f",
      "parents": [
        "dea622e183d34e6a4f90acfee9abb605885432bf",
        "e7fcc54524f04e42641de99028edd9c69dc19f8c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 22 10:31:51 2026 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 22 10:31:51 2026 -0700"
      },
      "message": "Merge tag \u0027perf-urgent-2026-03-22\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull perf fixes from Ingo Molnar:\n\n - Fix a PMU driver crash on AMD EPYC systems, caused by\n   a race condition in x86_pmu_enable()\n\n - Fix a possible counter-initialization bug in x86_pmu_enable()\n\n - Fix a counter inheritance bug in inherit_event() and\n   __perf_event_read()\n\n - Fix an Intel PMU driver branch constraints handling bug\n   found by UBSAN\n\n - Fix the Intel PMU driver\u0027s new Off-Module Response (OMR)\n   support code for Diamond Rapids / Nova lake, to fix a snoop\n   information parsing bug\n\n* tag \u0027perf-urgent-2026-03-22\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  perf/x86/intel: Fix OMR snoop information parsing issues\n  perf/x86/intel: Add missing branch counters constraint apply\n  perf: Make sure to use pmu_ctx-\u003epmu for groups\n  x86/perf: Make sure to program the counter value for stopped events on migration\n  perf/x86: Move event pointer setup earlier in x86_pmu_enable()\n"
    },
    {
      "commit": "dea622e183d34e6a4f90acfee9abb605885432bf",
      "tree": "1fb0bf0ec87c2460234c5e5ec1a599b2edc8b8a0",
      "parents": [
        "d56d4a110f5a1f340710c12a6a8e3ce915824b8e",
        "4e5019216402ad0b4a84cff457b662d26803f103"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 22 10:17:50 2026 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 22 10:17:50 2026 -0700"
      },
      "message": "Merge tag \u0027objtool-urgent-2026-03-22\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull objtool fixes from Ingo Molnar:\n \"Fix three more livepatching related build environment bugs, and a\n  false positive warning with Clang jump tables\"\n\n* tag \u0027objtool-urgent-2026-03-22\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  objtool: Fix Clang jump table detection\n  livepatch/klp-build: Fix inconsistent kernel version\n  objtool/klp: fix mkstemp() failure with long paths\n  objtool/klp: fix data alignment in __clone_symbol()\n"
    },
    {
      "commit": "d56d4a110f5a1f340710c12a6a8e3ce915824b8e",
      "tree": "c0708ee368301eae7a36b23937da16fed41922e7",
      "parents": [
        "b5fddfad34829771c2d06ed43fea35b5e30bd1c9",
        "14de1552a4e3fece78bb20314887e70888c9d448"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 22 09:57:20 2026 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 22 09:57:20 2026 -0700"
      },
      "message": "Merge tag \u0027locking-urgent-2026-03-22\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull locking fix from Ingo Molnar:\n \"Fix a sparse build error regression in \u003clinux/local_lock_internal.h\u003e\n  caused by the locking context-analysis changes\"\n\n* tag \u0027locking-urgent-2026-03-22\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  include/linux/local_lock_internal.h: Make this header file again compatible with sparse\n"
    },
    {
      "commit": "b5fddfad34829771c2d06ed43fea35b5e30bd1c9",
      "tree": "5f70b25b5b3f85adcaa5fde711dd7c20888eb480",
      "parents": [
        "d723091c8c3e076bb53d52ec3d5a801d49f30caf",
        "76f0930d6e809234904cf9f0f5f42ee6c1dc694e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 22 09:55:58 2026 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 22 09:55:58 2026 -0700"
      },
      "message": "Merge tag \u0027irq-urgent-2026-03-22\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull irq fix from Ingo Molnar:\n \"Fix a mailbox channel leak in the riscv-rpmi-sysmsi irqchip driver\"\n\n* tag \u0027irq-urgent-2026-03-22\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  irqchip/riscv-rpmi-sysmsi: Fix mailbox channel leak in rpmi_sysmsi_probe()\n"
    },
    {
      "commit": "d723091c8c3e076bb53d52ec3d5a801d49f30caf",
      "tree": "dce3515d17dca9f1b4bebf661f2d91176de36821",
      "parents": [
        "113ae7b4decc6c2d95bdbbe52e615a0137ef7f9f",
        "2b38efc05bf7a8568ec74bfffea0f5cfa62bc01d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 21 16:59:09 2026 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 21 16:59:09 2026 -0700"
      },
      "message": "Merge tag \u0027driver-core-7.0-rc5\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/driver-core/driver-core\n\nPull driver core fixes from Danilo Krummrich:\n\n - Generalize driver_override in the driver core, providing a common\n   sysfs implementation and concurrency-safe accessors for bus\n   implementations\n\n - Do not use driver_override as IRQ name in the hwmon axi-fan driver\n\n - Remove an unnecessary driver_override check in sh platform_early\n\n - Migrate the platform bus to use the generic driver_override\n   infrastructure, fixing a UAF condition caused by accessing the\n   driver_override field without proper locking in the platform_match()\n   callback\n\n* tag \u0027driver-core-7.0-rc5\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/driver-core/driver-core:\n  driver core: platform: use generic driver_override infrastructure\n  sh: platform_early: remove pdev-\u003edriver_override check\n  hwmon: axi-fan: don\u0027t use driver_override as IRQ name\n  docs: driver-model: document driver_override\n  driver core: generalize driver_override in struct device\n"
    },
    {
      "commit": "50b35c9e50a865600344ab1d8f9a8b3384d7e63d",
      "tree": "46d99438040707fcd46517ce73e5a35608cd22e9",
      "parents": [
        "f35dbac6942171dc4ce9398d1d216a59224590a9"
      ],
      "author": {
        "name": "Jiri Olsa",
        "email": "jolsa@kernel.org",
        "time": "Thu Mar 12 13:37:38 2026 +0100"
      },
      "committer": {
        "name": "Steven Rostedt (Google)",
        "email": "rostedt@goodmis.org",
        "time": "Sat Mar 21 16:51:04 2026 -0400"
      },
      "message": "ftrace: Use hash argument for tmp_ops in update_ftrace_direct_mod\n\nThe modify logic registers temporary ftrace_ops object (tmp_ops) to trigger\nthe slow path for all direct callers to be able to safely modify attached\naddresses.\n\nAt the moment we use ops-\u003efunc_hash for tmp_ops filter, which represents all\nthe systems attachments. It\u0027s faster to use just the passed hash filter, which\ncontains only the modified sites and is always a subset of the ops-\u003efunc_hash.\n\nCc: Alexei Starovoitov \u003cast@kernel.org\u003e\nCc: Daniel Borkmann \u003cdaniel@iogearbox.net\u003e\nCc: Andrii Nakryiko \u003candrii@kernel.org\u003e\nCc: Menglong Dong \u003cmenglong8.dong@gmail.com\u003e\nCc: Song Liu \u003csong@kernel.org\u003e\nLink: https://patch.msgid.link/20260312123738.129926-1-jolsa@kernel.org\nFixes: e93672f770d7 (\"ftrace: Add update_ftrace_direct_mod function\")\nSigned-off-by: Jiri Olsa \u003cjolsa@kernel.org\u003e\nSigned-off-by: Steven Rostedt (Google) \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "f35dbac6942171dc4ce9398d1d216a59224590a9",
      "tree": "8ed9093aa20f8e815b42ae416cc201b94ffebc30",
      "parents": [
        "07183aac4a6828e474f00b37c9d795d0d99e18a7"
      ],
      "author": {
        "name": "Masami Hiramatsu (Google)",
        "email": "mhiramat@kernel.org",
        "time": "Thu Mar 19 18:12:19 2026 +0900"
      },
      "committer": {
        "name": "Steven Rostedt (Google)",
        "email": "rostedt@goodmis.org",
        "time": "Sat Mar 21 16:47:28 2026 -0400"
      },
      "message": "ring-buffer: Fix to update per-subbuf entries of persistent ring buffer\n\nSince the validation loop in rb_meta_validate_events() updates the same\ncpu_buffer-\u003ehead_page-\u003eentries, the other subbuf entries are not updated.\nFix to use head_page to update the entries field, since it is the cursor\nin this loop.\n\nCc: stable@vger.kernel.org\nCc: Mathieu Desnoyers \u003cmathieu.desnoyers@efficios.com\u003e\nCc: Ian Rogers \u003cirogers@google.com\u003e\nFixes: 5f3b6e839f3c (\"ring-buffer: Validate boot range memory events\")\nLink: https://patch.msgid.link/177391153882.193994.17158784065013676533.stgit@mhiramat.tok.corp.google.com\nSigned-off-by: Masami Hiramatsu (Google) \u003cmhiramat@kernel.org\u003e\nSigned-off-by: Steven Rostedt (Google) \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "07183aac4a6828e474f00b37c9d795d0d99e18a7",
      "tree": "89e66e2110f6d54541dbd20f41aa073de4359e60",
      "parents": [
        "edca33a56297d5741ccf867669debec116681987"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Mar 18 18:55:12 2026 -0400"
      },
      "committer": {
        "name": "Steven Rostedt (Google)",
        "email": "rostedt@goodmis.org",
        "time": "Sat Mar 21 16:43:53 2026 -0400"
      },
      "message": "tracing: Fix trace_marker copy link list updates\n\nWhen the \"copy_trace_marker\" option is enabled for an instance, anything\nwritten into /sys/kernel/tracing/trace_marker is also copied into that\ninstances buffer. When the option is set, that instance\u0027s trace_array\ndescriptor is added to the marker_copies link list. This list is protected\nby RCU, as all iterations uses an RCU protected list traversal.\n\nWhen the instance is deleted, all the flags that were enabled are cleared.\nThis also clears the copy_trace_marker flag and removes the trace_array\ndescriptor from the list.\n\nThe issue is after the flags are called, a direct call to\nupdate_marker_trace() is performed to clear the flag. This function\nreturns true if the state of the flag changed and false otherwise. If it\nreturns true here, synchronize_rcu() is called to make sure all readers\nsee that its removed from the list.\n\nBut since the flag was already cleared, the state does not change and the\nsynchronization is never called, leaving a possible UAF bug.\n\nMove the clearing of all flags below the updating of the copy_trace_marker\noption which then makes sure the synchronization is performed.\n\nAlso use the flag for checking the state in update_marker_trace() instead\nof looking at if the list is empty.\n\nCc: stable@vger.kernel.org\nCc: Masami Hiramatsu \u003cmhiramat@kernel.org\u003e\nCc: Mathieu Desnoyers \u003cmathieu.desnoyers@efficios.com\u003e\nLink: https://patch.msgid.link/20260318185512.1b6c7db4@gandalf.local.home\nFixes: 7b382efd5e8a (\"tracing: Allow the top level trace_marker to write into another instances\")\nReported-by: Sasha Levin \u003csashal@kernel.org\u003e\nCloses: https://lore.kernel.org/all/20260225133122.237275-1-sashal@kernel.org/\nSigned-off-by: Steven Rostedt (Google) \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "edca33a56297d5741ccf867669debec116681987",
      "tree": "042ba808a4236cd903aa76a6862103a90cea95a1",
      "parents": [
        "a6f22e50c7d51aa225c392c62c33f0fae11f734d"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Mar 16 13:07:34 2026 -0400"
      },
      "committer": {
        "name": "Steven Rostedt (Google)",
        "email": "rostedt@goodmis.org",
        "time": "Sat Mar 21 16:42:36 2026 -0400"
      },
      "message": "tracing: Fix failure to read user space from system call trace events\n\nThe system call trace events call trace_user_fault_read() to read the user\nspace part of some system calls. This is done by grabbing a per-cpu\nbuffer, disabling migration, enabling preemption, calling\ncopy_from_user(), disabling preemption, enabling migration and checking if\nthe task was preempted while preemption was enabled. If it was, the buffer\nis considered corrupted and it tries again.\n\nThere\u0027s a safety mechanism that will fail out of this loop if it fails 100\ntimes (with a warning). That warning message was triggered in some\npi_futex stress tests. Enabling the sched_switch trace event and\ntraceoff_on_warning, showed the problem:\n\n pi_mutex_hammer-1375    [006] d..21   138.981648: sched_switch: prev_comm\u003dpi_mutex_hammer prev_pid\u003d1375 prev_prio\u003d95 prev_state\u003dR+ \u003d\u003d\u003e next_comm\u003dmigration/6 next_pid\u003d47 next_prio\u003d0\n     migration/6-47      [006] d..2.   138.981651: sched_switch: prev_comm\u003dmigration/6 prev_pid\u003d47 prev_prio\u003d0 prev_state\u003dS \u003d\u003d\u003e next_comm\u003dpi_mutex_hammer next_pid\u003d1375 next_prio\u003d95\n pi_mutex_hammer-1375    [006] d..21   138.981656: sched_switch: prev_comm\u003dpi_mutex_hammer prev_pid\u003d1375 prev_prio\u003d95 prev_state\u003dR+ \u003d\u003d\u003e next_comm\u003dmigration/6 next_pid\u003d47 next_prio\u003d0\n     migration/6-47      [006] d..2.   138.981659: sched_switch: prev_comm\u003dmigration/6 prev_pid\u003d47 prev_prio\u003d0 prev_state\u003dS \u003d\u003d\u003e next_comm\u003dpi_mutex_hammer next_pid\u003d1375 next_prio\u003d95\n pi_mutex_hammer-1375    [006] d..21   138.981664: sched_switch: prev_comm\u003dpi_mutex_hammer prev_pid\u003d1375 prev_prio\u003d95 prev_state\u003dR+ \u003d\u003d\u003e next_comm\u003dmigration/6 next_pid\u003d47 next_prio\u003d0\n     migration/6-47      [006] d..2.   138.981667: sched_switch: prev_comm\u003dmigration/6 prev_pid\u003d47 prev_prio\u003d0 prev_state\u003dS \u003d\u003d\u003e next_comm\u003dpi_mutex_hammer next_pid\u003d1375 next_prio\u003d95\n pi_mutex_hammer-1375    [006] d..21   138.981671: sched_switch: prev_comm\u003dpi_mutex_hammer prev_pid\u003d1375 prev_prio\u003d95 prev_state\u003dR+ \u003d\u003d\u003e next_comm\u003dmigration/6 next_pid\u003d47 next_prio\u003d0\n     migration/6-47      [006] d..2.   138.981675: sched_switch: prev_comm\u003dmigration/6 prev_pid\u003d47 prev_prio\u003d0 prev_state\u003dS \u003d\u003d\u003e next_comm\u003dpi_mutex_hammer next_pid\u003d1375 next_prio\u003d95\n pi_mutex_hammer-1375    [006] d..21   138.981679: sched_switch: prev_comm\u003dpi_mutex_hammer prev_pid\u003d1375 prev_prio\u003d95 prev_state\u003dR+ \u003d\u003d\u003e next_comm\u003dmigration/6 next_pid\u003d47 next_prio\u003d0\n     migration/6-47      [006] d..2.   138.981682: sched_switch: prev_comm\u003dmigration/6 prev_pid\u003d47 prev_prio\u003d0 prev_state\u003dS \u003d\u003d\u003e next_comm\u003dpi_mutex_hammer next_pid\u003d1375 next_prio\u003d95\n pi_mutex_hammer-1375    [006] d..21   138.981687: sched_switch: prev_comm\u003dpi_mutex_hammer prev_pid\u003d1375 prev_prio\u003d95 prev_state\u003dR+ \u003d\u003d\u003e next_comm\u003dmigration/6 next_pid\u003d47 next_prio\u003d0\n     migration/6-47      [006] d..2.   138.981690: sched_switch: prev_comm\u003dmigration/6 prev_pid\u003d47 prev_prio\u003d0 prev_state\u003dS \u003d\u003d\u003e next_comm\u003dpi_mutex_hammer next_pid\u003d1375 next_prio\u003d95\n pi_mutex_hammer-1375    [006] d..21   138.981695: sched_switch: prev_comm\u003dpi_mutex_hammer prev_pid\u003d1375 prev_prio\u003d95 prev_state\u003dR+ \u003d\u003d\u003e next_comm\u003dmigration/6 next_pid\u003d47 next_prio\u003d0\n     migration/6-47      [006] d..2.   138.981698: sched_switch: prev_comm\u003dmigration/6 prev_pid\u003d47 prev_prio\u003d0 prev_state\u003dS \u003d\u003d\u003e next_comm\u003dpi_mutex_hammer next_pid\u003d1375 next_prio\u003d95\n pi_mutex_hammer-1375    [006] d..21   138.981703: sched_switch: prev_comm\u003dpi_mutex_hammer prev_pid\u003d1375 prev_prio\u003d95 prev_state\u003dR+ \u003d\u003d\u003e next_comm\u003dmigration/6 next_pid\u003d47 next_prio\u003d0\n     migration/6-47      [006] d..2.   138.981706: sched_switch: prev_comm\u003dmigration/6 prev_pid\u003d47 prev_prio\u003d0 prev_state\u003dS \u003d\u003d\u003e next_comm\u003dpi_mutex_hammer next_pid\u003d1375 next_prio\u003d95\n pi_mutex_hammer-1375    [006] d..21   138.981711: sched_switch: prev_comm\u003dpi_mutex_hammer prev_pid\u003d1375 prev_prio\u003d95 prev_state\u003dR+ \u003d\u003d\u003e next_comm\u003dmigration/6 next_pid\u003d47 next_prio\u003d0\n     migration/6-47      [006] d..2.   138.981714: sched_switch: prev_comm\u003dmigration/6 prev_pid\u003d47 prev_prio\u003d0 prev_state\u003dS \u003d\u003d\u003e next_comm\u003dpi_mutex_hammer next_pid\u003d1375 next_prio\u003d95\n pi_mutex_hammer-1375    [006] d..21   138.981719: sched_switch: prev_comm\u003dpi_mutex_hammer prev_pid\u003d1375 prev_prio\u003d95 prev_state\u003dR+ \u003d\u003d\u003e next_comm\u003dmigration/6 next_pid\u003d47 next_prio\u003d0\n     migration/6-47      [006] d..2.   138.981722: sched_switch: prev_comm\u003dmigration/6 prev_pid\u003d47 prev_prio\u003d0 prev_state\u003dS \u003d\u003d\u003e next_comm\u003dpi_mutex_hammer next_pid\u003d1375 next_prio\u003d95\n pi_mutex_hammer-1375    [006] d..21   138.981727: sched_switch: prev_comm\u003dpi_mutex_hammer prev_pid\u003d1375 prev_prio\u003d95 prev_state\u003dR+ \u003d\u003d\u003e next_comm\u003dmigration/6 next_pid\u003d47 next_prio\u003d0\n     migration/6-47      [006] d..2.   138.981730: sched_switch: prev_comm\u003dmigration/6 prev_pid\u003d47 prev_prio\u003d0 prev_state\u003dS \u003d\u003d\u003e next_comm\u003dpi_mutex_hammer next_pid\u003d1375 next_prio\u003d95\n pi_mutex_hammer-1375    [006] d..21   138.981735: sched_switch: prev_comm\u003dpi_mutex_hammer prev_pid\u003d1375 prev_prio\u003d95 prev_state\u003dR+ \u003d\u003d\u003e next_comm\u003dmigration/6 next_pid\u003d47 next_prio\u003d0\n     migration/6-47      [006] d..2.   138.981738: sched_switch: prev_comm\u003dmigration/6 prev_pid\u003d47 prev_prio\u003d0 prev_state\u003dS \u003d\u003d\u003e next_comm\u003dpi_mutex_hammer next_pid\u003d1375 next_prio\u003d95\n\nWhat happened was the task 1375 was flagged to be migrated. When\npreemption was enabled, the migration thread woke up to migrate that task,\nbut failed because migration for that task was disabled. This caused the\nloop to fail to exit because the task scheduled out while trying to read\nuser space.\n\nEvery time the task enabled preemption the migration thread would schedule\nin, try to migrate the task, fail and let the task continue. But because\nthe loop would only enable preemption with migration disabled, it would\nalways fail because each time it enabled preemption to read user space,\nthe migration thread would try to migrate it.\n\nTo solve this, when the loop fails to read user space without being\nscheduled out, enabled and disable preemption with migration enabled. This\nwill allow the migration task to successfully migrate the task and the\nnext loop should succeed to read user space without being scheduled out.\n\nCc: stable@vger.kernel.org\nCc: Masami Hiramatsu \u003cmhiramat@kernel.org\u003e\nCc: Mathieu Desnoyers \u003cmathieu.desnoyers@efficios.com\u003e\nLink: https://patch.msgid.link/20260316130734.1858a998@gandalf.local.home\nFixes: 64cf7d058a005 (\"tracing: Have trace_marker use per-cpu data to read user space\")\nSigned-off-by: Steven Rostedt (Google) \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "a6f22e50c7d51aa225c392c62c33f0fae11f734d",
      "tree": "25960c446a9911d7c25c70326d9fa941eeca3a5c",
      "parents": [
        "f338e77383789c0cae23ca3d48adcc5e9e137e3c"
      ],
      "author": {
        "name": "Xuewen Yan",
        "email": "xuewen.yan@unisoc.com",
        "time": "Fri Mar 06 15:59:54 2026 +0800"
      },
      "committer": {
        "name": "Steven Rostedt (Google)",
        "email": "rostedt@goodmis.org",
        "time": "Sat Mar 21 16:41:18 2026 -0400"
      },
      "message": "tracing: Revert \"tracing: Remove pid in task_rename tracing output\"\n\nThis reverts commit e3f6a42272e028c46695acc83fc7d7c42f2750ad.\n\nThe commit says that the tracepoint only deals with the current task,\nhowever the following case is not current task:\n\ncomm_write() {\n    p \u003d get_proc_task(inode);\n    if (!p)\n        return -ESRCH;\n\n    if (same_thread_group(current, p))\n        set_task_comm(p, buffer);\n}\nwhere set_task_comm() calls __set_task_comm() which records\nthe update of p and not current.\n\nSo revert the patch to show pid.\n\nCc: \u003cmhiramat@kernel.org\u003e\nCc: \u003cmathieu.desnoyers@efficios.com\u003e\nCc: \u003celver@google.com\u003e\nCc: \u003ckees@kernel.org\u003e\nLink: https://patch.msgid.link/20260306075954.4533-1-xuewen.yan@unisoc.com\nFixes: e3f6a42272e0 (\"tracing: Remove pid in task_rename tracing output\")\nReported-by: Guohua Yan \u003cguohua.yan@unisoc.com\u003e\nSigned-off-by: Xuewen Yan \u003cxuewen.yan@unisoc.com\u003e\nReviewed-by: Steven Rostedt (Google) \u003crostedt@goodmis.org\u003e\nSigned-off-by: Steven Rostedt (Google) \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "4a04d13576fd69149b91672b5f1dc62eca272fa5",
      "tree": "105f3e958ee72eeafb00b704b88e550e7f8dde1e",
      "parents": [
        "bc308be380c136800e1e94c6ce49cb53141d6506"
      ],
      "author": {
        "name": "Daniel Borkmann",
        "email": "daniel@iogearbox.net",
        "time": "Thu Mar 19 22:15:07 2026 +0100"
      },
      "committer": {
        "name": "Alexei Starovoitov",
        "email": "ast@kernel.org",
        "time": "Sat Mar 21 13:19:40 2026 -0700"
      },
      "message": "selftests/bpf: Add a test cases for sync_linked_regs regarding zext propagation\n\nAdd multiple test cases for linked register tracking with alu32 ops:\n\n  - Add a test that checks sync_linked_regs() regarding reg-\u003eid (the linked\n    target register) for BPF_ADD_CONST32 rather than known_reg-\u003eid (the\n    branch register).\n\n  - Add a test case for linked register tracking that exposes the cross-type\n    sync_linked_regs() bug. One register uses alu32 (w7 +\u003d 1, BPF_ADD_CONST32)\n    and another uses alu64 (r8 +\u003d 2, BPF_ADD_CONST64), both linked to the\n    same base register.\n\n  - Add a test case that exercises regsafe() path pruning when two execution\n    paths reach the same program point with linked registers carrying\n    different ADD_CONST flags (BPF_ADD_CONST32 from alu32 vs BPF_ADD_CONST64\n    from alu64). This particular test passes with and without the fix since\n    the pruning will fail due to different ranges, but it would still be\n    useful to carry this one as a regression test for the unreachable div\n    by zero.\n\nWith the fix applied all the tests pass:\n\n  # LDLIBS\u003d-static PKG_CONFIG\u003d\u0027pkg-config --static\u0027 ./vmtest.sh -- ./test_progs -t verifier_linked_scalars\n  [...]\n  ./test_progs -t verifier_linked_scalars\n  #602/1   verifier_linked_scalars/scalars: find linked scalars:OK\n  #602/2   verifier_linked_scalars/sync_linked_regs_preserves_id:OK\n  #602/3   verifier_linked_scalars/scalars_neg:OK\n  #602/4   verifier_linked_scalars/scalars_neg_sub:OK\n  #602/5   verifier_linked_scalars/scalars_neg_alu32_add:OK\n  #602/6   verifier_linked_scalars/scalars_neg_alu32_sub:OK\n  #602/7   verifier_linked_scalars/scalars_pos:OK\n  #602/8   verifier_linked_scalars/scalars_sub_neg_imm:OK\n  #602/9   verifier_linked_scalars/scalars_double_add:OK\n  #602/10  verifier_linked_scalars/scalars_sync_delta_overflow:OK\n  #602/11  verifier_linked_scalars/scalars_sync_delta_overflow_large_range:OK\n  #602/12  verifier_linked_scalars/scalars_alu32_big_offset:OK\n  #602/13  verifier_linked_scalars/scalars_alu32_basic:OK\n  #602/14  verifier_linked_scalars/scalars_alu32_wrap:OK\n  #602/15  verifier_linked_scalars/scalars_alu32_zext_linked_reg:OK\n  #602/16  verifier_linked_scalars/scalars_alu32_alu64_cross_type:OK\n  #602/17  verifier_linked_scalars/scalars_alu32_alu64_regsafe_pruning:OK\n  #602/18  verifier_linked_scalars/alu32_negative_offset:OK\n  #602/19  verifier_linked_scalars/spurious_precision_marks:OK\n  #602     verifier_linked_scalars:OK\n  Summary: 1/19 PASSED, 0 SKIPPED, 0 FAILED\n\nCo-developed-by: Puranjay Mohan \u003cpuranjay@kernel.org\u003e\nSigned-off-by: Puranjay Mohan \u003cpuranjay@kernel.org\u003e\nSigned-off-by: Daniel Borkmann \u003cdaniel@iogearbox.net\u003e\nAcked-by: Eduard Zingerman \u003ceddyz87@gmail.com\u003e\nLink: https://lore.kernel.org/r/20260319211507.213816-2-daniel@iogearbox.net\nSigned-off-by: Alexei Starovoitov \u003cast@kernel.org\u003e\n\n"
    },
    {
      "commit": "bc308be380c136800e1e94c6ce49cb53141d6506",
      "tree": "3e75f2593b21ca468ec586af3cbb595bbf176fdd",
      "parents": [
        "06880982c63012eb392df64c1ca587c294a72226"
      ],
      "author": {
        "name": "Daniel Borkmann",
        "email": "daniel@iogearbox.net",
        "time": "Thu Mar 19 22:15:06 2026 +0100"
      },
      "committer": {
        "name": "Alexei Starovoitov",
        "email": "ast@kernel.org",
        "time": "Sat Mar 21 13:19:40 2026 -0700"
      },
      "message": "bpf: Fix sync_linked_regs regarding BPF_ADD_CONST32 zext propagation\n\nJenny reported that in sync_linked_regs() the BPF_ADD_CONST32 flag is\nchecked on known_reg (the register narrowed by a conditional branch)\ninstead of reg (the linked target register created by an alu32 operation).\n\nExample case with reg:\n\n  1. r6 \u003d bpf_get_prandom_u32()\n  2. r7 \u003d r6 (linked, same id)\n  3. w7 +\u003d 5 (alu32 -- r7 gets BPF_ADD_CONST32, zero-extended by CPU)\n  4. if w6 \u003c 0xFFFFFFFC goto safe (narrows r6 to [0xFFFFFFFC, 0xFFFFFFFF])\n  5. sync_linked_regs() propagates to r7 but does NOT call zext_32_to_64()\n  6. Verifier thinks r7 is [0x100000001, 0x100000004] instead of [1, 4]\n\nSince known_reg above does not have BPF_ADD_CONST32 set above, zext_32_to_64()\nis never called on alu32-derived linked registers. This causes the verifier\nto track incorrect 64-bit bounds, while the CPU correctly zero-extends the\n32-bit result.\n\nThe code checking known_reg-\u003eid was correct however (see scalars_alu32_wrap\nselftest case), but the real fix needs to handle both directions - zext\npropagation should be done when either register has BPF_ADD_CONST32, since\nthe linked relationship involves a 32-bit operation regardless of which\nside has the flag.\n\nExample case with known_reg (exercised also by scalars_alu32_wrap):\n\n  1. r1 \u003d r0; w1 +\u003d 0x100 (alu32 -- r1 gets BPF_ADD_CONST32)\n  2. if r1 \u003e 0x80 - known_reg \u003d r1 (has BPF_ADD_CONST32), reg \u003d r0 (doesn\u0027t)\n\nHence, fix it by checking for (reg-\u003eid | known_reg-\u003eid) \u0026 BPF_ADD_CONST32.\n\nMoreover, sync_linked_regs() also has a soundness issue when two linked\nregisters used different ALU widths: one with BPF_ADD_CONST32 and the\nother with BPF_ADD_CONST64. The delta relationship between linked registers\nassumes the same arithmetic width though. When one register went through\nalu32 (CPU zero-extends the 32-bit result) and the other went through\nalu64 (no zero-extension), the propagation produces incorrect bounds.\n\nExample:\n\n  r6 \u003d bpf_get_prandom_u32()     // fully unknown\n  if r6 \u003e\u003d 0x100000000 goto out  // constrain r6 to [0, U32_MAX]\n  r7 \u003d r6\n  w7 +\u003d 1                        // alu32: r7.id \u003d N | BPF_ADD_CONST32\n  r8 \u003d r6\n  r8 +\u003d 2                        // alu64: r8.id \u003d N | BPF_ADD_CONST64\n  if r7 \u003c 0xFFFFFFFF goto out    // narrows r7 to [0xFFFFFFFF, 0xFFFFFFFF]\n\nAt the branch on r7, sync_linked_regs() runs with known_reg\u003dr7\n(BPF_ADD_CONST32) and reg\u003dr8 (BPF_ADD_CONST64). The delta path\ncomputes:\n\n  r8 \u003d r7 + (delta_r8 - delta_r7) \u003d 0xFFFFFFFF + (2 - 1) \u003d 0x100000000\n\nThen, because known_reg-\u003eid has BPF_ADD_CONST32, zext_32_to_64(r8) is\ncalled, truncating r8 to [0, 0]. But r8 used a 64-bit ALU op -- the\nCPU does NOT zero-extend it. The actual CPU value of r8 is\n0xFFFFFFFE + 2 \u003d 0x100000000, not 0. The verifier now underestimates\nr8\u0027s 64-bit bounds, which is a soundness violation.\n\nFix sync_linked_regs() by skipping propagation when the two registers\nhave mixed ALU widths (one BPF_ADD_CONST32, the other BPF_ADD_CONST64).\n\nLastly, fix regsafe() used for path pruning: the existing checks used\n\"\u0026 BPF_ADD_CONST\" to test for offset linkage, which treated\nBPF_ADD_CONST32 and BPF_ADD_CONST64 as equivalent.\n\nFixes: 7a433e519364 (\"bpf: Support negative offsets, BPF_SUB, and alu32 for linked register tracking\")\nReported-by: Jenny Guanni Qu \u003cqguanni@gmail.com\u003e\nCo-developed-by: Puranjay Mohan \u003cpuranjay@kernel.org\u003e\nSigned-off-by: Puranjay Mohan \u003cpuranjay@kernel.org\u003e\nSigned-off-by: Daniel Borkmann \u003cdaniel@iogearbox.net\u003e\nAcked-by: Eduard Zingerman \u003ceddyz87@gmail.com\u003e\nLink: https://lore.kernel.org/r/20260319211507.213816-1-daniel@iogearbox.net\nSigned-off-by: Alexei Starovoitov \u003cast@kernel.org\u003e\n\n"
    },
    {
      "commit": "06880982c63012eb392df64c1ca587c294a72226",
      "tree": "e0d5508ea5e5342b229d8ef740f2d85398cafa5d",
      "parents": [
        "1abd3feb36636b28d7722851fc0c8d392a87e12d",
        "0ad1734cc5598d3ddb6126a8960efe85f0f807d7"
      ],
      "author": {
        "name": "Alexei Starovoitov",
        "email": "ast@kernel.org",
        "time": "Sat Mar 21 13:14:28 2026 -0700"
      },
      "committer": {
        "name": "Alexei Starovoitov",
        "email": "ast@kernel.org",
        "time": "Sat Mar 21 13:14:29 2026 -0700"
      },
      "message": "Merge branch \u0027bpf-fix-unsound-scalar-forking-for-bpf_or\u0027\n\nDaniel Wade says:\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nbpf: Fix unsound scalar forking for BPF_OR\n\nmaybe_fork_scalars() unconditionally sets the pushed path dst register\nto 0 for both BPF_AND and BPF_OR.  For AND this is correct (0 \u0026 K \u003d\u003d 0),\nbut for OR it is wrong (0 | K \u003d\u003d K, not 0).  This causes the verifier to\ntrack an incorrect value on the pushed path, leading to a verifier/runtime\ndivergence that allows out-of-bounds map value access.\n\nv4: Use block comment style for multi-line comments in selftests (Amery Hung)\n    Add Reviewed-by/Acked-by tags\nv3: Use single-line comment style in selftests (Alexei Starovoitov)\nv2: Use push_stack(env, env-\u003einsn_idx, ...) to re-execute the insn\n    on the pushed path (Eduard Zingerman)\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nLink: https://patch.msgid.link/20260314021521.128361-1-danjwade95@gmail.com\nSigned-off-by: Alexei Starovoitov \u003cast@kernel.org\u003e\n"
    },
    {
      "commit": "0ad1734cc5598d3ddb6126a8960efe85f0f807d7",
      "tree": "e0d5508ea5e5342b229d8ef740f2d85398cafa5d",
      "parents": [
        "c845894ebd6fb43226b3118d6b017942550910c5"
      ],
      "author": {
        "name": "Daniel Wade",
        "email": "danjwade95@gmail.com",
        "time": "Sat Mar 14 13:15:21 2026 +1100"
      },
      "committer": {
        "name": "Alexei Starovoitov",
        "email": "ast@kernel.org",
        "time": "Sat Mar 21 13:14:28 2026 -0700"
      },
      "message": "selftests/bpf: Add tests for maybe_fork_scalars() OR vs AND handling\n\nAdd three test cases to verifier_bounds.c to verify that\nmaybe_fork_scalars() correctly tracks register values for BPF_OR\noperations with constant source operands:\n\n1. or_scalar_fork_rejects_oob: After ARSH 63 + OR 8, the pushed\n   path should have dst \u003d 8. With value_size \u003d 8, accessing\n   map_value + 8 is out of bounds and must be rejected.\n\n2. and_scalar_fork_still_works: Regression test ensuring AND\n   forking continues to work. ARSH 63 + AND 4 produces pushed\n   dst \u003d 0 and current dst \u003d 4, both within value_size \u003d 8.\n\n3. or_scalar_fork_allows_inbounds: After ARSH 63 + OR 4, the\n   pushed path has dst \u003d 4, which is within value_size \u003d 8\n   and should be accepted.\n\nThese tests exercise the fix in the previous patch, which makes the\npushed path re-execute the ALU instruction so it computes the correct\nresult for BPF_OR.\n\nSigned-off-by: Daniel Wade \u003cdanjwade95@gmail.com\u003e\nReviewed-by: Amery Hung \u003cameryhung@gmail.com\u003e\nAcked-by: Eduard Zingerman \u003ceddyz87@gmail.com\u003e\nLink: https://lore.kernel.org/r/20260314021521.128361-3-danjwade95@gmail.com\nSigned-off-by: Alexei Starovoitov \u003cast@kernel.org\u003e\n\n"
    }
  ],
  "next": "c845894ebd6fb43226b3118d6b017942550910c5"
}
