)]}'
{
  "log": [
    {
      "commit": "ae085d7f9365de7da27ab5c0d16b12d51ea7fca9",
      "tree": "30c8132fb43e67b2cb216fe7ff2ff0cdccbf0e80",
      "parents": [
        "f82da161ea75dc4db21b2499e4b1facd36dab275"
      ],
      "author": {
        "name": "Muchun Song",
        "email": "songmuchun@bytedance.com",
        "time": "Sun Mar 27 13:18:52 2022 +0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 27 18:47:00 2022 -0700"
      },
      "message": "mm: kfence: fix missing objcg housekeeping for SLAB\n\nThe objcg is not cleared and put for kfence object when it is freed,\nwhich could lead to memory leak for struct obj_cgroup and wrong\nstatistics of NR_SLAB_RECLAIMABLE_B or NR_SLAB_UNRECLAIMABLE_B.\n\nSince the last freed object\u0027s objcg is not cleared,\nmem_cgroup_from_obj() could return the wrong memcg when this kfence\nobject, which is not charged to any objcgs, is reallocated to other\nusers.\n\nA real word issue [1] is caused by this bug.\n\nLink: https://lore.kernel.org/all/000000000000cabcb505dae9e577@google.com/ [1]\nReported-by: syzbot+f8c45ccc7d5d45fc5965@syzkaller.appspotmail.com\nFixes: d3fb45f370d9 (\"mm, kfence: insert KFENCE hooks for SLAB\")\nSigned-off-by: Muchun Song \u003csongmuchun@bytedance.com\u003e\nCc: Dmitry Vyukov \u003cdvyukov@google.com\u003e\nCc: Marco Elver \u003celver@google.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f82da161ea75dc4db21b2499e4b1facd36dab275",
      "tree": "ce6f5a8c2d26f006b11849fbfa5e35bc0c00480c",
      "parents": [
        "29cbaa3e60dfe48e341a3a5ce1c2d8f3d9e9667c"
      ],
      "author": {
        "name": "Stephen Rothwell",
        "email": "sfr@canb.auug.org.au",
        "time": "Mon Mar 28 08:55:39 2022 +1100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 27 15:31:16 2022 -0700"
      },
      "message": "powerpc: restore removed #endif\n\nFixes: 7001052160d1 (\"Merge tag \u0027x86_core_for_5.18_rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\")\nSigned-off-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nBrown-paper-bag-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "29cbaa3e60dfe48e341a3a5ce1c2d8f3d9e9667c",
      "tree": "313f2b5436ced50e76a706d0edd41386305db75d",
      "parents": [
        "50d602d81f35621042fa0cdae25808662caffda8",
        "aea0b9f2486da8497f35c7114b764bf55e17c7ea"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 27 14:26:47 2022 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 27 14:26:47 2022 -0700"
      },
      "message": "Merge tag \u0027landlock-5.18-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mic/linux\n\nPull landlock updates from Mickaël Salaün:\n \"These two commits contain a minor fix for the sandboxer sample, and a\n  Landlock ruleset FD name standardization\"\n\n* tag \u0027landlock-5.18-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mic/linux:\n  landlock: Use square brackets around \"landlock-ruleset\"\n  samples/landlock: Fix path_list memory leak\n"
    },
    {
      "commit": "50d602d81f35621042fa0cdae25808662caffda8",
      "tree": "aac9b08f599800a97609845825641425b16678c4",
      "parents": [
        "dfb0a0b715fdda25a5a1f54cb9c73e1410a868e8",
        "1b0d0f7c12d57763fe27200d0569c863f11d2b8a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 27 14:21:57 2022 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 27 14:21:57 2022 -0700"
      },
      "message": "Merge tag \u0027mailbox-v5.18\u0027 of git://git.linaro.org/landing-teams/working/fujitsu/integration\n\nPull mailbox updates from Jassi Brar:\n \"qcom:\n   - add support for MSM8976\n\n  mtk:\n   - enable mt8186\n   - add ADSP controller driver\n\n  ti:\n   - use poll mode during suspend\n\n  tegra:\n   - fix tx channel flush\n\n  imx:\n   - add i.MX8 SECO MU support\n   - prepare for, and add iMX93 support\"\n\n* tag \u0027mailbox-v5.18\u0027 of git://git.linaro.org/landing-teams/working/fujitsu/integration:\n  dt-bindings: mailbox: add definition for mt8186\n  mailbox: ti-msgmgr: Operate mailbox in polled mode during system suspend\n  mailbox: ti-msgmgr: Refactor message read during interrupt handler\n  mailbox: imx: support i.MX93 S401 MU\n  mailbox: imx: support dual interrupts\n  mailbox: imx: extend irq to an array\n  dt-bindings: mailbox: imx-mu: add i.MX93 S4 MU support\n  dt-bindings: mailbox: imx-mu: add i.MX93 MU\n  mailbox: imx: add i.MX8 SECO MU support\n  mailbox: imx: introduce rxdb callback\n  dt-bindings: mailbox: imx-mu: add i.MX8 SECO MU support\n  mailbox: imx: enlarge timeout while reading/writing messages to SCFW\n  mailbox: imx: fix crash in resume on i.mx8ulp\n  mailbox: imx: fix wakeup failure from freeze mode\n  mailbox: mediatek: add support for adsp mailbox controller\n  dt-bindings: mailbox: mtk,adsp-mbox: add mtk adsp-mbox document\n  mailbox: qcom-apcs-ipc: Add compatible for MSM8976 SoC\n  dt-bindings: mailbox: Add compatible for the MSM8976\n  mailbox: tegra-hsp: Flush whole channel\n"
    },
    {
      "commit": "dfb0a0b715fdda25a5a1f54cb9c73e1410a868e8",
      "tree": "afe6d503b462c1265a2903be5479a1f2d22955ff",
      "parents": [
        "7b58b82b86c8b65a2b57a4c6cb96a460654f9e09",
        "e26557a0aa68acfb705b51947b7c756401a1ab71"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 27 14:09:48 2022 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 27 14:09:48 2022 -0700"
      },
      "message": "Merge tag \u0027leds-5.18-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/pavel/linux-leds\n\nPull LED updates from Pavel Machek:\n \"Nothing major here, there are two drivers that need review and did not\n  make it into this round\"\n\n* tag \u0027leds-5.18-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/pavel/linux-leds:\n  leds: pca955x: Allow zero LEDs to be specified\n  leds: pca955x: Make the gpiochip always expose all pins\n  leds: simatic-ipc-leds: Don\u0027t directly deref ioremap_resource() returned ptr\n  leds: simatic-ipc-leds: Make simatic_ipc_led_mem_res static\n  leds: lm3692x: Return 0 from remove callback\n  leds: sgm3140: Add ocs,ocp8110 compatible\n  dt-bindings: vendor-prefixes: Add ocs prefix\n  dt-bindings: leds: common: fix unit address in max77693 example\n"
    },
    {
      "commit": "7b58b82b86c8b65a2b57a4c6cb96a460654f9e09",
      "tree": "a13e19f216389f16f1cb6641d54751f167482515",
      "parents": [
        "02f9a04d76b76b80b05ddc33ceabe806b84fda3c",
        "ab0809af0bee88b689ba289ec8c40aa2be3a17ec"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 27 13:42:32 2022 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 27 13:42:32 2022 -0700"
      },
      "message": "Merge tag \u0027perf-tools-for-v5.18-2022-03-26\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux\n\nPull perf tools updates from Arnaldo Carvalho de Melo:\n \"New features:\n\n  perf ftrace:\n\n   - Add -n/--use-nsec option to the \u0027latency\u0027 subcommand.\n\n     Default: usecs:\n\n     $ sudo perf ftrace latency -T dput -a sleep 1\n     #   DURATION     |      COUNT | GRAPH                          |\n          0 - 1    us |    2098375 | #############################  |\n          1 - 2    us |         61 |                                |\n          2 - 4    us |         33 |                                |\n          4 - 8    us |         13 |                                |\n          8 - 16   us |        124 |                                |\n         16 - 32   us |        123 |                                |\n         32 - 64   us |          1 |                                |\n         64 - 128  us |          0 |                                |\n        128 - 256  us |          1 |                                |\n        256 - 512  us |          0 |                                |\n\n     Better granularity with nsec:\n\n     $ sudo perf ftrace latency -T dput -a -n sleep 1\n     #   DURATION     |      COUNT | GRAPH                          |\n          0 - 1    us |          0 |                                |\n          1 - 2    ns |          0 |                                |\n          2 - 4    ns |          0 |                                |\n          4 - 8    ns |          0 |                                |\n          8 - 16   ns |          0 |                                |\n         16 - 32   ns |          0 |                                |\n         32 - 64   ns |          0 |                                |\n         64 - 128  ns |    1163434 | ##############                 |\n        128 - 256  ns |     914102 | #############                  |\n        256 - 512  ns |        884 |                                |\n        512 - 1024 ns |        613 |                                |\n          1 - 2    us |         31 |                                |\n          2 - 4    us |         17 |                                |\n          4 - 8    us |          7 |                                |\n          8 - 16   us |        123 |                                |\n         16 - 32   us |         83 |                                |\n\n  perf lock:\n\n   - Add -c/--combine-locks option to merge lock instances in the same\n     class into a single entry.\n\n     # perf lock report -c\n                    Name acquired contended avg wait(ns) total wait(ns) max wait(ns) min wait(ns)\n\n           rcu_read_lock   251225         0            0              0            0            0\n      hrtimer_bases.lock    39450         0            0              0            0            0\n     \u0026sb-\u003es_type-\u003ei_l...    10301         1          662            662          662          662\n        ptlock_ptr(page)    10173         2          701           1402          760          642\n     \u0026(ei-\u003ei_block_re...     8732         0            0              0            0            0\n            \u0026xa-\u003exa_lock     8088         0            0              0            0            0\n             \u0026base-\u003elock     6705         0            0              0            0            0\n             \u0026p-\u003epi_lock     5549         0            0              0            0            0\n     \u0026dentry-\u003ed_lockr...     5010         4         1274           5097         1844          789\n               \u0026ep-\u003elock     3958         0            0              0            0            0\n\n      - Add -F/--field option to customize the list of fields to output:\n\n     $ perf lock report -F contended,wait_max -k avg_wait\n                     Name contended max wait(ns) avg wait(ns)\n\n           slock-AF_INET6         1        23543        23543\n        \u0026lruvec-\u003elru_lock         5        18317        11254\n           slock-AF_INET6         1        10379        10379\n               rcu_node_1         1         2104         2104\n      \u0026dentry-\u003ed_lockr...         1         1844         1844\n      \u0026dentry-\u003ed_lockr...         1         1672         1672\n         \u0026newf-\u003efile_lock        15         2279         1025\n      \u0026dentry-\u003ed_lockr...         1          792          792\n\n   - Add --synth\u003dno option for record, as there is no need to symbolize,\n     lock names comes from the tracepoints.\n\n  perf record:\n\n   - Threaded recording, opt-in, via the new --threads command line\n     option.\n\n   - Improve AMD IBS (Instruction-Based Sampling) error handling\n     messages.\n\n  perf script:\n\n   - Add \u0027brstackinsnlen\u0027 field (use it with -F) for branch stacks.\n\n   - Output branch sample type in \u0027perf script\u0027.\n\n  perf report:\n\n   - Add \"addr_from\" and \"addr_to\" sort dimensions.\n\n   - Print branch stack entry type in \u0027perf report --dump-raw-trace\u0027\n\n   - Fix symbolization for chrooted workloads.\n\n  Hardware tracing:\n\n  Intel PT:\n\n   - Add CFE (Control Flow Event) and EVD (Event Data) packets support.\n\n   - Add MODE.Exec IFLAG bit support.\n\n     Explanation about these features from the \"Intel® 64 and IA-32\n     architectures software developer’s manual combined volumes: 1, 2A,\n     2B, 2C, 2D, 3A, 3B, 3C, 3D, and 4\" PDF at:\n\n        https://cdrdv2.intel.com/v1/dl/getContent/671200\n\n     At page 3951:\n      \"32.2.4\n\n       Event Trace is a capability that exposes details about the\n       asynchronous events, when they are generated, and when their\n       corresponding software event handler completes execution. These\n       include:\n\n        o Interrupts, including NMI and SMI, including the interrupt\n          vector when defined.\n\n        o Faults, exceptions including the fault vector.\n\n           - Page faults additionally include the page fault address,\n             when in context.\n\n        o Event handler returns, including IRET and RSM.\n\n        o VM exits and VM entries.¹\n\n           - VM exits include the values written to the “exit reason”\n             and “exit qualification” VMCS fields. INIT and SIPI events.\n\n        o TSX aborts, including the abort status returned for the RTM\n          instructions.\n\n        o Shutdown.\n\n       Additionally, it provides indication of the status of the\n       Interrupt Flag (IF), to indicate when interrupts are masked\"\n\n  ARM CoreSight:\n\n   - Use advertised caps/min_interval as default sample_period on ARM\n     spe.\n\n   - Update deduction of TRCCONFIGR register for branch broadcast on\n     ARM\u0027s CoreSight ETM.\n\n  Vendor Events (JSON):\n\n  Intel:\n\n   - Update events and metrics for: Alderlake, Broadwell, Broadwell DE,\n     BroadwellX, CascadelakeX, Elkhartlake, Bonnell, Goldmont,\n     GoldmontPlus, Westmere EP-DP, Haswell, HaswellX, Icelake, IcelakeX,\n     Ivybridge, Ivytown, Jaketown, Knights Landing, Nehalem EP,\n     Sandybridge, Silvermont, Skylake, Skylake Server, SkylakeX,\n     Tigerlake, TremontX, Westmere EP-SP, and Westmere EX.\n\n  ARM:\n\n   - Add support for HiSilicon CPA PMU aliasing.\n\n  perf stat:\n\n   - Fix forked applications enablement of counters.\n\n   - The \u0027slots\u0027 should only be printed on a different order than the\n     one specified on the command line when \u0027topdown\u0027 events are\n     present, fix it.\n\n  Miscellaneous:\n\n   - Sync msr-index, cpufeatures header files with the kernel sources.\n\n   - Stop using some deprecated libbpf APIs in \u0027perf trace\u0027.\n\n   - Fix some spelling mistakes.\n\n   - Refactor the maps pointers usage to pave the way for using refcount\n     debugging.\n\n   - Only offer the --tui option on perf top, report and annotate when\n     perf was built with libslang.\n\n   - Don\u0027t mention --to-ctf in \u0027perf data --help\u0027 when not linking with\n     the required library, libbabeltrace.\n\n   - Use ARRAY_SIZE() instead of ad hoc equivalent, spotted by\n     array_size.cocci.\n\n   - Enhance the matching of sub-commands abbreviations:\n\t\u0027perf c2c rec\u0027 -\u003e \u0027perf c2c record\u0027\n\t\u0027perf c2c recport -\u003e error\n\n   - Set build-id using build-id header on new mmap records.\n\n   - Fix generation of \u0027perf --version\u0027 string.\n\n  perf test:\n\n   - Add test for the arm_spe event.\n\n   - Add test to check unwinding using fame-pointer (fp) mode on arm64.\n\n   - Make metric testing more robust in \u0027perf test\u0027.\n\n   - Add error message for unsupported branch stack cases.\n\n  libperf:\n\n   - Add API for allocating new thread map array.\n\n   - Fix typo in perf_evlist__open() failure error messages in libperf\n     tests.\n\n  perf c2c:\n\n   - Replace bitmap_weight() with bitmap_empty() where appropriate\"\n\n* tag \u0027perf-tools-for-v5.18-2022-03-26\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux: (143 commits)\n  perf evsel: Improve AMD IBS (Instruction-Based Sampling) error handling messages\n  perf python: Add perf_env stubs that will be needed in evsel__open_strerror()\n  perf tools: Enhance the matching of sub-commands abbreviations\n  libperf tests: Fix typo in perf_evlist__open() failure error messages\n  tools arm64: Import cputype.h\n  perf lock: Add -F/--field option to control output\n  perf lock: Extend struct lock_key to have print function\n  perf lock: Add --synth\u003dno option for record\n  tools headers cpufeatures: Sync with the kernel sources\n  tools headers cpufeatures: Sync with the kernel sources\n  perf stat: Fix forked applications enablement of counters\n  tools arch x86: Sync the msr-index.h copy with the kernel sources\n  perf evsel: Make evsel__env() always return a valid env\n  perf build-id: Fix spelling mistake \"Cant\" -\u003e \"Can\u0027t\"\n  perf header: Fix spelling mistake \"could\u0027t\" -\u003e \"couldn\u0027t\"\n  perf script: Add \u0027brstackinsnlen\u0027 for branch stacks\n  perf parse-events: Move slots only with topdown\n  perf ftrace latency: Update documentation\n  perf ftrace latency: Add -n/--use-nsec option\n  perf tools: Fix version kernel tag\n  ...\n"
    },
    {
      "commit": "02f9a04d76b76b80b05ddc33ceabe806b84fda3c",
      "tree": "03dd9728e63a564a6688031255bf8432086e74ae",
      "parents": [
        "88b3be5c6391a5b4be1dcdc4bb8dca8438105438",
        "58ffc34896db2e5e49e6ae6bf8042f85504d84e8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 27 13:36:06 2022 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 27 13:36:06 2022 -0700"
      },
      "message": "Merge tag \u0027memblock-v5.18-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rppt/memblock\n\nPull memblock updates from Mike Rapoport:\n \"Test suite and a small cleanup:\n\n   - A small cleanup of unused variable in __next_mem_pfn_range_in_zone\n\n   - Initial test suite to simulate memblock behaviour in userspace\"\n\n* tag \u0027memblock-v5.18-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rppt/memblock: (27 commits)\n  memblock tests: Add TODO and README files\n  memblock tests: Add memblock_alloc_try_nid tests for bottom up\n  memblock tests: Add memblock_alloc_try_nid tests for top down\n  memblock tests: Add memblock_alloc_from tests for bottom up\n  memblock tests: Add memblock_alloc_from tests for top down\n  memblock tests: Add memblock_alloc tests for bottom up\n  memblock tests: Add memblock_alloc tests for top down\n  memblock tests: Add simulation of physical memory\n  memblock tests: Split up reset_memblock function\n  memblock tests: Fix testing with 32-bit physical addresses\n  memblock: __next_mem_pfn_range_in_zone: remove unneeded local variable nid\n  memblock tests: Add memblock_free tests\n  memblock tests: Add memblock_add_node test\n  memblock tests: Add memblock_remove tests\n  memblock tests: Add memblock_reserve tests\n  memblock tests: Add memblock_add tests\n  memblock tests: Add memblock reset function\n  memblock tests: Add skeleton of the memblock simulator\n  tools/include: Add debugfs.h stub\n  tools/include: Add pfn.h stub\n  ...\n"
    },
    {
      "commit": "88b3be5c6391a5b4be1dcdc4bb8dca8438105438",
      "tree": "5078431068e528b66211591e08757c4b9ea324d4",
      "parents": [
        "7001052160d172f6de06adeffde24dde9935ece8",
        "862cf8d5fd98ed8ea8989726ed5da53761a9ed76"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 27 11:43:09 2022 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 27 11:43:09 2022 -0700"
      },
      "message": "Merge tag \u0027for-linus\u0027 of https://github.com/openrisc/linux\n\nPull OpenRISC updates from Stafford Horne:\n \"Not much for OpenRISC this merge window, I do have some things on the\n  back burner like sparse warning cleanups and new defconfigs. But I\n  didn\u0027t get time to polish the patches off for this round. There are\n  OpenRISC updates coming in via other queues like removal of set_fs()\n  and possibly new generic ticket locks.\n\n  This just has a small fixup to remove duplicate initializer in memcpy\n  from Kuniyuki Iwashima\"\n\n* tag \u0027for-linus\u0027 of https://github.com/openrisc/linux:\n  openrisc/boot: Remove unnecessary initialisation in memcpy().\n"
    },
    {
      "commit": "7001052160d172f6de06adeffde24dde9935ece8",
      "tree": "65fbc9c0df5a2989b68882ce1d893a0d78134c6a",
      "parents": [
        "f022814633e1c600507b3a99691b4d624c2813f0",
        "3986f65d4f408ce9d0a361e3226a3246a5fb701c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 27 10:17:23 2022 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 27 10:17:23 2022 -0700"
      },
      "message": "Merge tag \u0027x86_core_for_5.18_rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull x86 CET-IBT (Control-Flow-Integrity) support from Peter Zijlstra:\n \"Add support for Intel CET-IBT, available since Tigerlake (11th gen),\n  which is a coarse grained, hardware based, forward edge\n  Control-Flow-Integrity mechanism where any indirect CALL/JMP must\n  target an ENDBR instruction or suffer #CP.\n\n  Additionally, since Alderlake (12th gen)/Sapphire-Rapids, speculation\n  is limited to 2 instructions (and typically fewer) on branch targets\n  not starting with ENDBR. CET-IBT also limits speculation of the next\n  sequential instruction after the indirect CALL/JMP [1].\n\n  CET-IBT is fundamentally incompatible with retpolines, but provides,\n  as described above, speculation limits itself\"\n\n[1] https://www.intel.com/content/www/us/en/developer/articles/technical/software-security-guidance/technical-documentation/branch-history-injection.html\n\n* tag \u0027x86_core_for_5.18_rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (53 commits)\n  kvm/emulate: Fix SETcc emulation for ENDBR\n  x86/Kconfig: Only allow CONFIG_X86_KERNEL_IBT with ld.lld \u003e\u003d 14.0.0\n  x86/Kconfig: Only enable CONFIG_CC_HAS_IBT for clang \u003e\u003d 14.0.0\n  kbuild: Fixup the IBT kbuild changes\n  x86/Kconfig: Do not allow CONFIG_X86_X32_ABI\u003dy with llvm-objcopy\n  x86: Remove toolchain check for X32 ABI capability\n  x86/alternative: Use .ibt_endbr_seal to seal indirect calls\n  objtool: Find unused ENDBR instructions\n  objtool: Validate IBT assumptions\n  objtool: Add IBT/ENDBR decoding\n  objtool: Read the NOENDBR annotation\n  x86: Annotate idtentry_df()\n  x86,objtool: Move the ASM_REACHABLE annotation to objtool.h\n  x86: Annotate call_on_stack()\n  objtool: Rework ASM_REACHABLE\n  x86: Mark __invalid_creds() __noreturn\n  exit: Mark do_group_exit() __noreturn\n  x86: Mark stop_this_cpu() __noreturn\n  objtool: Ignore extra-symbol code\n  objtool: Rename --duplicate to --lto\n  ...\n"
    },
    {
      "commit": "f022814633e1c600507b3a99691b4d624c2813f0",
      "tree": "8bb10067a8777133c9ad86c2ef38a4b1dada607f",
      "parents": [
        "710f5d627a98e86f821aceb840b8f2f1fcc6cf75",
        "eca344a7362e0f34f179298fd8366bcd556eede1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 26 14:54:41 2022 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 26 14:54:41 2022 -0700"
      },
      "message": "Merge tag \u0027trace-v5.18-1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace\n\nPull trace event string verifier fix from Steven Rostedt:\n \"The run-time string verifier checks all trace event formats as\n  they are read from the tracing file to make sure that the %s pointers\n  are not reading something that no longer exists.\n\n  However, it failed to account for the valid case of \u0027%*.s\u0027 where the\n  length given is zero, and the string is NULL. It incorrectly flagged\n  it as a null pointer dereference and gave a WARN_ON()\"\n\n* tag \u0027trace-v5.18-1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:\n  tracing: Have trace event string test handle zero length strings\n"
    },
    {
      "commit": "710f5d627a98e86f821aceb840b8f2f1fcc6cf75",
      "tree": "b1cd55a33cfdb8e872d7189333570079efc908ac",
      "parents": [
        "5627ecb8374a00163d90bc92c33f829ac27895b2",
        "46d2c20b0b10cf07a2a24b047a09195ba96c84f7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 26 13:08:25 2022 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 26 13:08:25 2022 -0700"
      },
      "message": "Merge tag \u0027usb-5.18-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb\n\nPull USB/Thunderbolt updates from Greg KH:\n \"Here is the big set of USB and Thunderbolt changes for 5.18-rc1.\n\n  Nothing major in here, just lots of little improvements and cleanups\n  and new device support. Highlights are:\n\n   - list iterator fixups for when we walk past the end of the list (a\n     common problem that was cut/pasted in almost all USB gadget\n     drivers)\n\n   - xen USB driver \"hardening\" for malicious hosts\n\n   - xhci driver updates and fixes for more hardware types\n\n   - xhci debug cable fixes to make it actually work again\n\n   - usb gadget audio driver improvements\n\n   - usb gadget storage fixes to work with OS-X\n\n   - lots of other small usb gadget fixes and updates\n\n   - USB DWC3 driver improvements for more hardware types\n\n   - Lots of other small USB driver improvements\n\n   - DTS updates for some USB platforms\n\n  All of these have been in linux-next for a while with no reported\n  issues\"\n\n* tag \u0027usb-5.18-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (172 commits)\n  usb: gadget: fsl_qe_udc: Add missing semicolon in qe_ep_dequeue()\n  dt-bindings: usb: mtk-xhci: add compatible for mt8186\n  usb: dwc3: Issue core soft reset before enabling run/stop\n  usb: gadget: Makefile: remove ccflags-y\n  USB: usb-storage: Fix use of bitfields for hardware data in ene_ub6250.c\n  usb: gadget: eliminate anonymous module_init \u0026 module_exit\n  usb: usbip: eliminate anonymous module_init \u0026 module_exit\n  xen/usb: harden xen_hcd against malicious backends\n  usb: dwc3: gadget: Wait for ep0 xfers to complete during dequeue\n  usb: dwc3: gadget: move cmd_endtransfer to extra function\n  usb: dwc3: gadget: ep_queue simplify isoc start condition\n  xen/usb: don\u0027t use arbitrary_virt_to_machine()\n  usb: isp1760: remove redundant max_packet() macro\n  usb: oxu210hp-hcd: remove redundant call to max_packet() macro\n  usb: common: usb-conn-gpio: Make VBUS supply completely optional\n  USB: storage: ums-realtek: fix error code in rts51x_read_mem()\n  usb: early: xhci-dbc: Fix xdbc number parsing\n  usb: early: xhci-dbc: Remove duplicate keep parsing\n  x86/tsc: Be consistent about use_tsc_delay()\n  usb: gadget: udc: s3c2410: remove usage of list iterator past the loop body\n  ...\n"
    },
    {
      "commit": "5627ecb8374a00163d90bc92c33f829ac27895b2",
      "tree": "2fde352c8f5412d1ed70655c44beb8c919967257",
      "parents": [
        "a060c9409e25d573c23fccb8e02f098aa33f812e",
        "1a22aabf20adf89cb216f566913196128766f25b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 26 12:46:08 2022 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 26 12:46:08 2022 -0700"
      },
      "message": "Merge branch \u0027i2c/for-mergewindow\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux\n\nPull i2c updates from Wolfram Sang:\n\n - tracepoints when Linux acts as an I2C client\n\n - added support for AMD PSP\n\n - whole subsystem now uses generic_handle_irq_safe()\n\n - piix4 driver gained MMIO access enabling so far missed controllers\n   with AMD chipsets\n\n - a bulk of device driver updates, refactorization, and fixes.\n\n* \u0027i2c/for-mergewindow\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux: (61 commits)\n  i2c: mux: demux-pinctrl: do not deactivate a master that is not active\n  i2c: meson: Fix wrong speed use from probe\n  i2c: add tracepoints for I2C slave events\n  i2c: designware: Remove code duplication\n  i2c: cros-ec-tunnel: Fix syntax errors in comments\n  MAINTAINERS: adjust XLP9XX I2C DRIVER after removing the devicetree binding\n  i2c: designware: Mark dw_i2c_plat_{suspend,resume}() as __maybe_unused\n  i2c: mediatek: Add i2c compatible for Mediatek MT8168\n  dt-bindings: i2c: update bindings for MT8168 SoC\n  i2c: mt65xx: Simplify with clk-bulk\n  i2c: i801: Drop two outdated comments\n  i2c: xiic: Make bus names unique\n  i2c: i801: Add support for the Process Call command\n  i2c: i801: Drop useless masking in i801_access\n  i2c: tegra: Add SMBus block read function\n  i2c: designware: Use the i2c_mark_adapter_suspended/resumed() helpers\n  i2c: designware: Lock the adapter while setting the suspended flag\n  i2c: mediatek: remove redundant null check\n  i2c: mediatek: modify bus speed calculation formula\n  i2c: designware: Fix improper usage of readl\n  ...\n"
    },
    {
      "commit": "a060c9409e25d573c23fccb8e02f098aa33f812e",
      "tree": "71c107fa653cc1e02ac0e1b7971b2c14eb0d7465",
      "parents": [
        "b06a17583f6f810f620f95382b171cc5ce9848ee",
        "631f871f071746789e9242e514ab0f49067fa97a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 26 12:41:52 2022 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 26 12:41:52 2022 -0700"
      },
      "message": "Merge tag \u0027write-page-prefaulting\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2\n\nPull iomap fixlet from Andreas Gruenbacher:\n \"Fix buffered write page prefaulting.\n\n  I forgot to send it the previous merge window. I\u0027ve only improved the\n  patch description since\"\n\n* tag \u0027write-page-prefaulting\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2:\n  fs/iomap: Fix buffered write page prefaulting\n"
    },
    {
      "commit": "b06a17583f6f810f620f95382b171cc5ce9848ee",
      "tree": "7195e91651aafd188282884c5bb890e5a4232c20",
      "parents": [
        "4be240b18aa67b1144af546bea2d7cad1b75c19b",
        "00a4f836eb369723b148e3f250c850a028778832"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 26 12:30:44 2022 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 26 12:30:44 2022 -0700"
      },
      "message": "Merge tag \u0027array-bounds-v5.18-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux\n\nPull array-bounds updates from Kees Cook:\n \"This enables -Warray-bounds and -Wzero-length-bounds, now that the\n  many bug fixes have landed all over the place in the kernel, and in\n  GCC itself[1].\n\n  A couple fixes[2] for known corner-case issues currently live in my\n  \"pending-fixes\" tree which I\u0027m expecting to send next week if other\n  maintainers still haven\u0027t picked them up.\n\n  I\u0027m also expecting we can enable -Wstringop-overflow next cycle, as\n  there are only a few stragglers[3], but it might even be possible for\n  this release\"\n\n[1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id\u003d99578\n[2] https://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git/commit/?h\u003dfor-next/pending-fixes\u0026id\u003d2d253138910eec553fc706379914243d71de9b85\n[3] https://github.com/KSPP/linux/issues/181\n\n* tag \u0027array-bounds-v5.18-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:\n  Makefile: Enable -Wzero-length-bounds\n  Makefile: Enable -Warray-bounds\n"
    },
    {
      "commit": "4be240b18aa67b1144af546bea2d7cad1b75c19b",
      "tree": "f95b3ca5c3f5de5b634da578b55f85d2ae89c5de",
      "parents": [
        "3f7282139fe1594be464b90141d56738e7a0ea8a",
        "281d0c962752fb40866dd8d4cade68656f34bd1f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 26 12:19:04 2022 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 26 12:19:04 2022 -0700"
      },
      "message": "Merge tag \u0027memcpy-v5.18-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux\n\nPull FORTIFY_SOURCE updates from Kees Cook:\n \"This series consists of two halves:\n\n   - strict compile-time buffer size checking under FORTIFY_SOURCE for\n     the memcpy()-family of functions (for extensive details and\n     rationale, see the first commit)\n\n   - enabling FORTIFY_SOURCE for Clang, which has had many overlapping\n     bugs that we\u0027ve finally worked past\"\n\n* tag \u0027memcpy-v5.18-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:\n  fortify: Add Clang support\n  fortify: Make sure strlen() may still be used as a constant expression\n  fortify: Use __diagnose_as() for better diagnostic coverage\n  fortify: Make pointer arguments const\n  Compiler Attributes: Add __diagnose_as for Clang\n  Compiler Attributes: Add __overloadable for Clang\n  Compiler Attributes: Add __pass_object_size for Clang\n  fortify: Replace open-coded __gnu_inline attribute\n  fortify: Update compile-time tests for Clang 14\n  fortify: Detect struct member overflows in memset() at compile-time\n  fortify: Detect struct member overflows in memmove() at compile-time\n  fortify: Detect struct member overflows in memcpy() at compile-time\n"
    },
    {
      "commit": "3f7282139fe1594be464b90141d56738e7a0ea8a",
      "tree": "2a6dfc4449ceeee6b5509c3fcc58c33865c89af6",
      "parents": [
        "752d422e74c41084c3c9c9a159cb8d2795fa0c22",
        "1e21270685ae4c14361dd501da62cdc4be867d4e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 26 12:01:35 2022 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 26 12:01:35 2022 -0700"
      },
      "message": "Merge tag \u0027for-5.18/64bit-pi-2022-03-25\u0027 of git://git.kernel.dk/linux-block\n\nPull block layer 64-bit data integrity support from Jens Axboe:\n \"This adds support for 64-bit data integrity in the block layer and in\n  NVMe\"\n\n* tag \u0027for-5.18/64bit-pi-2022-03-25\u0027 of git://git.kernel.dk/linux-block:\n  crypto: fix crc64 testmgr digest byte order\n  nvme: add support for enhanced metadata\n  block: add pi for extended integrity\n  crypto: add rocksoft 64b crc guard tag framework\n  lib: add rocksoft model crc64\n  linux/kernel: introduce lower_48_bits function\n  asm-generic: introduce be48 unaligned accessors\n  nvme: allow integrity on extended metadata formats\n  block: support pi with extended metadata\n"
    },
    {
      "commit": "752d422e74c41084c3c9c9a159cb8d2795fa0c22",
      "tree": "61ab9a5fd11d7ad1f29d1d9c2f8e59210849fd7b",
      "parents": [
        "561593a048d7d6915889706f4b503a65435c033a",
        "61285ff72ae59e1603f908b13363e99883d67e09"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 26 11:59:30 2022 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 26 11:59:30 2022 -0700"
      },
      "message": "Merge tag \u0027for-5.18/alloc-cleanups-2022-03-25\u0027 of git://git.kernel.dk/linux-block\n\nPull bio allocation fix from Jens Axboe:\n \"We got some reports of users seeing:\n\n\tUnexpected gfp: 0x2 (__GFP_HIGHMEM). Fixing up to gfp: 0x1192888\n\n  which is a regression caused by the bio allocation cleanups\"\n\n* tag \u0027for-5.18/alloc-cleanups-2022-03-25\u0027 of git://git.kernel.dk/linux-block:\n  fs: do not pass __GFP_HIGHMEM to bio_alloc in do_mpage_readpage\n"
    },
    {
      "commit": "561593a048d7d6915889706f4b503a65435c033a",
      "tree": "5b802be4953a1dae421b528d32082e297a17a7cc",
      "parents": [
        "9bf3fc5007856d5ca76d6e7a4652e3b67b683241",
        "7b12e49669c99f63bc12351c57e581f1f14d4adf"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 26 11:51:46 2022 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 26 11:51:46 2022 -0700"
      },
      "message": "Merge tag \u0027for-5.18/write-streams-2022-03-18\u0027 of git://git.kernel.dk/linux-block\n\nPull NVMe write streams removal from Jens Axboe:\n \"This removes the write streams support in NVMe. No vendor ever really\n  shipped working support for this, and they are not interested in\n  supporting it.\n\n  With the NVMe support gone, we have nothing in the tree that supports\n  this. Remove passing around of the hints.\n\n  The only discussion point in this patchset imho is the fact that the\n  file specific write hint setting/getting fcntl helpers will now return\n  -1/EINVAL like they did before we supported write hints. No known\n  applications use these functions, I only know of one prototype that I\n  help do for RocksDB, and that\u0027s not used. That said, with a change\n  like this, it\u0027s always a bit controversial. Alternatively, we could\n  just make them return 0 and pretend it worked. It\u0027s placement based\n  hints after all\"\n\n* tag \u0027for-5.18/write-streams-2022-03-18\u0027 of git://git.kernel.dk/linux-block:\n  fs: remove fs.f_write_hint\n  fs: remove kiocb.ki_hint\n  block: remove the per-bio/request write hint\n  nvme: remove support or stream based temperature hint\n"
    },
    {
      "commit": "9bf3fc5007856d5ca76d6e7a4652e3b67b683241",
      "tree": "cfd50f910b898ed84adeeaf0dc51a0b81b8d7c17",
      "parents": [
        "bddac7c1e02ba47f0570e494c9289acea3062cc1",
        "6b49f3409a090c8e9d1f46ff2705c479b45a54d4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 26 11:41:53 2022 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 26 11:41:53 2022 -0700"
      },
      "message": "Merge tag \u0027devicetree-for-5.18\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux\n\nPull devicetree updates from Rob Herring:\n\n - Add Krzysztof Kozlowski as co-maintainer for DT bindings providing\n   much needed help.\n\n - DT schema validation now takes DTB files as input rather than\n   intermediate YAML files. This decouples the validation from the\n   source level syntax information. There\u0027s a bunch of schema fixes as a\n   result of switching to DTB based validation which exposed some errors\n   and incomplete schemas and examples.\n\n - Kbuild improvements to explicitly warn users running \u0027make\n   dt_binding_check\u0027 on missing yamllint\n\n - Expand DT_SCHEMA_FILES kbuild variable to take just a partial\n   filename or path instead of the full path to 1 file.\n\n - Convert various bindings to schema format: mscc,vsc7514-switch,\n   multiple GNSS bindings, ahci-platform, i2c-at91, multiple UFS\n   bindings, cortina,gemini-sata-bridge, cortina,gemini-ethernet, Atmel\n   SHA, Atmel TDES, Atmel AES, armv7m-systick, Samsung Exynos display\n   subsystem, nuvoton,npcm7xx-timer, samsung,s3c2410-i2c, zynqmp_dma,\n   msm/mdp4, rda,8810pl-uart\n\n - New schemas for u-boot environment variable partition, TI clksel\n\n - New compatible strings for Renesas RZ/V2L SoC\n\n - Vendor prefixes for Xen, HPE, deprecated Synopsys, deprecated\n   HiSilicon\n\n - Add/fix schemas for QEMU Arm \u0027virt\u0027 machine\n\n - Drop unused of_alias_get_alias_list() function\n\n - Add a script to check DT unittest EXPECT message output. Pass\n   messages also now print by default at PR_INFO level to help test\n   automation.\n\n* tag \u0027devicetree-for-5.18\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux: (96 commits)\n  dt-bindings: kbuild: Make DT_SCHEMA_LINT a recursive variable\n  dt-bindings: nvmem: add U-Boot environment variables binding\n  dt-bindings: ufs: qcom: Add SM6350 compatible string\n  dt-bindings: dmaengine: sifive,fu540-c000: include generic schema\n  dt-bindings: gpio: pca95xx: drop useless consumer example\n  Revert \"of: base: Introduce of_alias_get_alias_list() to check alias IDs\"\n  dt-bindings: virtio,mmio: Allow setting devices \u0027dma-coherent\u0027\n  dt-bindings: gnss: Add two more chips\n  dt-bindings: gnss: Rewrite sirfstar binding in YAML\n  dt-bindings: gnss: Modify u-blox to use common bindings\n  dt-bindings: gnss: Rewrite common bindings in YAML\n  dt-bindings: ata: ahci-platform: Add rk3568-dwc-ahci compatible\n  dt-bindings: ata: ahci-platform: Add power-domains property\n  dt-bindings: ata: ahci-platform: Convert DT bindings to yaml\n  dt-bindings: kbuild: Use DTB files for validation\n  dt-bindings: kbuild: Pass DT_SCHEMA_FILES to dt-validate\n  dt-bindings: Add QEMU virt machine compatible\n  dt-bindings: arm: Convert QEMU fw-cfg to DT schema\n  dt-bindings: i2c: at91: Add SAMA7G5 compatible strings list\n  dt-bindings: i2c: convert i2c-at91 to json-schema\n  ...\n"
    },
    {
      "commit": "bddac7c1e02ba47f0570e494c9289acea3062cc1",
      "tree": "6639604bb050648ad4129af8e0affb2311e0394b",
      "parents": [
        "52d543b5497cf31d6baeb0bcfe5a5474c3238578"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 26 10:42:04 2022 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 26 10:42:04 2022 -0700"
      },
      "message": "Revert \"swiotlb: rework \"fix info leak with DMA_FROM_DEVICE\"\"\n\nThis reverts commit aa6f8dcbab473f3a3c7454b74caa46d36cdc5d13.\n\nIt turns out this breaks at least the ath9k wireless driver, and\npossibly others.\n\nWhat the ath9k driver does on packet receive is to set up the DMA\ntransfer with:\n\n  int ath_rx_init(..)\n  ..\n                bf-\u003ebf_buf_addr \u003d dma_map_single(sc-\u003edev, skb-\u003edata,\n                                                 common-\u003erx_bufsize,\n                                                 DMA_FROM_DEVICE);\n\nand then the receive logic (through ath_rx_tasklet()) will fetch\nincoming packets\n\n  static bool ath_edma_get_buffers(..)\n  ..\n        dma_sync_single_for_cpu(sc-\u003edev, bf-\u003ebf_buf_addr,\n                                common-\u003erx_bufsize, DMA_FROM_DEVICE);\n\n        ret \u003d ath9k_hw_process_rxdesc_edma(ah, rs, skb-\u003edata);\n        if (ret \u003d\u003d -EINPROGRESS) {\n                /*let device gain the buffer again*/\n                dma_sync_single_for_device(sc-\u003edev, bf-\u003ebf_buf_addr,\n                                common-\u003erx_bufsize, DMA_FROM_DEVICE);\n                return false;\n        }\n\nand it\u0027s worth noting how that first DMA sync:\n\n    dma_sync_single_for_cpu(..DMA_FROM_DEVICE);\n\nis there to make sure the CPU can read the DMA buffer (possibly by\ncopying it from the bounce buffer area, or by doing some cache flush).\nThe iommu correctly turns that into a \"copy from bounce bufer\" so that\nthe driver can look at the state of the packets.\n\nIn the meantime, the device may continue to write to the DMA buffer, but\nwe at least have a snapshot of the state due to that first DMA sync.\n\nBut that _second_ DMA sync:\n\n    dma_sync_single_for_device(..DMA_FROM_DEVICE);\n\nis telling the DMA mapping that the CPU wasn\u0027t interested in the area\nbecause the packet wasn\u0027t there.  In the case of a DMA bounce buffer,\nthat is a no-op.\n\nNote how it\u0027s not a sync for the CPU (the \"for_device()\" part), and it\u0027s\nnot a sync for data written by the CPU (the \"DMA_FROM_DEVICE\" part).\n\nOr rather, it _should_ be a no-op.  That\u0027s what commit aa6f8dcbab47\nbroke: it made the code bounce the buffer unconditionally, and changed\nthe DMA_FROM_DEVICE to just unconditionally and illogically be\nDMA_TO_DEVICE.\n\n[ Side note: purely within the confines of the swiotlb driver it wasn\u0027t\n  entirely illogical: The reason it did that odd DMA_FROM_DEVICE -\u003e\n  DMA_TO_DEVICE conversion thing is because inside the swiotlb driver,\n  it uses just a swiotlb_bounce() helper that doesn\u0027t care about the\n  whole distinction of who the sync is for - only which direction to\n  bounce.\n\n  So it took the \"sync for device\" to mean that the CPU must have been\n  the one writing, and thought it meant DMA_TO_DEVICE. ]\n\nAlso note how the commentary in that commit was wrong, probably due to\nthat whole confusion, claiming that the commit makes the swiotlb code\n\n                                  \"bounce unconditionally (that is, also\n    when dir \u003d\u003d DMA_TO_DEVICE) in order do avoid synchronising back stale\n    data from the swiotlb buffer\"\n\nwhich is nonsensical for two reasons:\n\n - that \"also when dir \u003d\u003d DMA_TO_DEVICE\" is nonsensical, as that was\n   exactly when it always did - and should do - the bounce.\n\n - since this is a sync for the device (not for the CPU), we\u0027re clearly\n   fundamentally not coping back stale data from the bounce buffers at\n   all, because we\u0027d be copying *to* the bounce buffers.\n\nSo that commit was just very confused.  It confused the direction of the\nsynchronization (to the device, not the cpu) with the direction of the\nDMA (from the device).\n\nReported-and-bisected-by: Oleksandr Natalenko \u003coleksandr@natalenko.name\u003e\nReported-by: Olha Cherevyk \u003colha.cherevyk@gmail.com\u003e\nCc: Halil Pasic \u003cpasic@linux.ibm.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Kalle Valo \u003ckvalo@kernel.org\u003e\nCc: Robin Murphy \u003crobin.murphy@arm.com\u003e\nCc: Toke Høiland-Jørgensen \u003ctoke@toke.dk\u003e\nCc: Maxime Bizon \u003cmbizon@freebox.fr\u003e\nCc: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ab0809af0bee88b689ba289ec8c40aa2be3a17ec",
      "tree": "a6eb8069a5afcb48f83d3bceb8fecfe3d1b9da48",
      "parents": [
        "b58230de3ccdc2f4566d576b34b5f1feceea2e73"
      ],
      "author": {
        "name": "Kim Phillips",
        "email": "kim.phillips@amd.com",
        "time": "Tue Mar 22 15:15:15 2022 -0700"
      },
      "committer": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Sat Mar 26 10:55:58 2022 -0300"
      },
      "message": "perf evsel: Improve AMD IBS (Instruction-Based Sampling) error handling messages\n\nImprove the error message returned on failed perf_event_open() on AMD\nsystems when using IBS (Instruction-Based Sampling).\n\nOutput of executing \u0027perf record -e ibs_op// true\u0027 as a non root user\nBEFORE this patch (perf will add the \u0027u\u0027 modifier at the end to exclude\nkernel/hypervisor sampling):\n\n  The sys_perf_event_open() syscall returned with 22 (Invalid argument)for event (ibs_op//u).\n  /bin/dmesg | grep -i perf may provide additional information.\n\nOutput after:\n\n  AMD IBS can\u0027t exclude kernel events.  Try running at a higher privilege level.\n\nOutput of executing \u0027sudo perf record -e ibs_op// true\u0027 BEFORE this patch:\n\n  Error:\n  The sys_perf_event_open() syscall returned with 22 (Invalid argument) for event (ibs_op//).\n  /bin/dmesg | grep -i perf may provide additional information.\n\nOutput after:\n\n  Error:\n  Invalid event (ibs_op//) in per-thread mode, enable system wide with \u0027-a\u0027.\n\nFolowing the suggestion:\n\n  $ sudo perf record -a -e ibs_op// true\n  [ perf record: Woken up 1 times to write data ]\n  [ perf record: Captured and wrote 1.664 MB perf.data (194 samples) ]\n  $\n\nSigned-off-by: Kim Phillips \u003ckim.phillips@amd.com\u003e\nTested-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Alexander Shishkin \u003calexander.shishkin@linux.intel.com\u003e\nCc: Boris Ostrovsky \u003cboris.ostrovsky@oracle.com\u003e\nCc: Ian Rogers \u003cirogers@google.com\u003e\nCc: Jiri Olsa \u003cjolsa@kernel.org\u003e\nCc: João Martins \u003cjoao.m.martins@oracle.com\u003e\nCc: Konrad Rzeszutek Wilk \u003ckonrad.wilk@oracle.com\u003e\nCc: Mark Rutland \u003cmark.rutland@arm.com\u003e\nCc: Michael Petlan \u003cmpetlan@redhat.com\u003e\nCc: Namhyung Kim \u003cnamhyung@kernel.org\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Rafael J. Wysocki \u003crafael@kernel.org\u003e\nCc: Ravi Bangoria \u003cravi.bangoria@amd.com\u003e\nCc: Robert Richter \u003crobert.richter@amd.com\u003e\nCc: Sandipan Das \u003csandipan.das@amd.com\u003e\nCc: Song Liu \u003csongliubraving@fb.com\u003e\nCc: Stephane Eranian \u003ceranian@google.com\u003e\nLink: http://lore.kernel.org/lkml/20220322221517.2510440-12-eranian@google.com\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\n"
    },
    {
      "commit": "b58230de3ccdc2f4566d576b34b5f1feceea2e73",
      "tree": "9ea72c598d9a5fa3330591574da0cdbd5d3663de",
      "parents": [
        "ae0f4eb34fc3014f7eba78fab90a0e98e441a4cd"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Fri Mar 25 19:31:36 2022 -0300"
      },
      "committer": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Sat Mar 26 10:55:57 2022 -0300"
      },
      "message": "perf python: Add perf_env stubs that will be needed in evsel__open_strerror()\n\nThe AMD IBS error message enhancements will use these, but we\u0027re not\nusing evsel__open_strerror() in the python binding so far.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\n"
    },
    {
      "commit": "ae0f4eb34fc3014f7eba78fab90a0e98e441a4cd",
      "tree": "c768d42297a81776eefd3f924631cd4f0e3bb176",
      "parents": [
        "c2eeac985657f61543e6c5a333b94f3bd18e6b9d"
      ],
      "author": {
        "name": "Wei Li",
        "email": "liwei391@huawei.com",
        "time": "Fri Mar 25 17:20:32 2022 +0800"
      },
      "committer": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Sat Mar 26 10:55:57 2022 -0300"
      },
      "message": "perf tools: Enhance the matching of sub-commands abbreviations\n\nWe support short command \u0027rec*\u0027 for \u0027record\u0027 and \u0027rep*\u0027 for \u0027report\u0027 in\nlots of sub-commands, but the matching is not quite strict currnetly.\n\nIt may be puzzling sometime, like we mis-type a \u0027recport\u0027 to report but\nit will perform \u0027record\u0027 in fact without any message.\n\nTo fix this, add a check to ensure that the short cmd is valid prefix\nof the real command.\n\nCommitter testing:\n\n  [root@quaco ~]# perf c2c re sleep 1\n\n   Usage: perf c2c {record|report}\n\n      -v, --verbose         be more verbose (show counter open errors, etc)\n\n  # perf c2c rec sleep 1\n  [ perf record: Woken up 1 times to write data ]\n  [ perf record: Captured and wrote 0.038 MB perf.data (16 samples) ]\n  # perf c2c recport sleep 1\n\n   Usage: perf c2c {record|report}\n\n      -v, --verbose         be more verbose (show counter open errors, etc)\n\n  # perf c2c record sleep 1\n  [ perf record: Woken up 1 times to write data ]\n  [ perf record: Captured and wrote 0.038 MB perf.data (15 samples) ]\n  # perf c2c records sleep 1\n\n   Usage: perf c2c {record|report}\n\n      -v, --verbose         be more verbose (show counter open errors, etc)\n\n  #\n\nSigned-off-by: Wei Li \u003cliwei391@huawei.com\u003e\nTested-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Alexander Shishkin \u003calexander.shishkin@linux.intel.com\u003e\nCc: Hanjun Guo \u003cguohanjun@huawei.com\u003e\nCc: Jiri Olsa \u003cjolsa@kernel.org\u003e\nCc: Mark Rutland \u003cmark.rutland@arm.com\u003e\nCc: Namhyung Kim \u003cnamhyung@kernel.org\u003e\nCc: Rui Xiang \u003crui.xiang@huawei.com\u003e\nLink: http://lore.kernel.org/lkml/20220325092032.2956161-1-liwei391@huawei.com\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\n"
    },
    {
      "commit": "c2eeac985657f61543e6c5a333b94f3bd18e6b9d",
      "tree": "be56a944222ab85104c4c51cbb9c98b12c20ef29",
      "parents": [
        "1314376d495f2d79cc58753ff3034ccc503c43c9"
      ],
      "author": {
        "name": "Shunsuke Nakamura",
        "email": "nakamura.shun@fujitsu.com",
        "time": "Fri Mar 25 13:38:23 2022 +0900"
      },
      "committer": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Sat Mar 26 10:55:57 2022 -0300"
      },
      "message": "libperf tests: Fix typo in perf_evlist__open() failure error messages\n\nThis patch corrects typos in error messages. I should be \"evlist\", not\n\"evsel\" as the function that fails is perf_evlist__open().\n\nFixes: 3ce311afb5583cf3 (\"libperf: Move to tools/lib/perf\")\nFixes: a7f3713f6bf207e6 (\"libperf tests: Add test_stat_multiplexing test\")\nSigned-off-by: Shunsuke Nakamura \u003cnakamura.shun@fujitsu.com\u003e\nCc: Alexander Shishkin \u003calexander.shishkin@linux.intel.com\u003e\nCc: Jiri Olsa \u003cjolsa@kernel.org\u003e\nCc: Mark Rutland \u003cmark.rutland@arm.com\u003e\nCc: Namhyung Kim \u003cnamhyung@kernel.org\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nLink: http://lore.kernel.org/lkml/20220325043829.224045-2-nakamura.shun@fujitsu.com\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\n"
    },
    {
      "commit": "1314376d495f2d79cc58753ff3034ccc503c43c9",
      "tree": "66d2920c7182919cae4dde27eb3fe4027381a25e",
      "parents": [
        "4bd9cab59f17eeee5749bae58212e0c9b314322b"
      ],
      "author": {
        "name": "Ali Saidi",
        "email": "alisaidi@amazon.com",
        "time": "Thu Mar 24 18:33:20 2022 +0000"
      },
      "committer": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Sat Mar 26 10:53:45 2022 -0300"
      },
      "message": "tools arm64: Import cputype.h\n\nBring-in the kernel\u0027s arch/arm64/include/asm/cputype.h into tools/\nfor arm64 to make use of all the core-type definitions in perf.\n\nReplace sysreg.h with the version already imported into tools/.\n\nCommitter notes:\n\nAdded an entry to tools/perf/check-headers.sh, so that we get notified\nwhen the original file in the kernel sources gets modified.\n\nTester notes:\n\nLGTM. I did the testing on both my x86 and Arm64 platforms, thanks for\nthe fixing up.\n\nSigned-off-by: Ali Saidi \u003calisaidi@amazon.com\u003e\nTested-by: Leo Yan \u003cleo.yan@linaro.org\u003e\nCc: Alexander Shishkin \u003calexander.shishkin@linux.intel.com\u003e\nCc: Andrew Kilroy \u003candrew.kilroy@arm.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: German Gomez \u003cgerman.gomez@arm.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: James Clark \u003cjames.clark@arm.com\u003e\nCc: Jiri Olsa \u003cjolsa@kernel.org\u003e\nCc: John Garry \u003cjohn.garry@huawei.com\u003e\nCc: Kajol Jain \u003ckjain@linux.ibm.com\u003e\nCc: Li Huafei \u003clihuafei1@huawei.com\u003e\nCc: Mark Rutland \u003cmark.rutland@arm.com\u003e\nCc: Mathieu Poirier \u003cmathieu.poirier@linaro.org\u003e\nCc: Namhyung Kim \u003cnamhyung@kernel.org\u003e\nCc: Nick.Forrington@arm.com\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Will Deacon \u003cwill@kernel.org\u003e\nCc: linux-arm-kernel@lists.infradead.org\nLink: https://lore.kernel.org/r/20220324183323.31414-2-alisaidi@amazon.com\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\n"
    },
    {
      "commit": "52d543b5497cf31d6baeb0bcfe5a5474c3238578",
      "tree": "9ebb14cffd41753a95e1c232128453443930328f",
      "parents": [
        "a452c4eb404df8a7f2a79a37ac77b90b6db1a2c9",
        "8d10ea152e2fb9b4a42b282cb90bfc4d98e319a3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 25 17:46:22 2022 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 25 17:46:22 2022 -0700"
      },
      "message": "Merge tag \u0027for-linus-5.17-1\u0027 of https://github.com/cminyard/linux-ipmi\n\nPull IPMI updates from Corey Minyard:\n\n - Little fixes for various things people have noticed.\n\n - One enhancement, the IPMI over IPMB (I2c) is modified to allow it to\n   take a separate sender and receiver device. The Raspberry Pi has an\n   I2C slave device that cannot send.\n\n* tag \u0027for-linus-5.17-1\u0027 of https://github.com/cminyard/linux-ipmi:\n  ipmi: initialize len variable\n  ipmi: kcs: aspeed: Remove old bindings support\n  ipmi:ipmb: Add the ability to have a separate slave and master device\n  ipmi:ipmi_ipmb: Unregister the SMI on remove\n  ipmi: kcs: aspeed: Add AST2600 compatible string\n  ipmi: ssif: replace strlcpy with strscpy\n  ipmi/watchdog: Constify ident\n  ipmi: Add the git repository to the MAINTAINERS file\n"
    },
    {
      "commit": "a452c4eb404df8a7f2a79a37ac77b90b6db1a2c9",
      "tree": "0acdbe2d3c766a23ac24cba0d8d842260af4a514",
      "parents": [
        "a8988507e577a89ccaf66b48ea645bcf6e861270",
        "31e9dc49c2c03c3f166248f16dbe1248ffb5c6a9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 25 17:38:15 2022 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 25 17:38:15 2022 -0700"
      },
      "message": "Merge tag \u0027fs_for_v5.18-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs\n\nPull reiserfs updates from Jan Kara:\n \"The biggest change in this pull is the addition of a deprecation\n  message about reiserfs with the outlook that we\u0027d eventually be able\n  to remove it from the kernel. Because it is practically unmaintained\n  and untested and odd enough that people don\u0027t want to bother with it\n  anymore...\n\n  Otherwise there are small udf and ext2 fixes\"\n\n* tag \u0027fs_for_v5.18-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:\n  udf: remove redundant assignment of variable etype\n  reiserfs: Deprecate reiserfs\n  ext2: correct max file size computing\n  reiserfs: get rid of AOP_FLAG_CONT_EXPAND flag\n"
    },
    {
      "commit": "a8988507e577a89ccaf66b48ea645bcf6e861270",
      "tree": "d05531ad7078d9dda1733c0741aa8b9f9148f6aa",
      "parents": [
        "cb7cbaae7fd9cee64f19cdfd89d097d807b884f5",
        "f92ca72b0263d601807bbd23ed25cbe6f4da89f4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 25 16:58:51 2022 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 25 16:58:51 2022 -0700"
      },
      "message": "Merge tag \u0027fsnotify_for_v5.18-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs\n\nPull fsnotify updates from Jan Kara:\n \"A few fsnotify improvements and cleanups\"\n\n* tag \u0027fsnotify_for_v5.18-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:\n  fsnotify: remove redundant parameter judgment\n  fsnotify: optimize FS_MODIFY events with no ignored masks\n  fsnotify: fix merge with parent\u0027s ignored mask\n"
    },
    {
      "commit": "cb7cbaae7fd9cee64f19cdfd89d097d807b884f5",
      "tree": "e167052fd2768971c79ff7c03dd282ae9d961b02",
      "parents": [
        "46f538bf2404ee9c32648deafb886f49144bfd5e",
        "2a81dba4b577099717cea86d429f053e85e74d96"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 25 14:57:47 2022 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 25 14:57:47 2022 -0700"
      },
      "message": "Merge tag \u0027drm-next-2022-03-25\u0027 of git://anongit.freedesktop.org/drm/drm\n\nPull drm fixes from Dave Airlie:\n \"Some fixes were queued up in and in light of the fbdev regressions,\n  I\u0027ve pulled those in as well.\n\n  core:\n   - Make audio and color plane support checking only happen when a CEA\n     extension block is found.\n   - Small selftest fix.\n\n  fbdev:\n   - two regressions fixes from speedup patches.\n\n  ttm:\n   - Fix a small regression from ttm_resource_fini()\n\n  i915:\n   - Reject unsupported TMDS rates on ICL+\n   - Treat SAGV block time 0 as SAGV disabled\n   - Fix PSF GV point mask when SAGV is not possible\n   - Fix renamed INTEL_INFO-\u003emedia.arch/ver field\"\n\n* tag \u0027drm-next-2022-03-25\u0027 of git://anongit.freedesktop.org/drm/drm:\n  fbdev: Fix cfb_imageblit() for arbitrary image widths\n  fbdev: Fix sys_imageblit() for arbitrary image widths\n  drm/edid: fix CEA extension byte #3 parsing\n  drm/edid: check basic audio support on CEA extension block\n  drm/i915: Fix renamed struct field\n  drm/i915: Fix PSF GV point mask when SAGV is not possible\n  drm/i915: Treat SAGV block time 0 as SAGV disabled\n  drm/i915: Reject unsupported TMDS rates on ICL+\n  drm/selftest: plane_helper: Put test structures in static storage\n  drm/ttm: Fix a kernel oops due to an invalid read\n"
    },
    {
      "commit": "46f538bf2404ee9c32648deafb886f49144bfd5e",
      "tree": "cab6f6ec6bf5997cb6daf6c85b76f7b4bc606dcb",
      "parents": [
        "8350e8331b3971533d6e6112ab596eda2c2ffffd",
        "023a8830a62846e1cecc8da07e00c801dd0d7598"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 25 14:01:23 2022 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 25 14:01:23 2022 -0700"
      },
      "message": "Merge tag \u0027backlight-next-5.18\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lee/backlight\n\nPull backlight updates from Lee Jones:\n \"New Device Support:\n   - Add support for PM6150L to Qualcomm WLED\n\n  Fix-ups\"\n   - Use kcalloc() to avoid open-coding; pwm_bl\n   - Device Tree changes; qcom-wled\n   - Cleanup or simplify code; backlight\"\n\n* tag \u0027backlight-next-5.18\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lee/backlight:\n  backlight: backlight: Slighly simplify devm_of_find_backlight()\n  backlight: qcom-wled: Add PM6150L compatible\n  dt-bindings: backlight: qcom-wled: Add PM6150L compatible\n  backlight: pwm_bl: Avoid open coded arithmetic in memory allocation\n"
    },
    {
      "commit": "8350e8331b3971533d6e6112ab596eda2c2ffffd",
      "tree": "1add05c103644650616f17f1ae90ae2fc91482ee",
      "parents": [
        "e35a4a4e13c35f500a8d38e836b5e335c7515494",
        "d99460ed5cdcc28feba6b992630b04650e410902"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 25 13:56:18 2022 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 25 13:56:18 2022 -0700"
      },
      "message": "Merge tag \u0027mfd-next-5.18\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd\n\nPull MFD updates from Lee Jones:\n \"New Drivers:\n   - Add support for Maxim MAX77714 PMIC\n\n  Removed Drivers:\n   - Remove support for ST-Ericsson AB8500 DebugFS\n\n  New Device Support:\n   - Add support for Silergy SY7636A to Simple MFD I2C\n   - Add support for MediaTek MT6366 PMIC to MT6358 IRQ\n   - Add support for Charger to Intel PMIC CRC\n   - Add support for Raptor Lake to Intel LPSS PCI\n\n  New Functionality:\n   - Add support for Reboot to Rockchip RK808\n\n  Fix-ups:\n   - Device Tree changes (includcing YAML conversion) for\n     silergy,sy7636a, maxim,max77843, google,cros-ec, maxim,max14577,\n     maxim,max77802, maxim,max77714, qcom,tcsr, qcom,spmi-pmic,\n     stericsson,ab8500, stericsson,db8500-prcmu,\n     samsung,exynos5433-lpass, mt6397, syscon, brcm,cru\n   - Visible to menuconfig; simple-mfd-i2c\n   - Clean-up or clarify code; max77686, intel_soc_pmic_crc\n   - Improve error handling; mc13xxx-core, stmfx, asic3\n   - Pass device information to child devices; iqs62x, intel-lpss-acpi\n   - Individually identify IRQ domains; intel_soc_pmic_core\n   - Remove superfluous code; dbx500-prcmu, exynos-lpass\n   - Staticify and constify; arizona-i2c\n   - Mark sometimes used data as __maybe_unused; atmel-flexcom\n   - Account for different ACPI tables on AOSP/Windows platforms; arizona-spi\n   - Use provided (platform) APIs; ab8500-core\n   - Trivial (whitespace, spelling); rohm-bd9576\"\n\n* tag \u0027mfd-next-5.18\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd: (50 commits)\n  dt-bindings: mfd: syscon: Add microchip,lan966x-cpu-syscon compatible\n  mfd: bd9576: fix typos in comments\n  mfd: Use platform_get_irq() to get the interrupt\n  mfd: db8500-prcmu: Remove unused inline function\n  mfd: arizona-spi: Add Android board ACPI table handling\n  mfd: arizona-spi: Split Windows ACPI init code into its own function\n  mfd: asic3: Add missing iounmap() on error asic3_mfd_probe\n  MAINTAINERS: Rectify entry for ROHM MULTIFUNCTION BD9571MWV-M PMIC DEVICE DRIVERS\n  mfd: intel-lpss: Provide an SSP type to the driver\n  dt-bindings: mfd: brcm,cru: Rename pinctrl node\n  dt-bindings: Add compatibles for undocumented trivial syscons\n  mfd: atmel-flexcom: Fix compilation warning\n  dt-bindings: mfd: Add compatible for the MediaTek MT6366 PMIC\n  dt-bindings: mfd: samsung,exynos5433-lpass: Convert to dtschema\n  mfd: exynos-lpass: Drop unneeded syscon.h include\n  mfd: intel-lpss: Add Intel Raptor Lake PCH-S PCI IDs\n  mfd: ab8500: Drop debugfs module\n  mfd: sta2x11: Use GFP_KERNEL instead of GFP_ATOMIC\n  mfd: ab8500: Rewrite bindings in YAML\n  mfd: qcom-spmi-pmic: Add pm8953 compatible\n  ...\n"
    },
    {
      "commit": "e35a4a4e13c35f500a8d38e836b5e335c7515494",
      "tree": "32940f68475c16ddee8ed2933c9a4ae6e9b44265",
      "parents": [
        "8eb48fc7c54ed627a693a205570f0eceea64274c",
        "6cadd424abb63120f8346a4509dc43bddc9401d3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 25 13:35:34 2022 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 25 13:35:34 2022 -0700"
      },
      "message": "Merge tag \u0027mtd/changes-for-5.18\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux\n\nPull MTD updates from Miquel Raynal:\n \"There has been a lot of activity in the MTD subsystem recently, with a\n  number of SPI-NOR cleanups as well as the introduction of ECC engines\n  that can be used by SPI controllers (hence a few SPI patches in here).\n\n  Core MTD changes:\n   - Replace the expert mode symbols with a single helper\n   - Fix misuses of of_match_ptr()\n   - Remove partid and partname debugfs files\n   - tests: Fix eraseblock read speed miscalculation for lower partition\n     sizes\n   - TRX parser: Allow to use on MediaTek MIPS SoCs\n\n  MTD driver changes:\n   - spear_smi: use GFP_KERNEL\n   - mchp48l640: Add SPI ID table\n   - mchp23k256: Add SPI ID table\n   - blkdevs: Avoid soft lockups with some mtd/spi devices\n   - aspeed-smc: Improve probe resilience\n\n  Hyperbus changes:\n   - HBMC_AM654 should depend on ARCH_K3\n\n  NAND core changes:\n   - ECC:\n      - Add infrastructure to support hardware engines\n      - Add a new helper to retrieve the ECC context\n      - Provide a helper to retrieve a pilelined engine device\n\n  NAND-ECC changes:\n   - Macronix ECC engine:\n      - Add Macronix external ECC engine support\n      - Support SPI pipelined mode\n      - Make two read-only arrays static const\n      - Fix compile test issue\n\n  Raw NAND core changes:\n   - Fix misuses of of_match_node()\n   - Rework of_get_nand_bus_width()\n   - Remove of_get_nand_on_flash_bbt() wrapper\n   - Protect access to rawnand devices while in suspend\n   - bindings: Document the wp-gpios property\n\n  Rax NAND controller driver changes:\n   - atmel: Fix refcount issue in atmel_nand_controller_init\n   - nandsim:\n      - Add NS_PAGE_BYTE_SHIFT macro to replace the repeat pattern\n      - Merge repeat codes in ns_switch_state\n      - Replace overflow check with kzalloc to single kcalloc\n   - rockchip: Fix platform_get_irq.cocci warning\n   - stm32_fmc2: Add NAND Write Protect support\n   - pl353: Set the nand chip node as the flash node\n   - brcmnand: Fix sparse warnings in bcma_nand\n   - omap_elm: Remove redundant variable \u0027errors\u0027\n   - gpmi:\n      - Support fast edo timings for mx28\n      - Validate controller clock rate\n      - Fix controller timings setting\n   - brcmnand:\n      - Add BCMA shim\n      - BCMA controller uses command shift of 0\n      - Allow platform data instantation\n      - Add platform data structure for BCMA\n      - Allow working without interrupts\n      - Move OF operations out of brcmnand_init_cs()\n      - Avoid pdev in brcmnand_init_cs()\n      - Allow SoC to provide I/O operations\n      - Assign soc as early as possible\n\n  Onenand changes:\n   - Check for error irq\n\n  SPI-NAND core changes:\n   - Delay a little bit the dirmap creation\n   - Create direct mapping descriptors for ECC operations\n\n  SPI-NAND driver changes:\n   - macronix: Use random program load\n\n  SPI NOR core changes:\n   - Move vendor specific code out of the core into vendor drivers.\n   - Unify all function and object names in the vendor modules.\n   - Make setup() callback optional to improve readability.\n   - Skip erase logic when the SPI_NOR_NO_ERASE flag is set at flash\n     declaration.\n\n  SPI changes:\n   - Macronix SPI controller:\n      - Fix the transmit path\n      - Create a helper to configure the controller before an operation\n      - Create a helper to ease the start of an operation\n      - Add support for direct mapping\n      - Add support for pipelined ECC operations\n   - spi-mem:\n      - Introduce a capability structure\n      - Check the controller extra capabilities\n      - cadence-quadspi/mxic: Provide capability structures\n      - Kill the spi_mem_dtr_supports_op() helper\n      - Add an ecc parameter to the spi_mem_op structure\n\n  Binding changes:\n   - Dropped mtd/cortina,gemini-flash.txt\n   - Convert BCM47xx partitions to json-schema\n   - Vendor prefixes: Clarify Macronix prefix\n   - SPI NAND: Convert spi-nand description file to yaml\n   - Raw NAND chip: Create a NAND chip description\n   - Raw NAND controller:\n      - Harmonize the property types\n      - Fix a comment in the examples\n      - Fix the reg property description\n   - Describe Macronix NAND ECC engine\n   - Macronix SPI controller:\n      - Document the nand-ecc-engine property\n      - Convert to yaml\n      - The interrupt property is not mandatory\"\n\n* tag \u0027mtd/changes-for-5.18\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux: (104 commits)\n  mtd: nand: ecc: mxic: Fix compile test issue\n  mtd: nand: mxic-ecc: make two read-only arrays static const\n  mtd: hyperbus: HBMC_AM654 should depend on ARCH_K3\n  mtd: core: Remove partid and partname debugfs files\n  dt-bindings: mtd: partitions: convert BCM47xx to the json-schema\n  mtd: tests: Fix eraseblock read speed miscalculation for lower partition sizes\n  mtd: rawnand: atmel: fix refcount issue in atmel_nand_controller_init\n  mtd: rawnand: rockchip: fix platform_get_irq.cocci warning\n  mtd: spi-nor: Skip erase logic when SPI_NOR_NO_ERASE is set\n  mtd: spi-nor: renumber flags\n  mtd: spi-nor: slightly change code style in spi_nor_sr_ready()\n  mtd: spi-nor: spansion: rename vendor specific functions and defines\n  mtd: spi-nor: spansion: convert USE_CLSR to a manufacturer flag\n  mtd: spi-nor: move all spansion specifics into spansion.c\n  mtd: spi-nor: spansion: slightly rework control flow in late_init()\n  mtd: spi-nor: micron-st: rename vendor specific functions and defines\n  mtd: spi-nor: micron-st: convert USE_FSR to a manufacturer flag\n  mtd: spi-nor: move all micron-st specifics into micron-st.c\n  mtd: spi-nor: xilinx: correct the debug message\n  mtd: spi-nor: xilinx: rename vendor specific functions and defines\n  ...\n"
    },
    {
      "commit": "8eb48fc7c54ed627a693a205570f0eceea64274c",
      "tree": "32c7a571cbed01cbce5316bb2c96b9223a5617a6",
      "parents": [
        "148a650476955705482dd57e7ffcf105d8b65440",
        "c22fca40522e2be8af168f3087d87d85e404ea72"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 25 13:31:02 2022 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 25 13:31:02 2022 -0700"
      },
      "message": "Merge tag \u0027for-v5.18\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply\n\nPull power supply and reset updates from Sebastian Reichel:\n \"Power-supply core:\n\n   - Introduce \"Bypass\" charging type used by USB PPS standard\n\n   - Refactor power_supply_set_input_current_limit_from_supplier()\n\n   - Add fwnode support to power_supply_get_battery_info()\n\n  Drivers:\n\n   - ab8500: continue migrating towards using standard core APIs\n\n   - axp288 fuel-gauge: refactor driver to be fully resource managed\n\n   - battery-samsung-sdi: new in-kernel provider for (constant) Samsung\n     battery info\n\n   - bq24190: disable boost regulator on shutdown\n\n   - bq24190: add support for battery-info on ACPI based systems\n\n   - bq25890: prepare driver for usage on ACPI based systems\n\n   - bq25890: add boost regulator support\n\n   - cpcap-battery: add NVMEM based battery detection support\n\n   - injoinic ip5xxx: new driver for power bank IC\n\n   - upi ug3105: new battery driver\n\n   - misc small improvements and fixes\"\n\n* tag \u0027for-v5.18\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply: (94 commits)\n  power: ab8500_chargalg: Use CLOCK_MONOTONIC\n  power: supply: Add a driver for Injoinic power bank ICs\n  dt-bindings: trivial-devices: Add Injoinic power bank ICs\n  dt-bindings: vendor-prefixes: Add Injoinic\n  power: supply: ab8500: Remove unused variable\n  power: supply: da9150-fg: Remove unnecessary print function dev_err()\n  power: supply: ab8500: fix a handful of spelling mistakes\n  power: supply: ab8500_fg: Account for line impedance\n  dt-bindings: power: supply: ab8500_fg: Add line impedance\n  power: supply: axp20x_usb_power: fix platform_get_irq.cocci warnings\n  power: supply: axp20x_ac_power: fix platform_get_irq.cocci warning\n  power: supply: wm8350-power: Add missing free in free_charger_irq\n  power: supply: wm8350-power: Handle error for wm8350_register_irq\n  power: supply: Static data for Samsung batteries\n  power: supply: ab8500_fg: Use VBAT-to-Ri if possible\n  power: supply: Support VBAT-to-Ri lookup tables\n  power: supply: ab8500: Standardize BTI resistance\n  power: supply: ab8500: Standardize alert mode charging\n  power: supply: ab8500: Standardize maintenance charging\n  power: supply: bq24190_charger: Delay applying charge_type changes when OTG 5V Vbus boost is on\n  ...\n"
    },
    {
      "commit": "148a650476955705482dd57e7ffcf105d8b65440",
      "tree": "8fa098f2b1e3e2d452eff8f2f050a7292ec3698b",
      "parents": [
        "636f64db07f33a18630248b4c57e182cd315b0da",
        "611f841830aa5723ea67682628bd214cbc18df41"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 25 13:02:05 2022 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 25 13:02:05 2022 -0700"
      },
      "message": "Merge tag \u0027pci-v5.18-changes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci\n\nPull pci updates from Bjorn Helgaas:\n \"Enumeration:\n   - Move the VGA arbiter from drivers/gpu to drivers/pci because it\u0027s\n     PCI-specific, not GPU-specific (Bjorn Helgaas)\n   - Select the default VGA device consistently whether it\u0027s enumerated\n     before or after VGA arbiter init, which fixes arches that enumerate\n     PCI devices late (Huacai Chen)\n\n  Resource management:\n   - Support BAR sizes up to 8TB (Dongdong Liu)\n\n  PCIe native device hotplug:\n   - Fix \"Command Completed\" tracking to avoid spurious timouts when\n     powering off empty slots (Liguang Zhang)\n   - Quirk Qualcomm devices that don\u0027t implement Command Completed\n     correctly, again to avoid spurious timeouts (Manivannan Sadhasivam)\n\n  Peer-to-peer DMA:\n   - Add Intel 3rd Gen Intel Xeon Scalable Processors to whitelist\n     (Michael J. Ruhl)\n\n  APM X-Gene PCIe controller driver:\n   - Revert generic DT parsing changes that broke some machines in the\n     field (Marc Zyngier)\n\n  Freescale i.MX6 PCIe controller driver:\n   - Allow controller probe to succeed even when no devices currently\n     present to allow hot-add later (Fabio Estevam)\n   - Enable power management on i.MX6QP (Richard Zhu)\n   - Assert CLKREQ# on i.MX8MM so enumeration doesn\u0027t hang when no\n     device is connected (Richard Zhu)\n\n  Marvell Aardvark PCIe controller driver:\n   - Fix MSI and MSI-X support (Marek Behún, Pali Rohár)\n   - Add support for ERR and PME interrupts (Pali Rohár)\n\n  Marvell MVEBU PCIe controller driver:\n   - Add DT binding and support for \"num-lanes\" (Pali Rohár)\n   - Add support for INTx interrupts (Pali Rohár)\n\n  Microsoft Hyper-V host bridge driver:\n   - Avoid unnecessary hypercalls when unmasking IRQs on ARM64 (Boqun\n     Feng)\n\n  Qualcomm PCIe controller driver:\n   - Add SM8450 DT binding and driver support (Dmitry Baryshkov)\n\n  Renesas R-Car PCIe controller driver:\n   - Help the controller get to the L1 state since the hardware can\u0027t do\n     it on its own (Marek Vasut)\n   - Return PCI_ERROR_RESPONSE (~0) for reads that fail on PCIe (Marek\n     Vasut)\n\n  SiFive FU740 PCIe controller driver:\n   - Drop redundant \u0027-gpios\u0027 from DT GPIO lookup (Ben Dooks)\n   - Force 2.5GT/s for initial device probe (Ben Dooks)\n\n  Socionext UniPhier Pro5 controller driver:\n   - Add NX1 DT binding and driver support (Kunihiko Hayashi)\n\n  Synopsys DesignWare PCIe controller driver:\n   - Restore MSI configuration so MSI works after resume (Jisheng\n     Zhang)\"\n\n* tag \u0027pci-v5.18-changes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: (94 commits)\n  x86/PCI: Add #includes to asm/pci_x86.h\n  PCI: ibmphp: Remove unused assignments\n  PCI: cpqphp: Remove unused assignments\n  PCI: fu740: Remove unused assignments\n  PCI: kirin: Remove unused assignments\n  PCI: Remove unused assignments\n  PCI: Declare pci_filp_private only when HAVE_PCI_MMAP\n  PCI: Avoid broken MSI on SB600 USB devices\n  PCI: fu740: Force 2.5GT/s for initial device probe\n  PCI: xgene: Revert \"PCI: xgene: Fix IB window setup\"\n  PCI: xgene: Revert \"PCI: xgene: Use inbound resources for setup\"\n  PCI: imx6: Assert i.MX8MM CLKREQ# even if no device present\n  PCI: imx6: Invoke the PHY exit function after PHY power off\n  PCI: rcar: Use PCI_SET_ERROR_RESPONSE after read which triggered an exception\n  PCI: rcar: Finish transition to L1 state in rcar_pcie_config_access()\n  PCI: dwc: Restore MSI Receiver mask during resume\n  PCI: fu740: Drop redundant \u0027-gpios\u0027 from DT GPIO lookup\n  PCI/VGA: Replace full MIT license text with SPDX identifier\n  PCI/VGA: Use unsigned format string to print lock counts\n  PCI/VGA: Log bridge control messages when adding devices\n  ...\n"
    },
    {
      "commit": "636f64db07f33a18630248b4c57e182cd315b0da",
      "tree": "b27478715e415b5324924e0f6fccc47f28899c0a",
      "parents": [
        "ebcb577aee1448fd60904fc4126cbf7ec012bd0b",
        "7f1b8e0d6360178e3527d4f14e6921c254a86035"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 25 12:34:53 2022 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 25 12:34:53 2022 -0700"
      },
      "message": "Merge tag \u0027ras_core_for_v5.18_rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull RAS updates from Borislav Petkov:\n\n - More noinstr fixes\n\n - Add an erratum workaround for Intel CPUs which, in certain\n   circumstances, end up consuming an unrelated uncorrectable memory\n   error when using fast string copy insns\n\n - Remove the MCE tolerance level control as it is not really needed or\n   used anymore\n\n* tag \u0027ras_core_for_v5.18_rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  x86/mce: Remove the tolerance level control\n  x86/mce: Work around an erratum on fast string copy instructions\n  x86/mce: Use arch atomic and bit helpers\n"
    },
    {
      "commit": "ebcb577aee1448fd60904fc4126cbf7ec012bd0b",
      "tree": "144ea30487c4bc1451ed1eb3d2cafa3e777abe01",
      "parents": [
        "5e206459f670b579da9b7861a0f3ce3b989a68b6",
        "87ba5badc541a79bab2fa3243ee0008c0880c64a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 25 12:28:23 2022 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 25 12:28:23 2022 -0700"
      },
      "message": "Merge tag \u0027gpio-updates-for-v5.18\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux\n\nPull gpio updates from Bartosz Golaszewski:\n \"Relatively few updates for this release cycle. We have a single new\n  driver and some minor changes in drivers, more work on limiting the\n  usage of of_node in drivers and DT updates:\n\n   - new driver: gpio-en7523\n\n   - dt-bindings: convertion of faraday,ftgpio010 to YAML, new\n     compatible string in gpio-vf610 and a bugfix in an example\n\n   - gpiolib core: several improvements and some code shrink\n\n   - documentation: convert all public docs into kerneldoc format\n\n   - set IRQ bus token in gpio-crystalcove (addresses a debugfs issue)\n\n   - add a missing return value check for kstrdup() in gpio-merrifield\n\n   - allow gpio-tps68470 to be built as module\n\n   - more work on limiting usage of of_node in GPIO drivers\n\n   - several sysfs interface improvements\n\n   - use SDPX in gpio-ts4900\"\n\n* tag \u0027gpio-updates-for-v5.18\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux:\n  gpio: ts4900: Use SPDX header\n  gpiolib: Use list_first_entry()/list_last_entry()\n  gpiolib: sysfs: Simplify edge handling in the code\n  gpiolib: sysfs: Move kstrtox() calls outside of the mutex lock\n  gpiolib: sysfs: Move sysfs_emit() calls outside of the mutex lock\n  gpiolib: make struct comments into real kernel docs\n  dt-bindings: gpio: convert faraday,ftgpio01 to yaml\n  dt-bindings: gpio: gpio-vf610: Add imx93 compatible string\n  gpiolib: Simplify error path in gpiod_get_index() when requesting GPIO\n  gpiolib: Use short form of ternary operator in gpiod_get_index()\n  gpiolib: Introduce for_each_gpio_desc_with_flag() macro\n  gpio: Add support for Airoha EN7523 GPIO controller\n  dt-bindings: arm: airoha: Add binding for Airoha GPIO controller\n  dt-bindings: gpio: fix gpio-hog example\n  gpio: tps68470: Allow building as module\n  gpio: tegra: Get rid of duplicate of_node assignment\n  gpio: altera-a10sr: Switch to use fwnode instead of of_node\n  gpio: merrifield: check the return value of devm_kstrdup()\n  gpio: crystalcove: Set IRQ domain bus token to DOMAIN_BUS_WIRED\n"
    },
    {
      "commit": "5e206459f670b579da9b7861a0f3ce3b989a68b6",
      "tree": "21d55f20338a9d704d75ce2f263ff6339c53a57a",
      "parents": [
        "1464677662943738741500a6f16b85d36bbde2be",
        "b146dbbd3bc61678165f3de7904ab613865385ba"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 25 12:22:16 2022 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 25 12:22:16 2022 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid\n\nPull HID updates from Jiri Kosina:\n\n - rework of generic input handling which ultimately makes the\n   processing of tablet events more generic and reliable (Benjamin\n   Tissoires)\n\n - fixes for handling unnumbered reports fully correctly in i2c-hid\n   (Angela Czubak, Dmitry Torokhov)\n\n - untangling of intermingled code for sending and handling output\n   reports in i2c-hid (Dmitry Torokhov)\n\n - Apple magic keyboard support improvements for newer models (José\n   Expósito)\n\n - Apple T2 Macs support improvements (Aun-Ali Zaidi, Paul Pawlowski)\n\n - driver for Razer Blackwidow keyboards (Jelle van der Waa)\n\n - driver for SiGma Micro keyboards (Desmond Lim)\n\n - integration of first part of DIGImend patches in order to ultimately\n   vastly improve Linux support of tablets (Nikolai Kondrashov, José\n   Expósito)\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid: (55 commits)\n  HID: intel-ish-hid: Use dma_alloc_coherent for firmware update\n  Input: docs: add more details on the use of BTN_TOOL\n  HID: input: accommodate priorities for slotted devices\n  HID: input: remove the need for HID_QUIRK_INVERT\n  HID: input: enforce Invert usage to be processed before InRange\n  HID: core: for input reports, process the usages by priority list\n  HID: compute an ordered list of input fields to process\n  HID: input: move up out-of-range processing of input values\n  HID: input: rework spaghetti code with switch statements\n  HID: input: tag touchscreens as such if the physical is not there\n  HID: core: split data fetching from processing in hid_input_field()\n  HID: core: de-duplicate some code in hid_input_field()\n  HID: core: statically allocate read buffers\n  HID: uclogic: Support multiple frame input devices\n  HID: uclogic: Define report IDs before their descriptors\n  HID: uclogic: Put version first in rdesc namespace\n  HID: uclogic: Use \"frame\" instead of \"buttonpad\"\n  HID: uclogic: Use different constants for frame report IDs\n  HID: uclogic: Specify total report size to buttonpad macro\n  HID: uclogic: Switch to matching subreport bytes\n  ...\n"
    },
    {
      "commit": "1464677662943738741500a6f16b85d36bbde2be",
      "tree": "316d8a47d4cc6d2f579cbed80e2f977a0aed64ed",
      "parents": [
        "50560ce6a0bdab2fc37384c52aa02c7043909d2c",
        "b49f72e7f96d4ed147447428f2ae5b4cea598ca7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 25 12:14:39 2022 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 25 12:14:39 2022 -0700"
      },
      "message": "Merge tag \u0027platform-drivers-x86-v5.18-1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86\n\nPull x86 platform driver updates from Hans de Goede:\n  \"New drivers:\n    - AMD Host System Management Port (HSMP)\n    - Intel Software Defined Silicon\n\n  Removed drivers (functionality folded into other drivers):\n    - intel_cht_int33fe_microb\n    - surface3_button\n\n  amd-pmc:\n    - s2idle bug-fixes\n    - Support for AMD Spill to DRAM STB feature\n\n  hp-wmi:\n    - Fix SW_TABLET_MODE detection method (and other fixes)\n    - Support omen thermal profile policy v1\n\n  serial-multi-instantiate:\n    - Add SPI device support\n    - Add support for CS35L41 amplifiers used in new laptops\n\n  think-lmi:\n    - syfs-class-firmware-attributes Certificate authentication support\n\n  thinkpad_acpi:\n    - Fixes + quirks\n    - Add platform_profile support on AMD based ThinkPads\n\n  x86-android-tablets:\n    - Improve Asus ME176C / TF103C support\n    - Support Nextbook Ares 8, Lenovo Tab 2 830 and 1050 tablets\n\n  Lots of various other small fixes and hardware-id additions\"\n\n* tag \u0027platform-drivers-x86-v5.18-1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86: (60 commits)\n  platform/x86: think-lmi: Certificate authentication support\n  Documentation: syfs-class-firmware-attributes: Lenovo Certificate support\n  platform/x86: amd-pmc: Only report STB errors when STB enabled\n  platform/x86: amd-pmc: Drop CPU QoS workaround\n  platform/x86: amd-pmc: Output error codes in messages\n  platform/x86: amd-pmc: Move to later in the suspend process\n  ACPI / x86: Add support for LPS0 callback handler\n  platform/x86: thinkpad_acpi: consistently check fan_get_status return.\n  platform/x86: hp-wmi: support omen thermal profile policy v1\n  platform/x86: hp-wmi: Changing bios_args.data to be dynamically allocated\n  platform/x86: hp-wmi: Fix 0x05 error code reported by several WMI calls\n  platform/x86: hp-wmi: Fix SW_TABLET_MODE detection method\n  platform/x86: hp-wmi: Fix hp_wmi_read_int() reporting error (0x05)\n  platform/x86: amd-pmc: Validate entry into the deepest state on resume\n  platform/x86: thinkpad_acpi: Don\u0027t use test_bit on an integer\n  platform/x86: thinkpad_acpi: Fix compiler warning about uninitialized err variable\n  platform/x86: thinkpad_acpi: clean up dytc profile convert\n  platform/x86: x86-android-tablets: Depend on EFI and SPI\n  platform/x86: amd-pmc: uninitialized variable in amd_pmc_s2d_init()\n  platform/x86: intel-uncore-freq: fix uncore_freq_common_init() error codes\n  ...\n"
    },
    {
      "commit": "50560ce6a0bdab2fc37384c52aa02c7043909d2c",
      "tree": "5f44ce74ab1a189f26bdd2d2d9a1537985b0cc19",
      "parents": [
        "29c8c18363eee546d19bd95daa1e33c64ee74414",
        "1e24078113ae69c741cb1b03375a9f1490db7308"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 25 11:48:01 2022 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 25 11:48:01 2022 -0700"
      },
      "message": "Merge tag \u0027kbuild-gnu11-v5.18\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild\n\nPull Kbuild update for C11 language base from Masahiro Yamada:\n \"Kbuild -std\u003dgnu11 updates for v5.18\n\n  Linus pointed out the benefits of C99 some years ago, especially\n  variable declarations in loops [1]. At that time, we were not ready\n  for the migration due to old compilers.\n\n  Recently, Jakob Koschel reported a bug in list_for_each_entry(), which\n  leaks the invalid pointer out of the loop [2]. In the discussion, we\n  agreed that the time had come. Now that GCC 5.1 is the minimum\n  compiler version, there is nothing to prevent us from going to\n  -std\u003dgnu99, or even straight to -std\u003dgnu11.\n\n  Discussions for a better list iterator implementation are ongoing, but\n  this patch set must land first\"\n\n[1] https://lore.kernel.org/all/CAHk-\u003dwgr12JkKmRd21qh-se-_Gs69kbPgR9x4C+Es-yJV2GLkA@mail.gmail.com/\n[2] https://lore.kernel.org/lkml/86C4CE7D-6D93-456B-AA82-F8ADEACA40B7@gmail.com/\n\n* tag \u0027kbuild-gnu11-v5.18\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild:\n  Kbuild: use -std\u003dgnu11 for KBUILD_USERCFLAGS\n  Kbuild: move to -std\u003dgnu11\n  Kbuild: use -Wdeclaration-after-statement\n  Kbuild: add -Wno-shift-negative-value where -Wextra is used\n"
    },
    {
      "commit": "4bd9cab59f17eeee5749bae58212e0c9b314322b",
      "tree": "cfa08f6dba541b109fa1a977a9097c8892fd0111",
      "parents": [
        "64999e4402099f2993f485b28baa33e638c93fe1"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung@kernel.org",
        "time": "Wed Mar 23 16:02:59 2022 -0700"
      },
      "committer": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Fri Mar 25 15:24:50 2022 -0300"
      },
      "message": "perf lock: Add -F/--field option to control output\n\nThe -F/--field option is to customize the list of fields to output:\n\n  $ perf lock report -F contended,wait_max -k avg_wait\n                  Name  contended   max wait (ns)   avg wait (ns)\n\n        slock-AF_INET6          1           23543           23543\n     \u0026lruvec-\u003elru_lock          5           18317           11254\n        slock-AF_INET6          1           10379           10379\n            rcu_node_1          1            2104            2104\n   \u0026dentry-\u003ed_lockr...          1            1844            1844\n   \u0026dentry-\u003ed_lockr...          1            1672            1672\n      \u0026newf-\u003efile_lock         15            2279            1025\n   \u0026dentry-\u003ed_lockr...          1             792             792\n\nSigned-off-by: Namhyung Kim \u003cnamhyung@kernel.org\u003e\nCc: Andi Kleen \u003cak@linux.intel.com\u003e\nCc: Ian Rogers \u003cirogers@google.com\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Jiri Olsa \u003cjolsa@kernel.org\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nLink: https://lore.kernel.org/r/20220323230259.288494-3-namhyung@kernel.org\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\n"
    },
    {
      "commit": "64999e4402099f2993f485b28baa33e638c93fe1",
      "tree": "ff49e03253d252e9e07822a75115e918b8563e27",
      "parents": [
        "67b61f59a620450738caf69552efa85faa9637f9"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung@kernel.org",
        "time": "Wed Mar 23 16:02:58 2022 -0700"
      },
      "committer": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Fri Mar 25 15:24:16 2022 -0300"
      },
      "message": "perf lock: Extend struct lock_key to have print function\n\nAnd use it to print output for each key field.  No functional change\nintended and the output should be identical.\n\nSigned-off-by: Namhyung Kim \u003cnamhyung@kernel.org\u003e\nCc: Andi Kleen \u003cak@linux.intel.com\u003e\nCc: Ian Rogers \u003cirogers@google.com\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Jiri Olsa \u003cjolsa@kernel.org\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nLink: https://lore.kernel.org/r/20220323230259.288494-2-namhyung@kernel.org\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\n"
    },
    {
      "commit": "67b61f59a620450738caf69552efa85faa9637f9",
      "tree": "6f21f803b2b6bf8746b830614416d5acc9d9fb6d",
      "parents": [
        "d16d30f48c1ca3051115e5093934263e84dc1390"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung@kernel.org",
        "time": "Wed Mar 23 16:02:57 2022 -0700"
      },
      "committer": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Fri Mar 25 15:24:03 2022 -0300"
      },
      "message": "perf lock: Add --synth\u003dno option for record\n\nThe perf lock command has nothing to symbolize and lock names come\nfrom the tracepoint.  Moreover, kernel symbols are available even the\n--synth\u003dno option is given.\n\nThis will reduce the startup time by avoiding unnecessary synthesis.\n\nSigned-off-by: Namhyung Kim \u003cnamhyung@kernel.org\u003e\nCc: Andi Kleen \u003cak@linux.intel.com\u003e\nCc: Ian Rogers \u003cirogers@google.com\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Jiri Olsa \u003cjolsa@kernel.org\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nLink: https://lore.kernel.org/r/20220323230259.288494-1-namhyung@kernel.org\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\n"
    },
    {
      "commit": "29c8c18363eee546d19bd95daa1e33c64ee74414",
      "tree": "39245c8e255f1bd8547c964cb886f7699dd986e1",
      "parents": [
        "aa5b537b0ecc16992577b013f11112d54c7ce869",
        "25fd2d41b505d0640bdfe67aa77c549de2d3c18a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 25 10:21:20 2022 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 25 10:21:20 2022 -0700"
      },
      "message": "Merge branch \u0027akpm\u0027 (patches from Andrew)\n\nMerge yet more updates from Andrew Morton:\n \"This is the material which was staged after willystuff in linux-next.\n\n  Subsystems affected by this patch series: mm (debug, selftests,\n  pagecache, thp, rmap, migration, kasan, hugetlb, pagemap, madvise),\n  and selftests\"\n\n* emailed patches from Andrew Morton \u003cakpm@linux-foundation.org\u003e: (113 commits)\n  selftests: kselftest framework: provide \"finished\" helper\n  mm: madvise: MADV_DONTNEED_LOCKED\n  mm: fix race between MADV_FREE reclaim and blkdev direct IO read\n  mm: generalize ARCH_HAS_FILTER_PGPROT\n  mm: unmap_mapping_range_tree() with i_mmap_rwsem shared\n  mm: warn on deleting redirtied only if accounted\n  mm/huge_memory: remove stale locking logic from __split_huge_pmd()\n  mm/huge_memory: remove stale page_trans_huge_mapcount()\n  mm/swapfile: remove stale reuse_swap_page()\n  mm/khugepaged: remove reuse_swap_page() usage\n  mm/huge_memory: streamline COW logic in do_huge_pmd_wp_page()\n  mm: streamline COW logic in do_swap_page()\n  mm: slightly clarify KSM logic in do_swap_page()\n  mm: optimize do_wp_page() for fresh pages in local LRU pagevecs\n  mm: optimize do_wp_page() for exclusive pages in the swapcache\n  mm/huge_memory: make is_transparent_hugepage() static\n  userfaultfd/selftests: enable hugetlb remap and remove event testing\n  selftests/vm: add hugetlb madvise MADV_DONTNEED MADV_REMOVE test\n  mm: enable MADV_DONTNEED for hugetlb mappings\n  kasan: disable LOCKDEP when printing reports\n  ...\n"
    },
    {
      "commit": "aa5b537b0ecc16992577b013f11112d54c7ce869",
      "tree": "ac9f6ce6c8c5b4722501cb36e95b3c0a35aa933e",
      "parents": [
        "d710d370c4911e83da5d2bc43d4a2c3b56bd27e7",
        "bbde015227e89f1da21bd3b84523d62c4a445c06"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 25 10:11:38 2022 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 25 10:11:38 2022 -0700"
      },
      "message": "Merge tag \u0027riscv-for-linus-5.18-mw0\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux\n\nPull RISC-V updates from Palmer Dabbelt:\n\n - Support for Sv57-based virtual memory.\n\n - Various improvements for the MicroChip PolarFire SOC and the\n   associated Icicle dev board, which should allow upstream kernels to\n   boot without any additional modifications.\n\n - An improved memmove() implementation.\n\n - Support for the new Ssconfpmf and SBI PMU extensions, which allows\n   for a much more useful perf implementation on RISC-V systems.\n\n - Support for restartable sequences.\n\n* tag \u0027riscv-for-linus-5.18-mw0\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux: (36 commits)\n  rseq/selftests: Add support for RISC-V\n  RISC-V: Add support for restartable sequence\n  MAINTAINERS: Add entry for RISC-V PMU drivers\n  Documentation: riscv: Remove the old documentation\n  RISC-V: Add sscofpmf extension support\n  RISC-V: Add perf platform driver based on SBI PMU extension\n  RISC-V: Add RISC-V SBI PMU extension definitions\n  RISC-V: Add a simple platform driver for RISC-V legacy perf\n  RISC-V: Add a perf core library for pmu drivers\n  RISC-V: Add CSR encodings for all HPMCOUNTERS\n  RISC-V: Remove the current perf implementation\n  RISC-V: Improve /proc/cpuinfo output for ISA extensions\n  RISC-V: Do no continue isa string parsing without correct XLEN\n  RISC-V: Implement multi-letter ISA extension probing framework\n  RISC-V: Extract multi-letter extension names from \"riscv, isa\"\n  RISC-V: Minimal parser for \"riscv, isa\" strings\n  RISC-V: Correctly print supported extensions\n  riscv: Fixed misaligned memory access. Fixed pointer comparison.\n  MAINTAINERS: update riscv/microchip entry\n  riscv: dts: microchip: add new peripherals to icicle kit device tree\n  ...\n"
    },
    {
      "commit": "d710d370c4911e83da5d2bc43d4a2c3b56bd27e7",
      "tree": "9e7a702654feb88e2555c1bf41f71ef4a58b25aa",
      "parents": [
        "744465da705f7d8cd893e97738a47b91f3321ce2",
        "c65f677b62d6180cc174e06f953f7fe860adf6d1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 25 10:01:34 2022 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 25 10:01:34 2022 -0700"
      },
      "message": "Merge tag \u0027s390-5.18-1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux\n\nPull s390 updates from Vasily Gorbik:\n\n - Raise minimum supported machine generation to z10, which comes with\n   various cleanups and code simplifications (usercopy/spectre\n   mitigation/etc).\n\n - Rework extables and get rid of anonymous out-of-line fixups.\n\n - Page table helpers cleanup. Add set_pXd()/set_pte() helper functions.\n   Covert pte_val()/pXd_val() macros to functions.\n\n - Optimize kretprobe handling by avoiding extra kprobe on\n   __kretprobe_trampoline.\n\n - Add support for CEX8 crypto cards.\n\n - Allow to trigger AP bus rescan via writing to /sys/bus/ap/scans.\n\n - Add CONFIG_EXPOLINE_EXTERN option to build the kernel without COMDAT\n   group sections which simplifies kpatch support.\n\n - Always use the packed stack layout and extend kernel unwinder tests.\n\n - Add sanity checks for ftrace code patching.\n\n - Add s390dbf debug log for the vfio_ap device driver.\n\n - Various virtual vs physical address confusion fixes.\n\n - Various small fixes and improvements all over the code.\n\n* tag \u0027s390-5.18-1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: (69 commits)\n  s390/test_unwind: add kretprobe tests\n  s390/kprobes: Avoid additional kprobe in kretprobe handling\n  s390: convert \".insn\" encoding to instruction names\n  s390: assume stckf is always present\n  s390/nospec: move to single register thunks\n  s390: raise minimum supported machine generation to z10\n  s390/uaccess: Add copy_from/to_user_key functions\n  s390/nospec: align and size extern thunks\n  s390/nospec: add an option to use thunk-extern\n  s390/nospec: generate single register thunks if possible\n  s390/pci: make zpci_set_irq()/zpci_clear_irq() static\n  s390: remove unused expoline to BC instructions\n  s390/irq: use assignment instead of cast\n  s390/traps: get rid of magic cast for per code\n  s390/traps: get rid of magic cast for program interruption code\n  s390/signal: fix typo in comments\n  s390/asm-offsets: remove unused defines\n  s390/test_unwind: avoid build warning with W\u003d1\n  s390: remove .fixup section\n  s390/bpf: encode register within extable entry\n  ...\n"
    },
    {
      "commit": "744465da705f7d8cd893e97738a47b91f3321ce2",
      "tree": "c6d3214097ccf74b410bf0e2d7f0713c4b879bee",
      "parents": [
        "1f1c153e406a7375ae0fc3d6000b64e7ba27cf8a",
        "1c4664faa38923330d478f046dc743a00c1e2dec"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 25 09:49:39 2022 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 25 09:49:39 2022 -0700"
      },
      "message": "Merge tag \u0027xtensa-20220325\u0027 of https://github.com/jcmvbkbc/linux-xtensa\n\nPull Xtensa updates from Max Filippov:\n\n - remove dependency on the compiler\u0027s libgcc\n\n - allow selection of internal kernel ABI via Kconfig\n\n - enable compiler plugins support for gcc-12 or newer\n\n - various minor cleanups and fixes\n\n* tag \u0027xtensa-20220325\u0027 of https://github.com/jcmvbkbc/linux-xtensa:\n  xtensa: define update_mmu_tlb function\n  xtensa: fix xtensa_wsr always writing 0\n  xtensa: enable plugin support\n  xtensa: clean up kernel exit assembly code\n  xtensa: rearrange NMI exit path\n  xtensa: merge stack alignment definitions\n  xtensa: fix DTC warning unit_address_format\n  xtensa: fix stop_machine_cpuslocked call in patch_text\n  xtensa: make secondary reset vector support conditional\n  xtensa: add kernel ABI selection to Kconfig\n  xtensa: don\u0027t link with libgcc\n  xtensa: add helpers for division, remainder and shifts\n  xtensa: add missing XCHAL_HAVE_WINDOWED check\n  xtensa: use XCHAL_NUM_AREGS as pt_regs::areg size\n  xtensa: rename PT_SIZE to PT_KERNEL_SIZE\n  xtensa: Remove unused early_read_config_byte() et al declarations\n  xtensa: use strscpy to copy strings\n  net: xtensa: use strscpy to copy strings\n"
    },
    {
      "commit": "1f1c153e406a7375ae0fc3d6000b64e7ba27cf8a",
      "tree": "65ef22de3c57d33702e38f89d7a8aa9f7bb79822",
      "parents": [
        "9a8b3d5f71eb74b1b95927bd320b1070866a119a",
        "fe2640bd7a62f1f7c3f55fbda31084085075bc30"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 25 09:39:36 2022 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 25 09:39:36 2022 -0700"
      },
      "message": "Merge tag \u0027powerpc-5.18-1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux\n\nPull powerpc updates from Michael Ellerman:\n \"Livepatch support for 32-bit is probably the standout new feature,\n  otherwise mostly just lots of bits and pieces all over the board.\n\n  There\u0027s a series of commits cleaning up function descriptor handling,\n  which touches a few other arches as well as LKDTM. It has acks from\n  Arnd, Kees and Helge.\n\n  Summary:\n\n   - Enforce kernel RO, and implement STRICT_MODULE_RWX for 603.\n\n   - Add support for livepatch to 32-bit.\n\n   - Implement CONFIG_DYNAMIC_FTRACE_WITH_ARGS.\n\n   - Merge vdso64 and vdso32 into a single directory.\n\n   - Fix build errors with newer binutils.\n\n   - Add support for UADDR64 relocations, which are emitted by some\n     toolchains. This allows powerpc to build with the latest lld.\n\n   - Fix (another) potential userspace r13 corruption in transactional\n     memory handling.\n\n   - Cleanups of function descriptor handling \u0026 related fixes to LKDTM.\n\n  Thanks to Abdul Haleem, Alexey Kardashevskiy, Anders Roxell, Aneesh\n  Kumar K.V, Anton Blanchard, Arnd Bergmann, Athira Rajeev, Bhaskar\n  Chowdhury, Cédric Le Goater, Chen Jingwen, Christophe JAILLET,\n  Christophe Leroy, Corentin Labbe, Daniel Axtens, Daniel Henrique\n  Barboza, David Dai, Fabiano Rosas, Ganesh Goudar, Guo Zhengkui, Hangyu\n  Hua, Haren Myneni, Hari Bathini, Igor Zhbanov, Jakob Koschel, Jason\n  Wang, Jeremy Kerr, Joachim Wiberg, Jordan Niethe, Julia Lawall, Kajol\n  Jain, Kees Cook, Laurent Dufour, Madhavan Srinivasan, Mamatha Inamdar,\n  Maxime Bizon, Maxim Kiselev, Maxim Kochetkov, Michal Suchanek,\n  Nageswara R Sastry, Nathan Lynch, Naveen N. Rao, Nicholas Piggin,\n  Nour-eddine Taleb, Paul Menzel, Ping Fang, Pratik R. Sampat, Randy\n  Dunlap, Ritesh Harjani, Rohan McLure, Russell Currey, Sachin Sant,\n  Segher Boessenkool, Shivaprasad G Bhat, Sourabh Jain, Thierry Reding,\n  Tobias Waldekranz, Tyrel Datwyler, Vaibhav Jain, Vladimir Oltean,\n  Wedson Almeida Filho, and YueHaibing\"\n\n* tag \u0027powerpc-5.18-1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux: (179 commits)\n  powerpc/pseries: Fix use after free in remove_phb_dynamic()\n  powerpc/time: improve decrementer clockevent processing\n  powerpc/time: Fix KVM host re-arming a timer beyond decrementer range\n  powerpc/tm: Fix more userspace r13 corruption\n  powerpc/xive: fix return value of __setup handler\n  powerpc/64: Add UADDR64 relocation support\n  powerpc: 8xx: fix a return value error in mpc8xx_pic_init\n  powerpc/ps3: remove unneeded semicolons\n  powerpc/64: Force inlining of prevent_user_access() and set_kuap()\n  powerpc/bitops: Force inlining of fls()\n  powerpc: declare unmodified attribute_group usages const\n  powerpc/spufs: Fix build warning when CONFIG_PROC_FS\u003dn\n  powerpc/secvar: fix refcount leak in format_show()\n  powerpc/64e: Tie PPC_BOOK3E_64 to PPC_FSL_BOOK3E\n  powerpc: Move C prototypes out of asm-prototypes.h\n  powerpc/kexec: Declare kexec_paca static\n  powerpc/smp: Declare current_set static\n  powerpc: Cleanup asm-prototypes.c\n  powerpc/ftrace: Use STK_GOT in ftrace_mprofile.S\n  powerpc/ftrace: Regroup PPC64 specific operations in ftrace_mprofile.S\n  ...\n"
    },
    {
      "commit": "9a8b3d5f71eb74b1b95927bd320b1070866a119a",
      "tree": "f2c99aeb42144f59a65b0c2aecdbddd6649bc93b",
      "parents": [
        "34af78c4e616c359ed428d79fe4758a35d2c5473",
        "f8f9f21c7848e63133c16c899f3d84aa54eb79fe"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 25 09:35:19 2022 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 25 09:35:19 2022 -0700"
      },
      "message": "Merge tag \u0027mips_5.18\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux\n\nPull MIPS updates from Thomas Bogendoerfer:\n\n - added support for QCN550x (ath79)\n\n - enabled KCSAN\n\n - removed TX39XX support\n\n - various cleanups and fixes\n\n* tag \u0027mips_5.18\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux: (31 commits)\n  MIPS: Fix build error for loongson64 and sgi-ip27\n  MIPS: ingenic: correct unit node address\n  MIPS: Fix wrong comments in asm/prom.h\n  MIPS: Remove redundant definitions of device_tree_init()\n  MIPS: Remove redundant check in device_tree_init()\n  MIPS: pgalloc: fix memory leak caused by pgd_free()\n  MIPS: RB532: fix return value of __setup handler\n  MIPS: Only use current_stack_pointer on GCC\n  MIPS: boot/compressed: Use array reference for image bounds\n  mips: cdmm: Fix refcount leak in mips_cdmm_phys_base\n  mips: remove reference to \"newer Loongson-3\"\n  mips: Always permit to build u-boot images\n  MIPS: Sanitise Cavium switch cases in TLB handler synthesizers\n  DEC: Limit PMAX memory probing to R3k systems\n  mips: DEC: honor CONFIG_MIPS_FP_SUPPORT\u003dn\n  MIPS: fix fortify panic when copying asm exception handlers\n  mips: ralink: fix a refcount leak in ill_acc_of_setup()\n  mips: Implement \"current_stack_pointer\"\n  MIPS: Remove TX39XX support\n  MIPS: Modernize READ_IMPLIES_EXEC\n  ...\n"
    },
    {
      "commit": "631f871f071746789e9242e514ab0f49067fa97a",
      "tree": "4d35c6076638ba43441cebfecdc96a08c6dee343",
      "parents": [
        "42eb8fdac2fc5d62392dcfcf0253753e821a97b0"
      ],
      "author": {
        "name": "Andreas Gruenbacher",
        "email": "agruenba@redhat.com",
        "time": "Tue Nov 09 12:56:06 2021 +0100"
      },
      "committer": {
        "name": "Andreas Gruenbacher",
        "email": "agruenba@redhat.com",
        "time": "Fri Mar 25 15:14:03 2022 +0100"
      },
      "message": "fs/iomap: Fix buffered write page prefaulting\n\nWhen part of the user buffer passed to generic_perform_write() or\niomap_file_buffered_write() cannot be faulted in for reading, the entire\nwrite currently fails.  The correct behavior would be to write all the\ndata that can be written, up to the point of failure.\n\nCommit a6294593e8a1 (\"iov_iter: Turn iov_iter_fault_in_readable into\nfault_in_iov_iter_readable\") gave us the information needed, so fix the\npage prefaulting in generic_perform_write() and iomap_write_iter() to\nonly bail out when no pages could be faulted in.\n\nWe already factor in that pages that are faulted in may no longer be\nresident by the time they are accessed.  Paging out pages has the same\neffect as not faulting in those pages in the first place, so the code\ncan already deal with that.\n\nSigned-off-by: Andreas Gruenbacher \u003cagruenba@redhat.com\u003e\nReviewed-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "34af78c4e616c359ed428d79fe4758a35d2c5473",
      "tree": "d7c27bfe3c9aa5b063bd630e27a70ff4a0db9069",
      "parents": [
        "6f2689a7662809ff39f2b24e452d11569c21ea2f",
        "e17c6debd4b2d2d474074f83946f8c6522587566"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 19:48:57 2022 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 19:48:57 2022 -0700"
      },
      "message": "Merge tag \u0027iommu-updates-v5.18\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu\n\nPull iommu updates from Joerg Roedel:\n\n - IOMMU Core changes:\n      - Removal of aux domain related code as it is basically dead and\n        will be replaced by iommu-fd framework\n      - Split of iommu_ops to carry domain-specific call-backs separatly\n      - Cleanup to remove useless ops-\u003ecapable implementations\n      - Improve 32-bit free space estimate in iova allocator\n\n - Intel VT-d updates:\n      - Various cleanups of the driver\n      - Support for ATS of SoC-integrated devices listed in ACPI/SATC\n        table\n\n - ARM SMMU updates:\n      - Fix SMMUv3 soft lockup during continuous stream of events\n      - Fix error path for Qualcomm SMMU probe()\n      - Rework SMMU IRQ setup to prepare the ground for PMU support\n      - Minor cleanups and refactoring\n\n - AMD IOMMU driver:\n      - Some minor cleanups and error-handling fixes\n\n - Rockchip IOMMU driver:\n      - Use standard driver registration\n\n - MSM IOMMU driver:\n      - Minor cleanup and change to standard driver registration\n\n - Mediatek IOMMU driver:\n      - Fixes for IOTLB flushing logic\n\n* tag \u0027iommu-updates-v5.18\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu: (47 commits)\n  iommu/amd: Improve amd_iommu_v2_exit()\n  iommu/amd: Remove unused struct fault.devid\n  iommu/amd: Clean up function declarations\n  iommu/amd: Call memunmap in error path\n  iommu/arm-smmu: Account for PMU interrupts\n  iommu/vt-d: Enable ATS for the devices in SATC table\n  iommu/vt-d: Remove unused function intel_svm_capable()\n  iommu/vt-d: Add missing \"__init\" for rmrr_sanity_check()\n  iommu/vt-d: Move intel_iommu_ops to header file\n  iommu/vt-d: Fix indentation of goto labels\n  iommu/vt-d: Remove unnecessary prototypes\n  iommu/vt-d: Remove unnecessary includes\n  iommu/vt-d: Remove DEFER_DEVICE_DOMAIN_INFO\n  iommu/vt-d: Remove domain and devinfo mempool\n  iommu/vt-d: Remove iova_cache_get/put()\n  iommu/vt-d: Remove finding domain in dmar_insert_one_dev_info()\n  iommu/vt-d: Remove intel_iommu::domains\n  iommu/mediatek: Always tlb_flush_all when each PM resume\n  iommu/mediatek: Add tlb_lock in tlb_flush_all\n  iommu/mediatek: Remove the power status checking in tlb flush all\n  ...\n"
    },
    {
      "commit": "6f2689a7662809ff39f2b24e452d11569c21ea2f",
      "tree": "6dfbfd3feb4d77a66bf06f246640ae4ed321bbb2",
      "parents": [
        "b1f8ccdaae0310332d16f65bf0f622f9d4ae2391",
        "66daf3e6b9936328cb28eaaa29dddfe96343cc85"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 19:37:53 2022 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 19:37:53 2022 -0700"
      },
      "message": "Merge tag \u0027scsi-misc\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi\n\nPull SCSI updates from James Bottomley:\n \"This series consists of the usual driver updates (qla2xxx, pm8001,\n  libsas, smartpqi, scsi_debug, lpfc, iscsi, mpi3mr) plus minor updates\n  and bug fixes.\n\n  The high blast radius core update is the removal of write same, which\n  affects block and several non-SCSI devices. The other big change,\n  which is more local, is the removal of the SCSI pointer\"\n\n* tag \u0027scsi-misc\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (281 commits)\n  scsi: scsi_ioctl: Drop needless assignment in sg_io()\n  scsi: bsg: Drop needless assignment in scsi_bsg_sg_io_fn()\n  scsi: lpfc: Copyright updates for 14.2.0.0 patches\n  scsi: lpfc: Update lpfc version to 14.2.0.0\n  scsi: lpfc: SLI path split: Refactor BSG paths\n  scsi: lpfc: SLI path split: Refactor Abort paths\n  scsi: lpfc: SLI path split: Refactor SCSI paths\n  scsi: lpfc: SLI path split: Refactor CT paths\n  scsi: lpfc: SLI path split: Refactor misc ELS paths\n  scsi: lpfc: SLI path split: Refactor VMID paths\n  scsi: lpfc: SLI path split: Refactor FDISC paths\n  scsi: lpfc: SLI path split: Refactor LS_RJT paths\n  scsi: lpfc: SLI path split: Refactor LS_ACC paths\n  scsi: lpfc: SLI path split: Refactor the RSCN/SCR/RDF/EDC/FARPR paths\n  scsi: lpfc: SLI path split: Refactor PLOGI/PRLI/ADISC/LOGO paths\n  scsi: lpfc: SLI path split: Refactor base ELS paths and the FLOGI path\n  scsi: lpfc: SLI path split: Introduce lpfc_prep_wqe\n  scsi: lpfc: SLI path split: Refactor fast and slow paths to native SLI4\n  scsi: lpfc: SLI path split: Refactor lpfc_iocbq\n  scsi: lpfc: Use kcalloc()\n  ...\n"
    },
    {
      "commit": "b1f8ccdaae0310332d16f65bf0f622f9d4ae2391",
      "tree": "a500f9ed7de9e68fa16320ee7624dbbb6a066c63",
      "parents": [
        "2dacc1e57b95ebc42ddcbfc26cd74700b341f1df",
        "4d7bca13dd9a5033174b0735056c5658cb893e76"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 19:25:24 2022 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 19:25:24 2022 -0700"
      },
      "message": "Merge tag \u0027for-5.18/dm-changes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm\n\nPull device mapper updates from Mike Snitzer:\n\n - Significant refactoring and fixing of how DM core does bio-based IO\n   accounting with focus on fixing wildly inaccurate IO stats for\n   dm-crypt (and other DM targets that defer bio submission in their own\n   workqueues). End result is proper IO accounting, made possible by\n   targets being updated to use the new dm_submit_bio_remap() interface.\n\n - Add hipri bio polling support (REQ_POLLED) to bio-based DM.\n\n - Reduce dm_io and dm_target_io structs so that a single dm_io (which\n   contains dm_target_io and first clone bio) weighs in at 256 bytes.\n   For reference the bio struct is 128 bytes.\n\n - Various other small cleanups, fixes or improvements in DM core and\n   targets.\n\n - Update MAINTAINERS with my kernel.org email address to allow\n   distinction between my \"upstream\" and \"Red\" Hats.\n\n* tag \u0027for-5.18/dm-changes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm: (46 commits)\n  dm: consolidate spinlocks in dm_io struct\n  dm: reduce size of dm_io and dm_target_io structs\n  dm: switch dm_target_io booleans over to proper flags\n  dm: switch dm_io booleans over to proper flags\n  dm: update email address in MAINTAINERS\n  dm: return void from __send_empty_flush\n  dm: factor out dm_io_complete\n  dm cache: use dm_submit_bio_remap\n  dm: simplify dm_sumbit_bio_remap interface\n  dm thin: use dm_submit_bio_remap\n  dm: add WARN_ON_ONCE to dm_submit_bio_remap\n  dm: support bio polling\n  block: add -\u003epoll_bio to block_device_operations\n  dm mpath: use DMINFO instead of printk with KERN_INFO\n  dm: stop using bdevname\n  dm-zoned: remove the -\u003ename field in struct dmz_dev\n  dm: remove unnecessary local variables in __bind\n  dm: requeue IO if mapping table not yet available\n  dm io: remove stale comment block for dm_io()\n  dm thin metadata: remove unused dm_thin_remove_block and __remove\n  ...\n"
    },
    {
      "commit": "2dacc1e57b95ebc42ddcbfc26cd74700b341f1df",
      "tree": "cdbc034754bdbf50bd97952586442835781821ba",
      "parents": [
        "85c7000fda0029ec16569b1eec8fd3a8d026be73",
        "87e0eacb176f9500c2063d140c0a1d7fa51ab8a5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 19:17:39 2022 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 19:17:39 2022 -0700"
      },
      "message": "Merge tag \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma\n\nPull rdma updates from Jason Gunthorpe:\n\n - Minor bug fixes in mlx5, mthca, pvrdma, rtrs, mlx4, hfi1, hns\n\n - Minor cleanups: coding style, useless includes and documentation\n\n - Reorganize how multicast processing works in rxe\n\n - Replace a red/black tree with xarray in rxe which improves performance\n\n - DSCP support and HW address handle re-use in irdma\n\n - Simplify the mailbox command handling in hns\n\n - Simplify iser now that FMR is eliminated\n\n* tag \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma: (93 commits)\n  RDMA/nldev: Prevent underflow in nldev_stat_set_counter_dynamic_doit()\n  IB/iser: Fix error flow in case of registration failure\n  IB/iser: Generalize map/unmap dma tasks\n  IB/iser: Use iser_fr_desc as registration context\n  IB/iser: Remove iser_reg_data_sg helper function\n  RDMA/rxe: Use standard names for ref counting\n  RDMA/rxe: Replace red-black trees by xarrays\n  RDMA/rxe: Shorten pool names in rxe_pool.c\n  RDMA/rxe: Move max_elem into rxe_type_info\n  RDMA/rxe: Replace obj by elem in declaration\n  RDMA/rxe: Delete _locked() APIs for pool objects\n  RDMA/rxe: Reverse the sense of RXE_POOL_NO_ALLOC\n  RDMA/rxe: Replace mr by rkey in responder resources\n  RDMA/rxe: Fix ref error in rxe_av.c\n  RDMA/hns: Use the reserved loopback QPs to free MR before destroying MPT\n  RDMA/irdma: Add support for address handle re-use\n  RDMA/qib: Fix typos in comments\n  RDMA/mlx5: Fix memory leak in error flow for subscribe event routine\n  Revert \"RDMA/core: Fix ib_qp_usecnt_dec() called when error\"\n  RDMA/rxe: Remove useless argument for update_state()\n  ...\n"
    },
    {
      "commit": "25fd2d41b505d0640bdfe67aa77c549de2d3c18a",
      "tree": "ad95618faec3f5e14cd5e4ff5805d4a1fbf3abe2",
      "parents": [
        "9457056ac426e5ed0671356509c8dcce69f8dee0"
      ],
      "author": {
        "name": "Kees Cook",
        "email": "keescook@chromium.org",
        "time": "Thu Mar 24 18:14:18 2022 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 19:06:51 2022 -0700"
      },
      "message": "selftests: kselftest framework: provide \"finished\" helper\n\nInstead of having each time that wants to use ksft_exit() have to figure\nout the internals of kselftest.h, add the helper ksft_finished() that\nmakes sure the passes, xfails, and skips are equal to the test plan count.\n\nLink: https://lkml.kernel.org/r/20220201013717.2464392-1-keescook@chromium.org\nSigned-off-by: Kees Cook \u003ckeescook@chromium.org\u003e\nCc: Shuah Khan \u003cshuah@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9457056ac426e5ed0671356509c8dcce69f8dee0",
      "tree": "5237b52dad5a524729a81ddebd2990136e9ec372",
      "parents": [
        "6c8e2a256915a223f6289f651d6b926cd7135c9e"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Thu Mar 24 18:14:12 2022 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 19:06:51 2022 -0700"
      },
      "message": "mm: madvise: MADV_DONTNEED_LOCKED\n\nMADV_DONTNEED historically rejects mlocked ranges, but with MLOCK_ONFAULT\nand MCL_ONFAULT allowing to mlock without populating, there are valid use\ncases for depopulating locked ranges as well.\n\nUsers mlock memory to protect secrets.  There are allocators for secure\nbuffers that want in-use memory generally mlocked, but cleared and\ninvalidated memory to give up the physical pages.  This could be done with\nexplicit munlock -\u003e mlock calls on free -\u003e alloc of course, but that adds\ntwo unnecessary syscalls, heavy mmap_sem write locks, vma splits and\nre-merges - only to get rid of the backing pages.\n\nUsers also mlockall(MCL_ONFAULT) to suppress sustained paging, but are\nokay with on-demand initial population.  It seems valid to selectively\nfree some memory during the lifetime of such a process, without having to\nmess with its overall policy.\n\nWhy add a separate flag? Isn\u0027t this a pretty niche usecase?\n\n- MADV_DONTNEED has been bailing on locked vmas forever. It\u0027s at least\n  conceivable that someone, somewhere is relying on mlock to protect\n  data from perhaps broader invalidation calls. Changing this behavior\n  now could lead to quiet data corruption.\n\n- It also clarifies expectations around MADV_FREE and maybe\n  MADV_REMOVE. It avoids the situation where one quietly behaves\n  different than the others. MADV_FREE_LOCKED can be added later.\n\n- The combination of mlock() and madvise() in the first place is\n  probably niche. But where it happens, I\u0027d say that dropping pages\n  from a locked region once they don\u0027t contain secrets or won\u0027t page\n  anymore is much saner than relying on mlock to protect memory from\n  speculative or errant invalidation calls. It\u0027s just that we can\u0027t\n  change the default behavior because of the two previous points.\n\nGiven that, an explicit new flag seems to make the most sense.\n\n[hannes@cmpxchg.org: fix mips build]\n\nLink: https://lkml.kernel.org/r/20220304171912.305060-1-hannes@cmpxchg.org\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.com\u003e\nReviewed-by: Mike Kravetz \u003cmike.kravetz@oracle.com\u003e\nReviewed-by: Shakeel Butt \u003cshakeelb@google.com\u003e\nAcked-by: Vlastimil Babka \u003cvbabka@suse.cz\u003e\nCc: Nadav Amit \u003cnadav.amit@gmail.com\u003e\nCc: David Hildenbrand \u003cdavid@redhat.com\u003e\nCc: Dr. David Alan Gilbert \u003cdgilbert@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6c8e2a256915a223f6289f651d6b926cd7135c9e",
      "tree": "0dbc1dd67dd39470d5446d8005d0291ed967d8db",
      "parents": [
        "24e988c7fd1ee701ea78fd138ed309e5f5f207b4"
      ],
      "author": {
        "name": "Mauricio Faria de Oliveira",
        "email": "mfo@canonical.com",
        "time": "Thu Mar 24 18:14:09 2022 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 19:06:51 2022 -0700"
      },
      "message": "mm: fix race between MADV_FREE reclaim and blkdev direct IO read\n\nProblem:\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nUserspace might read the zero-page instead of actual data from a direct IO\nread on a block device if the buffers have been called madvise(MADV_FREE)\non earlier (this is discussed below) due to a race between page reclaim on\nMADV_FREE and blkdev direct IO read.\n\n- Race condition:\n  \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nDuring page reclaim, the MADV_FREE page check in try_to_unmap_one() checks\nif the page is not dirty, then discards its rmap PTE(s) (vs.  remap back\nif the page is dirty).\n\nHowever, after try_to_unmap_one() returns to shrink_page_list(), it might\nkeep the page _anyway_ if page_ref_freeze() fails (it expects exactly\n_one_ page reference, from the isolation for page reclaim).\n\nWell, blkdev_direct_IO() gets references for all pages, and on READ\noperations it only sets them dirty _later_.\n\nSo, if MADV_FREE\u0027d pages (i.e., not dirty) are used as buffers for direct\nIO read from block devices, and page reclaim happens during\n__blkdev_direct_IO[_simple]() exactly AFTER bio_iov_iter_get_pages()\nreturns, but BEFORE the pages are set dirty, the situation happens.\n\nThe direct IO read eventually completes.  Now, when userspace reads the\nbuffers, the PTE is no longer there and the page fault handler\ndo_anonymous_page() services that with the zero-page, NOT the data!\n\nA synthetic reproducer is provided.\n\n- Page faults:\n  \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nIf page reclaim happens BEFORE bio_iov_iter_get_pages() the issue doesn\u0027t\nhappen, because that faults-in all pages as writeable, so\ndo_anonymous_page() sets up a new page/rmap/PTE, and that is used by\ndirect IO.  The userspace reads don\u0027t fault as the PTE is there (thus\nzero-page is not used/setup).\n\nBut if page reclaim happens AFTER it / BEFORE setting pages dirty, the PTE\nis no longer there; the subsequent page faults can\u0027t help:\n\nThe data-read from the block device probably won\u0027t generate faults due to\nDMA (no MMU) but even in the case it wouldn\u0027t use DMA, that happens on\ndifferent virtual addresses (not user-mapped addresses) because `struct\nbio_vec` stores `struct page` to figure addresses out (which are different\nfrom user-mapped addresses) for the read.\n\nThus userspace reads (to user-mapped addresses) still fault, then\ndo_anonymous_page() gets another `struct page` that would address/ map to\nother memory than the `struct page` used by `struct bio_vec` for the read.\n(The original `struct page` is not available, since it wasn\u0027t freed, as\npage_ref_freeze() failed due to more page refs.  And even if it were\navailable, its data cannot be trusted anymore.)\n\nSolution:\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nOne solution is to check for the expected page reference count in\ntry_to_unmap_one().\n\nThere should be one reference from the isolation (that is also checked in\nshrink_page_list() with page_ref_freeze()) plus one or more references\nfrom page mapping(s) (put in discard: label).  Further references mean\nthat rmap/PTE cannot be unmapped/nuked.\n\n(Note: there might be more than one reference from mapping due to\nfork()/clone() without CLONE_VM, which use the same `struct page` for\nreferences, until the copy-on-write page gets copied.)\n\nSo, additional page references (e.g., from direct IO read) now prevent the\nrmap/PTE from being unmapped/dropped; similarly to the page is not freed\nper shrink_page_list()/page_ref_freeze()).\n\n- Races and Barriers:\n  \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nThe new check in try_to_unmap_one() should be safe in races with\nbio_iov_iter_get_pages() in get_user_pages() fast and slow paths, as it\u0027s\ndone under the PTE lock.\n\nThe fast path doesn\u0027t take the lock, but it checks if the PTE has changed\nand if so, it drops the reference and leaves the page for the slow path\n(which does take that lock).\n\nThe fast path requires synchronization w/ full memory barrier: it writes\nthe page reference count first then it reads the PTE later, while\ntry_to_unmap() writes PTE first then it reads page refcount.\n\nAnd a second barrier is needed, as the page dirty flag should not be read\nbefore the page reference count (as in __remove_mapping()).  (This can be\na load memory barrier only; no writes are involved.)\n\nCall stack/comments:\n\n- try_to_unmap_one()\n  - page_vma_mapped_walk()\n    - map_pte()\t\t\t# see pte_offset_map_lock():\n        pte_offset_map()\n        spin_lock()\n\n  - ptep_get_and_clear()\t# write PTE\n  - smp_mb()\t\t\t# (new barrier) GUP fast path\n  - page_ref_count()\t\t# (new check) read refcount\n\n  - page_vma_mapped_walk_done()\t# see pte_unmap_unlock():\n      pte_unmap()\n      spin_unlock()\n\n- bio_iov_iter_get_pages()\n  - __bio_iov_iter_get_pages()\n    - iov_iter_get_pages()\n      - get_user_pages_fast()\n        - internal_get_user_pages_fast()\n\n          # fast path\n          - lockless_pages_from_mm()\n            - gup_{pgd,p4d,pud,pmd,pte}_range()\n                ptep \u003d pte_offset_map()\t\t# not _lock()\n                pte \u003d ptep_get_lockless(ptep)\n\n                page \u003d pte_page(pte)\n                try_grab_compound_head(page)\t# inc refcount\n                                            \t# (RMW/barrier\n                                             \t#  on success)\n\n                if (pte_val(pte) !\u003d pte_val(*ptep)) # read PTE\n                        put_compound_head(page) # dec refcount\n                        \t\t\t# go slow path\n\n          # slow path\n          - __gup_longterm_unlocked()\n            - get_user_pages_unlocked()\n              - __get_user_pages_locked()\n                - __get_user_pages()\n                  - follow_{page,p4d,pud,pmd}_mask()\n                    - follow_page_pte()\n                        ptep \u003d pte_offset_map_lock()\n                        pte \u003d *ptep\n                        page \u003d vm_normal_page(pte)\n                        try_grab_page(page)\t# inc refcount\n                        pte_unmap_unlock()\n\n- Huge Pages:\n  \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nRegarding transparent hugepages, that logic shouldn\u0027t change, as MADV_FREE\n(aka lazyfree) pages are PageAnon() \u0026\u0026 !PageSwapBacked()\n(madvise_free_pte_range() -\u003e mark_page_lazyfree() -\u003e lru_lazyfree_fn())\nthus should reach shrink_page_list() -\u003e split_huge_page_to_list() before\ntry_to_unmap[_one](), so it deals with normal pages only.\n\n(And in case unlikely/TTU_SPLIT_HUGE_PMD/split_huge_pmd_address() happens,\nwhich should not or be rare, the page refcount should be greater than\nmapcount: the head page is referenced by tail pages.  That also prevents\nchecking the head `page` then incorrectly call page_remove_rmap(subpage)\nfor a tail page, that isn\u0027t even in the shrink_page_list()\u0027s page_list (an\neffect of split huge pmd/pmvw), as it might happen today in this unlikely\nscenario.)\n\nMADV_FREE\u0027d buffers:\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nSo, back to the \"if MADV_FREE pages are used as buffers\" note.  The case\nis arguable, and subject to multiple interpretations.\n\nThe madvise(2) manual page on the MADV_FREE advice value says:\n\n1) \u0027After a successful MADV_FREE ... data will be lost when\n   the kernel frees the pages.\u0027\n2) \u0027the free operation will be canceled if the caller writes\n   into the page\u0027 / \u0027subsequent writes ... will succeed and\n   then [the] kernel cannot free those dirtied pages\u0027\n3) \u0027If there is no subsequent write, the kernel can free the\n   pages at any time.\u0027\n\nThoughts, questions, considerations... respectively:\n\n1) Since the kernel didn\u0027t actually free the page (page_ref_freeze()\n   failed), should the data not have been lost? (on userspace read.)\n2) Should writes performed by the direct IO read be able to cancel\n   the free operation?\n   - Should the direct IO read be considered as \u0027the caller\u0027 too,\n     as it\u0027s been requested by \u0027the caller\u0027?\n   - Should the bio technique to dirty pages on return to userspace\n     (bio_check_pages_dirty() is called/used by __blkdev_direct_IO())\n     be considered in another/special way here?\n3) Should an upcoming write from a previously requested direct IO\n   read be considered as a subsequent write, so the kernel should\n   not free the pages? (as it\u0027s known at the time of page reclaim.)\n\nAnd lastly:\n\nTechnically, the last point would seem a reasonable consideration and\nbalance, as the madvise(2) manual page apparently (and fairly) seem to\nassume that \u0027writes\u0027 are memory access from the userspace process (not\nexplicitly considering writes from the kernel or its corner cases; again,\nfairly)..  plus the kernel fix implementation for the corner case of the\nlargely \u0027non-atomic write\u0027 encompassed by a direct IO read operation, is\nrelatively simple; and it helps.\n\nReproducer:\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\n@ test.c (simplified, but works)\n\n\t#define _GNU_SOURCE\n\t#include \u003cfcntl.h\u003e\n\t#include \u003cstdio.h\u003e\n\t#include \u003cunistd.h\u003e\n\t#include \u003csys/mman.h\u003e\n\n\tint main() {\n\t\tint fd, i;\n\t\tchar *buf;\n\n\t\tfd \u003d open(DEV, O_RDONLY | O_DIRECT);\n\n\t\tbuf \u003d mmap(NULL, BUF_SIZE, PROT_READ | PROT_WRITE,\n                \t   MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);\n\n\t\tfor (i \u003d 0; i \u003c BUF_SIZE; i +\u003d PAGE_SIZE)\n\t\t\tbuf[i] \u003d 1; // init to non-zero\n\n\t\tmadvise(buf, BUF_SIZE, MADV_FREE);\n\n\t\tread(fd, buf, BUF_SIZE);\n\n\t\tfor (i \u003d 0; i \u003c BUF_SIZE; i +\u003d PAGE_SIZE)\n\t\t\tprintf(\"%p: 0x%x\\n\", \u0026buf[i], buf[i]);\n\n\t\treturn 0;\n\t}\n\n@ block/fops.c (formerly fs/block_dev.c)\n\n\t+#include \u003clinux/swap.h\u003e\n\t...\n\t... __blkdev_direct_IO[_simple](...)\n\t{\n\t...\n\t+\tif (!strcmp(current-\u003ecomm, \"good\"))\n\t+\t\tshrink_all_memory(ULONG_MAX);\n\t+\n         \tret \u003d bio_iov_iter_get_pages(...);\n\t+\n\t+\tif (!strcmp(current-\u003ecomm, \"bad\"))\n\t+\t\tshrink_all_memory(ULONG_MAX);\n\t...\n\t}\n\n@ shell\n\n        # NUM_PAGES\u003d4\n        # PAGE_SIZE\u003d$(getconf PAGE_SIZE)\n\n        # yes | dd of\u003dtest.img bs\u003d${PAGE_SIZE} count\u003d${NUM_PAGES}\n        # DEV\u003d$(losetup -f --show test.img)\n\n        # gcc -DDEV\u003d\\\"$DEV\\\" \\\n              -DBUF_SIZE\u003d$((PAGE_SIZE * NUM_PAGES)) \\\n              -DPAGE_SIZE\u003d${PAGE_SIZE} \\\n               test.c -o test\n\n        # od -tx1 $DEV\n        0000000 79 0a 79 0a 79 0a 79 0a 79 0a 79 0a 79 0a 79 0a\n        *\n        0040000\n\n        # mv test good\n        # ./good\n        0x7f7c10418000: 0x79\n        0x7f7c10419000: 0x79\n        0x7f7c1041a000: 0x79\n        0x7f7c1041b000: 0x79\n\n        # mv good bad\n        # ./bad\n        0x7fa1b8050000: 0x0\n        0x7fa1b8051000: 0x0\n        0x7fa1b8052000: 0x0\n        0x7fa1b8053000: 0x0\n\nNote: the issue is consistent on v5.17-rc3, but it\u0027s intermittent with the\nsupport of MADV_FREE on v4.5 (60%-70% error; needs swap).  [wrap\ndo_direct_IO() in do_blockdev_direct_IO() @ fs/direct-io.c].\n\n- v5.17-rc3:\n\n        # for i in {1..1000}; do ./good; done \\\n            | cut -d: -f2 | sort | uniq -c\n           4000  0x79\n\n        # mv good bad\n        # for i in {1..1000}; do ./bad; done \\\n            | cut -d: -f2 | sort | uniq -c\n           4000  0x0\n\n        # free | grep Swap\n        Swap:             0           0           0\n\n- v4.5:\n\n        # for i in {1..1000}; do ./good; done \\\n            | cut -d: -f2 | sort | uniq -c\n           4000  0x79\n\n        # mv good bad\n        # for i in {1..1000}; do ./bad; done \\\n            | cut -d: -f2 | sort | uniq -c\n           2702  0x0\n           1298  0x79\n\n        # swapoff -av\n        swapoff /swap\n\n        # for i in {1..1000}; do ./bad; done \\\n            | cut -d: -f2 | sort | uniq -c\n           4000  0x79\n\nCeph/TCMalloc:\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nFor documentation purposes, the use case driving the analysis/fix is Ceph\non Ubuntu 18.04, as the TCMalloc library there still uses MADV_FREE to\nrelease unused memory to the system from the mmap\u0027ed page heap (might be\ncommitted back/used again; it\u0027s not munmap\u0027ed.) - PageHeap::DecommitSpan()\n-\u003e TCMalloc_SystemRelease() -\u003e madvise() - PageHeap::CommitSpan() -\u003e\nTCMalloc_SystemCommit() -\u003e do nothing.\n\nNote: TCMalloc switched back to MADV_DONTNEED a few commits after the\nrelease in Ubuntu 18.04 (google-perftools/gperftools 2.5), so the issue\njust \u0027disappeared\u0027 on Ceph on later Ubuntu releases but is still present\nin the kernel, and can be hit by other use cases.\n\nThe observed issue seems to be the old Ceph bug #22464 [1], where checksum\nmismatches are observed (and instrumentation with buffer dumps shows\nzero-pages read from mmap\u0027ed/MADV_FREE\u0027d page ranges).\n\nThe issue in Ceph was reasonably deemed a kernel bug (comment #50) and\nmostly worked around with a retry mechanism, but other parts of Ceph could\nstill hit that (rocksdb).  Anyway, it\u0027s less likely to be hit again as\nTCMalloc switched out of MADV_FREE by default.\n\n(Some kernel versions/reports from the Ceph bug, and relation with\nthe MADV_FREE introduction/changes; TCMalloc versions not checked.)\n- 4.4 good\n- 4.5 (madv_free: introduction)\n- 4.9 bad\n- 4.10 good? maybe a swapless system\n- 4.12 (madv_free: no longer free instantly on swapless systems)\n- 4.13 bad\n\n[1] https://tracker.ceph.com/issues/22464\n\nThanks:\n\u003d\u003d\u003d\u003d\u003d\u003d\n\nSeveral people contributed to analysis/discussions/tests/reproducers in\nthe first stages when drilling down on ceph/tcmalloc/linux kernel:\n\n- Dan Hill\n- Dan Streetman\n- Dongdong Tao\n- Gavin Guo\n- Gerald Yang\n- Heitor Alves de Siqueira\n- Ioanna Alifieraki\n- Jay Vosburgh\n- Matthew Ruffell\n- Ponnuvel Palaniyappan\n\nReviews, suggestions, corrections, comments:\n\n- Minchan Kim\n- Yu Zhao\n- Huang, Ying\n- John Hubbard\n- Christoph Hellwig\n\n[mfo@canonical.com: v4]\n  Link: https://lkml.kernel.org/r/20220209202659.183418-1-mfo@canonical.comLink: https://lkml.kernel.org/r/20220131230255.789059-1-mfo@canonical.com\n\nFixes: 802a3a92ad7a (\"mm: reclaim MADV_FREE pages\")\nSigned-off-by: Mauricio Faria de Oliveira \u003cmfo@canonical.com\u003e\nReviewed-by: \"Huang, Ying\" \u003cying.huang@intel.com\u003e\nCc: Minchan Kim \u003cminchan@kernel.org\u003e\nCc: Yu Zhao \u003cyuzhao@google.com\u003e\nCc: Yang Shi \u003cshy828301@gmail.com\u003e\nCc: Miaohe Lin \u003clinmiaohe@huawei.com\u003e\nCc: Dan Hill \u003cdaniel.hill@canonical.com\u003e\nCc: Dan Streetman \u003cdan.streetman@canonical.com\u003e\nCc: Dongdong Tao \u003cdongdong.tao@canonical.com\u003e\nCc: Gavin Guo \u003cgavin.guo@canonical.com\u003e\nCc: Gerald Yang \u003cgerald.yang@canonical.com\u003e\nCc: Heitor Alves de Siqueira \u003chalves@canonical.com\u003e\nCc: Ioanna Alifieraki \u003cioanna-maria.alifieraki@canonical.com\u003e\nCc: Jay Vosburgh \u003cjay.vosburgh@canonical.com\u003e\nCc: Matthew Ruffell \u003cmatthew.ruffell@canonical.com\u003e\nCc: Ponnuvel Palaniyappan \u003cponnuvel.palaniyappan@canonical.com\u003e\nCc: \u003cstable@vger.kernel.org\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "24e988c7fd1ee701ea78fd138ed309e5f5f207b4",
      "tree": "d353364c9423e84c447cef508894f1bb71e269ec",
      "parents": [
        "2c8659951654fc14c0351e33ca7604cdf670341e"
      ],
      "author": {
        "name": "Anshuman Khandual",
        "email": "anshuman.khandual@arm.com",
        "time": "Thu Mar 24 18:14:05 2022 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 19:06:51 2022 -0700"
      },
      "message": "mm: generalize ARCH_HAS_FILTER_PGPROT\n\nARCH_HAS_FILTER_PGPROT config has duplicate definitions on platforms that\nsubscribe it.  Instead make it a generic config option which can be\nselected on applicable platforms when required.\n\nLink: https://lkml.kernel.org/r/1643004823-16441-1-git-send-email-anshuman.khandual@arm.com\nSigned-off-by: Anshuman Khandual \u003canshuman.khandual@arm.com\u003e\nAcked-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nCc: Will Deacon \u003cwill@kernel.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2c8659951654fc14c0351e33ca7604cdf670341e",
      "tree": "a8d77327771bd3036ca68ee82dd808a3bed4436f",
      "parents": [
        "566d3362885aab04d6b0f885f12db3176ca3a032"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hughd@google.com",
        "time": "Thu Mar 24 18:14:02 2022 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 19:06:51 2022 -0700"
      },
      "message": "mm: unmap_mapping_range_tree() with i_mmap_rwsem shared\n\nRevert 48ec833b7851 (\"Revert \"mm/memory.c: share the i_mmap_rwsem\"\") to\nreinstate c8475d144abb (\"mm/memory.c: share the i_mmap_rwsem\"): the\nunmap_mapping_range family of functions do the unmapping of user pages\n(ultimately via zap_page_range_single) without modifying the interval tree\nitself, and unmapping races are necessarily guarded by page table lock,\nthus the i_mmap_rwsem should be shared in unmap_mapping_pages() and\nunmap_mapping_folio().\n\nCommit 48ec833b7851 was intended as a short-term measure, allowing the\nother shared lock changes into 3.19 final, before investigating three\ntrinity crashes, one of which had been bisected to commit c8475d144ab:\n\n[1] https://lkml.org/lkml/2014/11/14/342\nhttps://lore.kernel.org/lkml/5466142C.60100@oracle.com/\n[2] https://lkml.org/lkml/2014/12/22/213\nhttps://lore.kernel.org/lkml/549832E2.8060609@oracle.com/\n[3] https://lkml.org/lkml/2014/12/9/741\nhttps://lore.kernel.org/lkml/5487ACC5.1010002@oracle.com/\n\nTwo of those were Bad page states: free_pages_prepare() found PG_mlocked\nstill set - almost certain to have been fixed by 4.4 commit b87537d9e2fe\n(\"mm: rmap use pte lock not mmap_sem to set PageMlocked\").  The NULL deref\non rwsem in [2]: unclear, only happened once, not bisected to c8475d144ab.\n\nNo change to the i_mmap_lock_write() around __unmap_hugepage_range_final()\nin unmap_single_vma(): IIRC that\u0027s a special usage, helping to serialize\nhugetlbfs page table sharing, not to be dabbled with lightly.  No change\nto other uses of i_mmap_lock_write() by hugetlbfs.\n\nI am not aware of any significant gains from the concurrency allowed by\nthis commit: it is submitted more to resolve an ancient misunderstanding.\n\nLink: https://lkml.kernel.org/r/e4a5e356-6c87-47b2-3ce8-c2a95ae84e20@google.com\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nCc: \"Kirill A. Shutemov\" \u003ckirill.shutemov@linux.intel.com\u003e\nCc: Davidlohr Bueso \u003cdave@stgolabs.net\u003e\nCc: Sasha Levin \u003csashal@kernel.org\u003e\nCc: Mel Gorman \u003cmgorman@techsingularity.net\u003e\nCc: Mike Kravetz \u003cmike.kravetz@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "566d3362885aab04d6b0f885f12db3176ca3a032",
      "tree": "25ac4e4fd25635a26587151d6b54a90a9e86888d",
      "parents": [
        "7f7609175ff2339a2cffa48ba2474ef928d7eafd"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hughd@google.com",
        "time": "Thu Mar 24 18:13:59 2022 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 19:06:51 2022 -0700"
      },
      "message": "mm: warn on deleting redirtied only if accounted\n\nfilemap_unaccount_folio() has a WARN_ON_ONCE(folio_test_dirty(folio)).  It\nis good to warn of late dirtying on a persistent filesystem, but late\ndirtying on tmpfs can only lose data which is expected to be thrown away;\nand it\u0027s a pity if that warning comes ONCE on tmpfs, then hides others\nwhich really matter.  Make it conditional on mapping_cap_writeback().\n\nCleanup: then folio_account_cleaned() no longer needs to check that for\nitself, and so no longer needs to know the mapping.\n\nLink: https://lkml.kernel.org/r/b5a1106c-7226-a5c6-ad41-ad4832cae1f@google.com\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nCc: Matthew Wilcox \u003cwilly@infradead.org\u003e\nCc: Jan Kara \u003cjack@suse.de\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7f7609175ff2339a2cffa48ba2474ef928d7eafd",
      "tree": "9fcd1debb0cf0d2e0e815bb3cb8f289cb38a6339",
      "parents": [
        "55c62fa7c53368a9011cd1276c001a1469078c6a"
      ],
      "author": {
        "name": "David Hildenbrand",
        "email": "david@redhat.com",
        "time": "Thu Mar 24 18:13:56 2022 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 19:06:51 2022 -0700"
      },
      "message": "mm/huge_memory: remove stale locking logic from __split_huge_pmd()\n\nLet\u0027s remove the stale logic that was required for reuse_swap_page().\n\n[akpm@linux-foundation.org: simplification, per Yang Shi]\n\nLink: https://lkml.kernel.org/r/20220131162940.210846-10-david@redhat.com\nSigned-off-by: David Hildenbrand \u003cdavid@redhat.com\u003e\nAcked-by: Vlastimil Babka \u003cvbabka@suse.cz\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Don Dutile \u003cddutile@redhat.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nCc: Jann Horn \u003cjannh@google.com\u003e\nCc: Jason Gunthorpe \u003cjgg@nvidia.com\u003e\nCc: John Hubbard \u003cjhubbard@nvidia.com\u003e\nCc: Kirill A. Shutemov \u003ckirill.shutemov@linux.intel.com\u003e\nCc: Liang Zhang \u003czhangliang5@huawei.com\u003e\nCc: Matthew Wilcox (Oracle) \u003cwilly@infradead.org\u003e\nCc: Michal Hocko \u003cmhocko@kernel.org\u003e\nCc: Mike Kravetz \u003cmike.kravetz@oracle.com\u003e\nCc: Mike Rapoport \u003crppt@linux.ibm.com\u003e\nCc: Nadav Amit \u003cnadav.amit@gmail.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Peter Xu \u003cpeterx@redhat.com\u003e\nCc: Rik van Riel \u003criel@surriel.com\u003e\nCc: Roman Gushchin \u003croman.gushchin@linux.dev\u003e\nCc: Shakeel Butt \u003cshakeelb@google.com\u003e\nCc: Yang Shi \u003cshy828301@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "55c62fa7c53368a9011cd1276c001a1469078c6a",
      "tree": "504ac6e4b12e97765f9fc62d44f8ce7ce2ed54ff",
      "parents": [
        "03104c2c5db8918030788e607e4af980b2f42bb3"
      ],
      "author": {
        "name": "David Hildenbrand",
        "email": "david@redhat.com",
        "time": "Thu Mar 24 18:13:53 2022 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 19:06:51 2022 -0700"
      },
      "message": "mm/huge_memory: remove stale page_trans_huge_mapcount()\n\nAll users are gone, let\u0027s remove it.\n\nLink: https://lkml.kernel.org/r/20220131162940.210846-9-david@redhat.com\nSigned-off-by: David Hildenbrand \u003cdavid@redhat.com\u003e\nAcked-by: Vlastimil Babka \u003cvbabka@suse.cz\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Don Dutile \u003cddutile@redhat.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nCc: Jann Horn \u003cjannh@google.com\u003e\nCc: Jason Gunthorpe \u003cjgg@nvidia.com\u003e\nCc: John Hubbard \u003cjhubbard@nvidia.com\u003e\nCc: Kirill A. Shutemov \u003ckirill.shutemov@linux.intel.com\u003e\nCc: Liang Zhang \u003czhangliang5@huawei.com\u003e\nCc: Matthew Wilcox (Oracle) \u003cwilly@infradead.org\u003e\nCc: Michal Hocko \u003cmhocko@kernel.org\u003e\nCc: Mike Kravetz \u003cmike.kravetz@oracle.com\u003e\nCc: Mike Rapoport \u003crppt@linux.ibm.com\u003e\nCc: Nadav Amit \u003cnadav.amit@gmail.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Peter Xu \u003cpeterx@redhat.com\u003e\nCc: Rik van Riel \u003criel@surriel.com\u003e\nCc: Roman Gushchin \u003croman.gushchin@linux.dev\u003e\nCc: Shakeel Butt \u003cshakeelb@google.com\u003e\nCc: Yang Shi \u003cshy828301@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "03104c2c5db8918030788e607e4af980b2f42bb3",
      "tree": "c9b7754ad398baeaa9c310a5b031c1bd5baf4103",
      "parents": [
        "363106c4cefe7d08ca67cc77f3d38d4213190f31"
      ],
      "author": {
        "name": "David Hildenbrand",
        "email": "david@redhat.com",
        "time": "Thu Mar 24 18:13:50 2022 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 19:06:51 2022 -0700"
      },
      "message": "mm/swapfile: remove stale reuse_swap_page()\n\nAll users are gone, let\u0027s remove it.  We\u0027ll let SWP_STABLE_WRITES stick\naround for now, as it might come in handy in the near future.\n\nLink: https://lkml.kernel.org/r/20220131162940.210846-8-david@redhat.com\nSigned-off-by: David Hildenbrand \u003cdavid@redhat.com\u003e\nAcked-by: Vlastimil Babka \u003cvbabka@suse.cz\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Don Dutile \u003cddutile@redhat.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nCc: Jann Horn \u003cjannh@google.com\u003e\nCc: Jason Gunthorpe \u003cjgg@nvidia.com\u003e\nCc: John Hubbard \u003cjhubbard@nvidia.com\u003e\nCc: Kirill A. Shutemov \u003ckirill.shutemov@linux.intel.com\u003e\nCc: Liang Zhang \u003czhangliang5@huawei.com\u003e\nCc: Matthew Wilcox (Oracle) \u003cwilly@infradead.org\u003e\nCc: Michal Hocko \u003cmhocko@kernel.org\u003e\nCc: Mike Kravetz \u003cmike.kravetz@oracle.com\u003e\nCc: Mike Rapoport \u003crppt@linux.ibm.com\u003e\nCc: Nadav Amit \u003cnadav.amit@gmail.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Peter Xu \u003cpeterx@redhat.com\u003e\nCc: Rik van Riel \u003criel@surriel.com\u003e\nCc: Roman Gushchin \u003croman.gushchin@linux.dev\u003e\nCc: Shakeel Butt \u003cshakeelb@google.com\u003e\nCc: Yang Shi \u003cshy828301@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "363106c4cefe7d08ca67cc77f3d38d4213190f31",
      "tree": "5e27f91949ff00469e7d62448f052ebb3fef38a1",
      "parents": [
        "3bff7e3f1f16dc7305d12905c51c278b54970f0e"
      ],
      "author": {
        "name": "David Hildenbrand",
        "email": "david@redhat.com",
        "time": "Thu Mar 24 18:13:46 2022 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 19:06:51 2022 -0700"
      },
      "message": "mm/khugepaged: remove reuse_swap_page() usage\n\nreuse_swap_page() currently indicates if we can write to an anon page\nwithout COW.  A COW is required if the page is shared by multiple\nprocesses (either already mapped or via swap entries) or if there is\nconcurrent writeback that cannot tolerate concurrent page modifications.\n\nHowever, in the context of khugepaged we\u0027re not actually going to write to\na read-only mapped page, we\u0027ll copy the page content to our newly\nallocated THP and map that THP writable.  All we have to make sure is that\nthe read-only mapped page we\u0027re about to copy won\u0027t get reused by another\nprocess sharing the page, otherwise, page content would get modified.  But\nthat is already guaranteed via multiple mechanisms (e.g., holding a\nreference, holding the page lock, removing the rmap after copying the\npage).\n\nThe swapcache handling was introduced in commit 10359213d05a (\"mm:\nincorporate read-only pages into transparent huge pages\") and it sounds\nlike it merely wanted to mimic what do_swap_page() would do when trying to\nmap a page obtained via the swapcache writable.\n\nAs that logic is unnecessary, let\u0027s just remove it, removing the last user\nof reuse_swap_page().\n\nLink: https://lkml.kernel.org/r/20220131162940.210846-7-david@redhat.com\nSigned-off-by: David Hildenbrand \u003cdavid@redhat.com\u003e\nReviewed-by: Yang Shi \u003cshy828301@gmail.com\u003e\nAcked-by: Vlastimil Babka \u003cvbabka@suse.cz\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Don Dutile \u003cddutile@redhat.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nCc: Jann Horn \u003cjannh@google.com\u003e\nCc: Jason Gunthorpe \u003cjgg@nvidia.com\u003e\nCc: John Hubbard \u003cjhubbard@nvidia.com\u003e\nCc: Kirill A. Shutemov \u003ckirill.shutemov@linux.intel.com\u003e\nCc: Liang Zhang \u003czhangliang5@huawei.com\u003e\nCc: Matthew Wilcox (Oracle) \u003cwilly@infradead.org\u003e\nCc: Michal Hocko \u003cmhocko@kernel.org\u003e\nCc: Mike Kravetz \u003cmike.kravetz@oracle.com\u003e\nCc: Mike Rapoport \u003crppt@linux.ibm.com\u003e\nCc: Nadav Amit \u003cnadav.amit@gmail.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Peter Xu \u003cpeterx@redhat.com\u003e\nCc: Rik van Riel \u003criel@surriel.com\u003e\nCc: Roman Gushchin \u003croman.gushchin@linux.dev\u003e\nCc: Shakeel Butt \u003cshakeelb@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3bff7e3f1f16dc7305d12905c51c278b54970f0e",
      "tree": "5d04be7f2079b069de250ab3e92c6f07c8995a8f",
      "parents": [
        "c145e0b47c77ebeefdfd73dbb344577b2fc9b065"
      ],
      "author": {
        "name": "David Hildenbrand",
        "email": "david@redhat.com",
        "time": "Thu Mar 24 18:13:43 2022 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 19:06:50 2022 -0700"
      },
      "message": "mm/huge_memory: streamline COW logic in do_huge_pmd_wp_page()\n\nWe currently have a different COW logic for anon THP than we have for\nordinary anon pages in do_wp_page(): the effect is that the issue reported\nin CVE-2020-29374 is currently still possible for anon THP: an unintended\ninformation leak from the parent to the child.\n\nLet\u0027s apply the same logic (page_count() \u003d\u003d 1), with similar optimizations\nto remove additional references first as we really want to avoid\nPTE-mapping the THP and copying individual pages best we can.\n\nIf we end up with a page that has page_count() !\u003d 1, we\u0027ll have to PTE-map\nthe THP and fallback to do_wp_page(), which will always copy the page.\n\nNote that KSM does not apply to THP.\n\nI. Interaction with the swapcache and writeback\n\nWhile a THP is in the swapcache, the swapcache holds one reference on each\nsubpage of the THP.  So with PageSwapCache() set, we expect as many\nadditional references as we have subpages.  If we manage to remove the THP\nfrom the swapcache, all these references will be gone.\n\nUsually, a THP is not split when entered into the swapcache and stays a\ncompound page.  However, try_to_unmap() will PTE-map the THP and use PTE\nswap entries.  There are no PMD swap entries for that purpose,\nconsequently, we always only swapin subpages into PTEs.\n\nRemoving a page from the swapcache can fail either when there are\nremaining swap entries (in which case COW is the right thing to do) or if\nthe page is currently under writeback.\n\nHaving a locked, R/O PMD-mapped THP that is in the swapcache seems to be\npossible only in corner cases, for example, if try_to_unmap() failed after\nadding the page to the swapcache.  However, it\u0027s comparatively easy to\nhandle.\n\nAs we have to fully unmap a THP before starting writeback, and swapin is\nalways done on the PTE level, we shouldn\u0027t find a R/O PMD-mapped THP in\nthe swapcache that is under writeback.  This should at least leave\nwriteback out of the picture.\n\nII. Interaction with GUP references\n\nHaving a R/O PMD-mapped THP with GUP references (i.e., R/O references)\nwill result in PTE-mapping the THP on a write fault.  Similar to ordinary\nanon pages, do_wp_page() will have to copy sub-pages and result in a\ndisconnect between the GUP references and the pages actually mapped into\nthe page tables.  To improve the situation in the future, we\u0027ll need\nadditional handling to mark anonymous pages as definitely exclusive to a\nsingle process, only allow GUP pins on exclusive anon pages, and disallow\nsharing of exclusive anon pages with GUP pins e.g., during fork().\n\nIII. Interaction with references from LRU pagevecs\n\nThere is no need to try draining the (local) LRU pagevecs in case we would\nstumble over a !PageLRU() page: folio_add_lru() and friends will always\nflush the affected pagevec after adding a compound page to it immediately\n-- pagevec_add_and_need_flush() always returns \"true\" for them.  Note that\nthe LRU pagevecs will hold a reference on the compound page for a very\nshort time, between adding the page to the pagevec and draining it\nimmediately afterwards.\n\nIV. Interaction with speculative/temporary references\n\nSimilar to ordinary anon pages, other speculative/temporary references on\nthe THP, for example, from the pagecache or page migration code, will\ndisallow exclusive reuse of the page.  We\u0027ll have to PTE-map the THP.\n\nLink: https://lkml.kernel.org/r/20220131162940.210846-6-david@redhat.com\nSigned-off-by: David Hildenbrand \u003cdavid@redhat.com\u003e\nAcked-by: Vlastimil Babka \u003cvbabka@suse.cz\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Don Dutile \u003cddutile@redhat.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nCc: Jann Horn \u003cjannh@google.com\u003e\nCc: Jason Gunthorpe \u003cjgg@nvidia.com\u003e\nCc: John Hubbard \u003cjhubbard@nvidia.com\u003e\nCc: Kirill A. Shutemov \u003ckirill.shutemov@linux.intel.com\u003e\nCc: Liang Zhang \u003czhangliang5@huawei.com\u003e\nCc: Matthew Wilcox (Oracle) \u003cwilly@infradead.org\u003e\nCc: Michal Hocko \u003cmhocko@kernel.org\u003e\nCc: Mike Kravetz \u003cmike.kravetz@oracle.com\u003e\nCc: Mike Rapoport \u003crppt@linux.ibm.com\u003e\nCc: Nadav Amit \u003cnadav.amit@gmail.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Peter Xu \u003cpeterx@redhat.com\u003e\nCc: Rik van Riel \u003criel@surriel.com\u003e\nCc: Roman Gushchin \u003croman.gushchin@linux.dev\u003e\nCc: Shakeel Butt \u003cshakeelb@google.com\u003e\nCc: Yang Shi \u003cshy828301@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c145e0b47c77ebeefdfd73dbb344577b2fc9b065",
      "tree": "9524a40d5301a81867a5ef46025476bbc2e0b5b1",
      "parents": [
        "84d60fdd3733fb86c126f2adfd0361fdc44087c3"
      ],
      "author": {
        "name": "David Hildenbrand",
        "email": "david@redhat.com",
        "time": "Thu Mar 24 18:13:40 2022 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 19:06:50 2022 -0700"
      },
      "message": "mm: streamline COW logic in do_swap_page()\n\nCurrently we have a different COW logic when:\n* triggering a read-fault to swapin first and then trigger a write-fault\n  -\u003e do_swap_page() + do_wp_page()\n* triggering a write-fault to swapin\n  -\u003e do_swap_page() + do_wp_page() only if we fail reuse in do_swap_page()\n\nThe COW logic in do_swap_page() is different than our reuse logic in\ndo_wp_page().  The COW logic in do_wp_page() -- page_count() \u003d\u003d 1 -- makes\ncurrently sure that we certainly don\u0027t have a remaining reference, e.g.,\nvia GUP, on the target page we want to reuse: if there is any unexpected\nreference, we have to copy to avoid information leaks.\n\nAs do_swap_page() behaves differently, in environments with swap enabled\nwe can currently have an unintended information leak from the parent to\nthe child, similar as known from CVE-2020-29374:\n\n\t1. Parent writes to anonymous page\n\t-\u003e Page is mapped writable and modified\n\t2. Page is swapped out\n\t-\u003e Page is unmapped and replaced by swap entry\n\t3. fork()\n\t-\u003e Swap entries are copied to child\n\t4. Child pins page R/O\n\t-\u003e Page is mapped R/O into child\n\t5. Child unmaps page\n\t-\u003e Child still holds GUP reference\n\t6. Parent writes to page\n\t-\u003e Page is reused in do_swap_page()\n\t-\u003e Child can observe changes\n\nExchanging 2. and 3. should have the same effect.\n\nLet\u0027s apply the same COW logic as in do_wp_page(), conditionally trying to\nremove the page from the swapcache after freeing the swap entry, however,\nbefore actually mapping our page.  We can change the order now that we use\ntry_to_free_swap(), which doesn\u0027t care about the mapcount, instead of\nreuse_swap_page().\n\nTo handle references from the LRU pagevecs, conditionally drain the local\nLRU pagevecs when required, however, don\u0027t consider the page_count() when\ndeciding whether to drain to keep it simple for now.\n\nLink: https://lkml.kernel.org/r/20220131162940.210846-5-david@redhat.com\nSigned-off-by: David Hildenbrand \u003cdavid@redhat.com\u003e\nAcked-by: Vlastimil Babka \u003cvbabka@suse.cz\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Don Dutile \u003cddutile@redhat.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nCc: Jann Horn \u003cjannh@google.com\u003e\nCc: Jason Gunthorpe \u003cjgg@nvidia.com\u003e\nCc: John Hubbard \u003cjhubbard@nvidia.com\u003e\nCc: Kirill A. Shutemov \u003ckirill.shutemov@linux.intel.com\u003e\nCc: Liang Zhang \u003czhangliang5@huawei.com\u003e\nCc: Matthew Wilcox (Oracle) \u003cwilly@infradead.org\u003e\nCc: Michal Hocko \u003cmhocko@kernel.org\u003e\nCc: Mike Kravetz \u003cmike.kravetz@oracle.com\u003e\nCc: Mike Rapoport \u003crppt@linux.ibm.com\u003e\nCc: Nadav Amit \u003cnadav.amit@gmail.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Peter Xu \u003cpeterx@redhat.com\u003e\nCc: Rik van Riel \u003criel@surriel.com\u003e\nCc: Roman Gushchin \u003croman.gushchin@linux.dev\u003e\nCc: Shakeel Butt \u003cshakeelb@google.com\u003e\nCc: Yang Shi \u003cshy828301@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "84d60fdd3733fb86c126f2adfd0361fdc44087c3",
      "tree": "15e2099fb11e5f144c1cb51ac00994b4c234a352",
      "parents": [
        "d4c470970d45c863fafc757521a82be2f80b1232"
      ],
      "author": {
        "name": "David Hildenbrand",
        "email": "david@redhat.com",
        "time": "Thu Mar 24 18:13:37 2022 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 19:06:50 2022 -0700"
      },
      "message": "mm: slightly clarify KSM logic in do_swap_page()\n\nLet\u0027s make it clearer that KSM might only have to copy a page in case we\nhave a page in the swapcache, not if we allocated a fresh page and\nbypassed the swapcache.  While at it, add a comment why this is usually\nnecessary and merge the two swapcache conditions.\n\n[akpm@linux-foundation.org: fix comment, per David]\n\nLink: https://lkml.kernel.org/r/20220131162940.210846-4-david@redhat.com\nSigned-off-by: David Hildenbrand \u003cdavid@redhat.com\u003e\nAcked-by: Vlastimil Babka \u003cvbabka@suse.cz\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Don Dutile \u003cddutile@redhat.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nCc: Jann Horn \u003cjannh@google.com\u003e\nCc: Jason Gunthorpe \u003cjgg@nvidia.com\u003e\nCc: John Hubbard \u003cjhubbard@nvidia.com\u003e\nCc: Kirill A. Shutemov \u003ckirill.shutemov@linux.intel.com\u003e\nCc: Liang Zhang \u003czhangliang5@huawei.com\u003e\nCc: Matthew Wilcox (Oracle) \u003cwilly@infradead.org\u003e\nCc: Michal Hocko \u003cmhocko@kernel.org\u003e\nCc: Mike Kravetz \u003cmike.kravetz@oracle.com\u003e\nCc: Mike Rapoport \u003crppt@linux.ibm.com\u003e\nCc: Nadav Amit \u003cnadav.amit@gmail.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Peter Xu \u003cpeterx@redhat.com\u003e\nCc: Rik van Riel \u003criel@surriel.com\u003e\nCc: Roman Gushchin \u003croman.gushchin@linux.dev\u003e\nCc: Shakeel Butt \u003cshakeelb@google.com\u003e\nCc: Yang Shi \u003cshy828301@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d4c470970d45c863fafc757521a82be2f80b1232",
      "tree": "d84e459a27b6478428c809064137a8e825815c3b",
      "parents": [
        "53a05ad9f21d858d24f76d12b3e990405f2036d1"
      ],
      "author": {
        "name": "David Hildenbrand",
        "email": "david@redhat.com",
        "time": "Thu Mar 24 18:13:34 2022 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 19:06:50 2022 -0700"
      },
      "message": "mm: optimize do_wp_page() for fresh pages in local LRU pagevecs\n\nFor example, if a page just got swapped in via a read fault, the LRU\npagevecs might still hold a reference to the page.  If we trigger a write\nfault on such a page, the additional reference from the LRU pagevecs will\nprohibit reusing the page.\n\nLet\u0027s conditionally drain the local LRU pagevecs when we stumble over a\n!PageLRU() page.  We cannot easily drain remote LRU pagevecs and it might\nnot be desirable performance-wise.  Consequently, this will only avoid\ncopying in some cases.\n\nAdd a simple \"page_count(page) \u003e 3\" check first but keep the\n\"page_count(page) \u003e 1 + PageSwapCache(page)\" check in place, as we want to\nminimize cases where we remove a page from the swapcache but won\u0027t be able\nto reuse it, for example, because another process has it mapped R/O, to\nnot affect reclaim.\n\nWe cannot easily handle the following cases and we will always have to\ncopy:\n\n(1) The page is referenced in the LRU pagevecs of other CPUs. We really\n    would have to drain the LRU pagevecs of all CPUs -- most probably\n    copying is much cheaper.\n\n(2) The page is already PageLRU() but is getting moved between LRU\n    lists, for example, for activation (e.g., mark_page_accessed()),\n    deactivation (MADV_COLD), or lazyfree (MADV_FREE). We\u0027d have to\n    drain mostly unconditionally, which might be bad performance-wise.\n    Most probably this won\u0027t happen too often in practice.\n\nNote that there are other reasons why an anon page might temporarily not\nbe PageLRU(): for example, compaction and migration have to isolate LRU\npages from the LRU lists first (isolate_lru_page()), moving them to\ntemporary local lists and clearing PageLRU() and holding an additional\nreference on the page.  In that case, we\u0027ll always copy.\n\nThis change seems to be fairly effective with the reproducer [1] shared by\nNadav, as long as writeback is done synchronously, for example, using\nzram.  However, with asynchronous writeback, we\u0027ll usually fail to free\nthe swapcache because the page is still under writeback: something we\ncannot easily optimize for, and maybe it\u0027s not really relevant in\npractice.\n\n[1] https://lkml.kernel.org/r/0480D692-D9B2-429A-9A88-9BBA1331AC3A@gmail.com\n\nLink: https://lkml.kernel.org/r/20220131162940.210846-3-david@redhat.com\nSigned-off-by: David Hildenbrand \u003cdavid@redhat.com\u003e\nAcked-by: Vlastimil Babka \u003cvbabka@suse.cz\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Don Dutile \u003cddutile@redhat.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nCc: Jann Horn \u003cjannh@google.com\u003e\nCc: Jason Gunthorpe \u003cjgg@nvidia.com\u003e\nCc: John Hubbard \u003cjhubbard@nvidia.com\u003e\nCc: Kirill A. Shutemov \u003ckirill.shutemov@linux.intel.com\u003e\nCc: Liang Zhang \u003czhangliang5@huawei.com\u003e\nCc: Matthew Wilcox (Oracle) \u003cwilly@infradead.org\u003e\nCc: Michal Hocko \u003cmhocko@kernel.org\u003e\nCc: Mike Kravetz \u003cmike.kravetz@oracle.com\u003e\nCc: Mike Rapoport \u003crppt@linux.ibm.com\u003e\nCc: Nadav Amit \u003cnadav.amit@gmail.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Peter Xu \u003cpeterx@redhat.com\u003e\nCc: Rik van Riel \u003criel@surriel.com\u003e\nCc: Roman Gushchin \u003croman.gushchin@linux.dev\u003e\nCc: Shakeel Butt \u003cshakeelb@google.com\u003e\nCc: Yang Shi \u003cshy828301@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "53a05ad9f21d858d24f76d12b3e990405f2036d1",
      "tree": "b115255a09b07735699e08f0a83c22f8871cd8aa",
      "parents": [
        "562beb7235abfebdd8366e0664a5c3d1e597b990"
      ],
      "author": {
        "name": "David Hildenbrand",
        "email": "david@redhat.com",
        "time": "Thu Mar 24 18:13:30 2022 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 19:06:50 2022 -0700"
      },
      "message": "mm: optimize do_wp_page() for exclusive pages in the swapcache\n\nPatch series \"mm: COW fixes part 1: fix the COW security issue for THP and swap\", v3.\n\nThis series attempts to optimize and streamline the COW logic for ordinary\nanon pages and THP anon pages, fixing two remaining instances of\nCVE-2020-29374 in do_swap_page() and do_huge_pmd_wp_page(): information\ncan leak from a parent process to a child process via anonymous pages\nshared during fork().\n\nThis issue, including other related COW issues, has been summarized in [2]:\n\n \"1. Observing Memory Modifications of Private Pages From A Child Process\n\n  Long story short: process-private memory might not be as private as you\n  think once you fork(): successive modifications of private memory\n  regions in the parent process can still be observed by the child\n  process, for example, by smart use of vmsplice()+munmap().\n\n  The core problem is that pinning pages readable in a child process, such\n  as done via the vmsplice system call, can result in a child process\n  observing memory modifications done in the parent process the child is\n  not supposed to observe. [1] contains an excellent summary and [2]\n  contains further details. This issue was assigned CVE-2020-29374 [9].\n\n  For this to trigger, it\u0027s required to use a fork() without subsequent\n  exec(), for example, as used under Android zygote. Without further\n  details about an application that forks less-privileged child processes,\n  one cannot really say what\u0027s actually affected and what\u0027s not -- see the\n  details section the end of this mail for a short sshd/openssh analysis.\n\n  While commit 17839856fd58 (\"gup: document and work around \"COW can break\n  either way\" issue\") fixed this issue and resulted in other problems\n  (e.g., ptrace on pmem), commit 09854ba94c6a (\"mm: do_wp_page()\n  simplification\") re-introduced part of the problem unfortunately.\n\n  The original reproducer can be modified quite easily to use THP [3] and\n  make the issue appear again on upstream kernels. I modified it to use\n  hugetlb [4] and it triggers as well. The problem is certainly less\n  severe with hugetlb than with THP; it merely highlights that we still\n  have plenty of open holes we should be closing/fixing.\n\n  Regarding vmsplice(), the only known workaround is to disallow the\n  vmsplice() system call ... or disable THP and hugetlb. But who knows\n  what else is affected (RDMA? O_DIRECT?) to achieve the same goal -- in\n  the end, it\u0027s a more generic issue\"\n\nThis security issue was first reported by Jann Horn on 27 May 2020 and it\ncurrently affects anonymous pages during swapin, anonymous THP and hugetlb.\nThis series tackles anonymous pages during swapin and anonymous THP:\n\n - do_swap_page() for handling COW on PTEs during swapin directly\n\n - do_huge_pmd_wp_page() for handling COW on PMD-mapped THP during write\n   faults\n\nWith this series, we\u0027ll apply the same COW logic we have in do_wp_page()\nto all swappable anon pages: don\u0027t reuse (map writable) the page in\ncase there are additional references (page_count() !\u003d 1). All users of\nreuse_swap_page() are remove, and consequently reuse_swap_page() is\nremoved.\n\nIn general, we\u0027re struggling with the following COW-related issues:\n\n(1) \"missed COW\": we miss to copy on write and reuse the page (map it\n    writable) although we must copy because there are pending references\n    from another process to this page. The result is a security issue.\n\n(2) \"wrong COW\": we copy on write although we wouldn\u0027t have to and\n    shouldn\u0027t: if there are valid GUP references, they will become out\n    of sync with the pages mapped into the page table. We fail to detect\n    that such a page can be reused safely, especially if never more than\n    a single process mapped the page. The result is an intra process\n    memory corruption.\n\n(3) \"unnecessary COW\": we copy on write although we wouldn\u0027t have to:\n    performance degradation and temporary increases swap+memory\n    consumption can be the result.\n\nWhile this series fixes (1) for swappable anon pages, it tries to reduce\nreported cases of (3) first as good and easy as possible to limit the\nimpact when streamlining.  The individual patches try to describe in\nwhich cases we will run into (3).\n\nThis series certainly makes (2) worse for THP, because a THP will now\nget PTE-mapped on write faults if there are additional references, even\nif there was only ever a single process involved: once PTE-mapped, we\u0027ll\ncopy each and every subpage and won\u0027t reuse any subpage as long as the\nunderlying compound page wasn\u0027t split.\n\nI\u0027m working on an approach to fix (2) and improve (3): PageAnonExclusive\nto mark anon pages that are exclusive to a single process, allow GUP\npins only on such exclusive pages, and allow turning exclusive pages\nshared (clearing PageAnonExclusive) only if there are no GUP pins.  Anon\npages with PageAnonExclusive set never have to be copied during write\nfaults, but eventually during fork() if they cannot be turned shared.\nThe improved reuse logic in this series will essentially also be the\nlogic to reset PageAnonExclusive.  This work will certainly take a\nwhile, but I\u0027m planning on sharing details before having code fully\nready.\n\n#1-#5 can be applied independently of the rest. #6-#9 are mostly only\ncleanups related to reuse_swap_page().\n\nNotes:\n* For now, I\u0027ll leave hugetlb code untouched: \"unnecessary COW\" might\n  easily break existing setups because hugetlb pages are a scarce resource\n  and we could just end up having to crash the application when we run out\n  of hugetlb pages. We have to be very careful and the security aspect with\n  hugetlb is most certainly less relevant than for unprivileged anon pages.\n* Instead of lru_add_drain() we might actually just drain the lru_add list\n  or even just remove the single page of interest from the lru_add list.\n  This would require a new helper function, and could be added if the\n  conditional lru_add_drain() turn out to be a problem.\n* I extended the test case already included in [1] to also test for the\n  newly found do_swap_page() case. I\u0027ll send that out separately once/if\n  this part was merged.\n\n[1] https://lkml.kernel.org/r/20211217113049.23850-1-david@redhat.com\n[2] https://lore.kernel.org/r/3ae33b08-d9ef-f846-56fb-645e3b9b4c66@redhat.com\n\nThis patch (of 9):\n\nLiang Zhang reported [1] that the current COW logic in do_wp_page() is\nsub-optimal when it comes to swap+read fault+write fault of anonymous\npages that have a single user, visible via a performance degradation in\nthe redis benchmark.  Something similar was previously reported [2] by\nNadav with a simple reproducer.\n\nAfter we put an anon page into the swapcache and unmapped it from a single\nprocess, that process might read that page again and refault it read-only.\nIf that process then writes to that page, the process is actually the\nexclusive user of the page, however, the COW logic in do_co_page() won\u0027t\nbe able to reuse it due to the additional reference from the swapcache.\n\nLet\u0027s optimize for pages that have been added to the swapcache but only\nhave an exclusive user.  Try removing the swapcache reference if there is\nhope that we\u0027re the exclusive user.\n\nWe will fail removing the swapcache reference in two scenarios:\n(1) There are additional swap entries referencing the page: copying\n    instead of reusing is the right thing to do.\n(2) The page is under writeback: theoretically we might be able to reuse\n    in some cases, however, we cannot remove the additional reference\n    and will have to copy.\n\nNote that we\u0027ll only try removing the page from the swapcache when it\u0027s\nhighly likely that we\u0027ll be the exclusive owner after removing the page\nfrom the swapache.  As we\u0027re about to map that page writable and redirty\nit, that should not affect reclaim but is rather the right thing to do.\n\nFurther, we might have additional references from the LRU pagevecs, which\nwill force us to copy instead of being able to reuse.  We\u0027ll try handling\nsuch references for some scenarios next.  Concurrent writeback cannot be\nhandled easily and we\u0027ll always have to copy.\n\nWhile at it, remove the superfluous page_mapcount() check: it\u0027s\nimplicitly covered by the page_count() for ordinary anon pages.\n\n[1] https://lkml.kernel.org/r/20220113140318.11117-1-zhangliang5@huawei.com\n[2] https://lkml.kernel.org/r/0480D692-D9B2-429A-9A88-9BBA1331AC3A@gmail.com\n\nLink: https://lkml.kernel.org/r/20220131162940.210846-2-david@redhat.com\nSigned-off-by: David Hildenbrand \u003cdavid@redhat.com\u003e\nReported-by: Liang Zhang \u003czhangliang5@huawei.com\u003e\nReported-by: Nadav Amit \u003cnadav.amit@gmail.com\u003e\nReviewed-by: Matthew Wilcox (Oracle) \u003cwilly@infradead.org\u003e\nAcked-by: Vlastimil Babka \u003cvbabka@suse.cz\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Shakeel Butt \u003cshakeelb@google.com\u003e\nCc: John Hubbard \u003cjhubbard@nvidia.com\u003e\nCc: Jason Gunthorpe \u003cjgg@nvidia.com\u003e\nCc: Mike Kravetz \u003cmike.kravetz@oracle.com\u003e\nCc: Mike Rapoport \u003crppt@linux.ibm.com\u003e\nCc: Yang Shi \u003cshy828301@gmail.com\u003e\nCc: Kirill A. Shutemov \u003ckirill.shutemov@linux.intel.com\u003e\nCc: Jann Horn \u003cjannh@google.com\u003e\nCc: Michal Hocko \u003cmhocko@kernel.org\u003e\nCc: Rik van Riel \u003criel@surriel.com\u003e\nCc: Roman Gushchin \u003croman.gushchin@linux.dev\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Peter Xu \u003cpeterx@redhat.com\u003e\nCc: Don Dutile \u003cddutile@redhat.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "562beb7235abfebdd8366e0664a5c3d1e597b990",
      "tree": "8061113cf314ff306dea6f895768a6c7f48deda8",
      "parents": [
        "9ae8f2b849f7991cb88ba20c39cb488d0a4f7916"
      ],
      "author": {
        "name": "Miaohe Lin",
        "email": "linmiaohe@huawei.com",
        "time": "Thu Mar 24 18:13:27 2022 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 19:06:50 2022 -0700"
      },
      "message": "mm/huge_memory: make is_transparent_hugepage() static\n\nIt\u0027s only used inside the huge_memory.c now. Don\u0027t export it and make\nit static. We can thus reduce the size of huge_memory.o a bit.\n\nWithout this patch:\n   text\t   data\t    bss\t    dec\t    hex\tfilename\n  32319\t   2965\t      4\t  35288\t   89d8\tmm/huge_memory.o\n\nWith this patch:\n   text\t   data\t    bss\t    dec\t    hex\tfilename\n  32042\t   2957\t      4\t  35003\t   88bb\tmm/huge_memory.o\n\nLink: https://lkml.kernel.org/r/20220302082145.12028-1-linmiaohe@huawei.com\nSigned-off-by: Miaohe Lin \u003clinmiaohe@huawei.com\u003e\nReviewed-by: Muchun Song \u003csongmuchun@bytedance.com\u003e\nReviewed-by: Yang Shi \u003cshy828301@gmail.com\u003e\nCc: Matthew Wilcox \u003cwilly@infradead.org\u003e\nCc: William Kucharski \u003cwilliam.kucharski@oracle.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Peter Xu \u003cpeterx@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9ae8f2b849f7991cb88ba20c39cb488d0a4f7916",
      "tree": "6cbbed05ce55230b10d632fefcdd17c945182772",
      "parents": [
        "c4b6cb884011a5063722c15d14789d1ac5aad28a"
      ],
      "author": {
        "name": "Mike Kravetz",
        "email": "mike.kravetz@oracle.com",
        "time": "Thu Mar 24 18:13:24 2022 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 19:06:50 2022 -0700"
      },
      "message": "userfaultfd/selftests: enable hugetlb remap and remove event testing\n\nWith MADV_DONTNEED support added to hugetlb mappings, mremap testing can\nalso be enabled for hugetlb.\n\nModify the tests to use madvise MADV_DONTNEED and MADV_REMOVE instead of\nfallocate hole puch for releasing hugetlb pages.\n\nLink: https://lkml.kernel.org/r/20220215002348.128823-4-mike.kravetz@oracle.com\nSigned-off-by: Mike Kravetz \u003cmike.kravetz@oracle.com\u003e\nReviewed-by: Axel Rasmussen \u003caxelrasmussen@google.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: David Hildenbrand \u003cdavid@redhat.com\u003e\nCc: Michal Hocko \u003cmhocko@suse.com\u003e\nCc: Mike Rapoport \u003crppt@kernel.org\u003e\nCc: Mina Almasry \u003calmasrymina@google.com\u003e\nCc: Naoya Horiguchi \u003cnaoya.horiguchi@linux.dev\u003e\nCc: Peter Xu \u003cpeterx@redhat.com\u003e\nCc: Shuah Khan \u003cskhan@linuxfoundation.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c4b6cb884011a5063722c15d14789d1ac5aad28a",
      "tree": "a943e67c525135495aa84e9e0d81919a547f1825",
      "parents": [
        "90e7e7f5ef3f712da992d505aee2d921797c3f96"
      ],
      "author": {
        "name": "Mike Kravetz",
        "email": "mike.kravetz@oracle.com",
        "time": "Thu Mar 24 18:13:21 2022 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 19:06:50 2022 -0700"
      },
      "message": "selftests/vm: add hugetlb madvise MADV_DONTNEED MADV_REMOVE test\n\nNow that MADV_DONTNEED support for hugetlb is enabled, add corresponding\ntests.  MADV_REMOVE has been enabled for some time, but no tests exist so\nadd them as well.\n\nLink: https://lkml.kernel.org/r/20220215002348.128823-3-mike.kravetz@oracle.com\nSigned-off-by: Mike Kravetz \u003cmike.kravetz@oracle.com\u003e\nReviewed-by: Shuah Khan \u003cskhan@linuxfoundation.org\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Axel Rasmussen \u003caxelrasmussen@google.com\u003e\nCc: David Hildenbrand \u003cdavid@redhat.com\u003e\nCc: Michal Hocko \u003cmhocko@suse.com\u003e\nCc: Mike Rapoport \u003crppt@kernel.org\u003e\nCc: Mina Almasry \u003calmasrymina@google.com\u003e\nCc: Naoya Horiguchi \u003cnaoya.horiguchi@linux.dev\u003e\nCc: Peter Xu \u003cpeterx@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "90e7e7f5ef3f712da992d505aee2d921797c3f96",
      "tree": "ccaaf5fb2900f53c134dfd89317e818a62d54b72",
      "parents": [
        "c32caa267b927b744610f4214bfde7ce7d55df1c"
      ],
      "author": {
        "name": "Mike Kravetz",
        "email": "mike.kravetz@oracle.com",
        "time": "Thu Mar 24 18:13:18 2022 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 19:06:50 2022 -0700"
      },
      "message": "mm: enable MADV_DONTNEED for hugetlb mappings\n\nPatch series \"Add hugetlb MADV_DONTNEED support\", v3.\n\nUserfaultfd selftests for hugetlb does not perform UFFD_EVENT_REMAP\ntesting.  However, mremap support was recently added in commit\n550a7d60bd5e (\"mm, hugepages: add mremap() support for hugepage backed\nvma\").  While attempting to enable mremap support in the test, it was\ndiscovered that the mremap test indirectly depends on MADV_DONTNEED.\n\nmadvise does not allow MADV_DONTNEED for hugetlb mappings.  However, that\nis primarily due to the check in can_madv_lru_vma().  By simply removing\nthe check and adding huge page alignment, MADV_DONTNEED can be made to\nwork for hugetlb mappings.\n\nDo note that there is no compelling use case for adding this support.\nThis was discussed in the RFC [1].  However, adding support makes sense as\nit is fairly trivial and brings hugetlb functionality more in line with\n\u0027normal\u0027 memory.\n\nAfter enabling support, add selftest for MADV_DONTNEED as well as\nMADV_REMOVE.  Then update userfaultfd selftest.\n\nIf new functionality is accepted, then madvise man page will be updated to\nindicate hugetlb is supported.  It will also be updated to clarify what\nhappens to the passed length argument.\n\nThis patch (of 3):\n\nMADV_DONTNEED is currently disabled for hugetlb mappings.  This certainly\nmakes sense in shared file mappings as the pagecache maintains a reference\nto the page and it will never be freed.  However, it could be useful to\nunmap and free pages in private mappings.  In addition, userfaultfd minor\nfault users may be able to simplify code by using MADV_DONTNEED.\n\nThe primary thing preventing MADV_DONTNEED from working on hugetlb\nmappings is a check in can_madv_lru_vma().  To allow support for hugetlb\nmappings create and use a new routine madvise_dontneed_free_valid_vma()\nthat allows hugetlb mappings in this specific case.\n\nFor normal mappings, madvise requires the start address be PAGE aligned\nand rounds up length to the next multiple of PAGE_SIZE.  Do similarly for\nhugetlb mappings: require start address be huge page size aligned and\nround up length to the next multiple of huge page size.  Use the new\nmadvise_dontneed_free_valid_vma routine to check alignment and round up\nlength/end.  zap_page_range requires this alignment for hugetlb vmas\notherwise we will hit BUGs.\n\nLink: https://lkml.kernel.org/r/20220215002348.128823-1-mike.kravetz@oracle.com\nLink: https://lkml.kernel.org/r/20220215002348.128823-2-mike.kravetz@oracle.com\nSigned-off-by: Mike Kravetz \u003cmike.kravetz@oracle.com\u003e\nCc: Naoya Horiguchi \u003cnaoya.horiguchi@linux.dev\u003e\nCc: David Hildenbrand \u003cdavid@redhat.com\u003e\nCc: Axel Rasmussen \u003caxelrasmussen@google.com\u003e\nCc: Mina Almasry \u003calmasrymina@google.com\u003e\nCc: Michal Hocko \u003cmhocko@suse.com\u003e\nCc: Peter Xu \u003cpeterx@redhat.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Shuah Khan \u003cskhan@linuxfoundation.org\u003e\nCc: Mike Rapoport \u003crppt@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c32caa267b927b744610f4214bfde7ce7d55df1c",
      "tree": "4f4148b432a813efff987a18e3b4bbdbb66c844e",
      "parents": [
        "80207910cd71b4e0e87140d165d82b5d3ff69e53"
      ],
      "author": {
        "name": "Andrey Konovalov",
        "email": "andreyknvl@google.com",
        "time": "Thu Mar 24 18:13:15 2022 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 19:06:50 2022 -0700"
      },
      "message": "kasan: disable LOCKDEP when printing reports\n\nIf LOCKDEP detects a bug while KASAN is printing a report and if\npanic_on_warn is set, KASAN will not be able to finish.  Disable LOCKDEP\nwhile KASAN is printing a report.\n\nSee https://bugzilla.kernel.org/show_bug.cgi?id\u003d202115 for an example\nof the issue.\n\nLink: https://lkml.kernel.org/r/c48a2a3288200b07e1788b77365c2f02784cfeb4.1646237226.git.andreyknvl@google.com\nSigned-off-by: Andrey Konovalov \u003candreyknvl@google.com\u003e\nCc: Alexander Potapenko \u003cglider@google.com\u003e\nCc: Andrey Ryabinin \u003cryabinin.a.a@gmail.com\u003e\nCc: Dmitry Vyukov \u003cdvyukov@google.com\u003e\nCc: Marco Elver \u003celver@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "80207910cd71b4e0e87140d165d82b5d3ff69e53",
      "tree": "44a7d6cd54eb6bdf1d3bfe9bc87a30c013e0814f",
      "parents": [
        "865bfa28eda6893b391cd0c00b99a57cd617d1d6"
      ],
      "author": {
        "name": "Andrey Konovalov",
        "email": "andreyknvl@google.com",
        "time": "Thu Mar 24 18:13:12 2022 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 19:06:50 2022 -0700"
      },
      "message": "kasan: move and hide kasan_save_enable/restore_multi_shot\n\n - Move kasan_save_enable/restore_multi_shot() declarations to\n   mm/kasan/kasan.h, as there is no need for them to be visible outside\n   of KASAN implementation.\n\n - Only define and export these functions when KASAN tests are enabled.\n\n - Move their definitions closer to other test-related code in report.c.\n\nLink: https://lkml.kernel.org/r/6ba637333b78447f027d775f2d55ab1a40f63c99.1646237226.git.andreyknvl@google.com\nSigned-off-by: Andrey Konovalov \u003candreyknvl@google.com\u003e\nCc: Alexander Potapenko \u003cglider@google.com\u003e\nCc: Andrey Ryabinin \u003cryabinin.a.a@gmail.com\u003e\nCc: Dmitry Vyukov \u003cdvyukov@google.com\u003e\nCc: Marco Elver \u003celver@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "865bfa28eda6893b391cd0c00b99a57cd617d1d6",
      "tree": "35c168995519a55a7fadefe02413af0086bb8906",
      "parents": [
        "c068664c97c7cffa9df706e247046aa5c796efc9"
      ],
      "author": {
        "name": "Andrey Konovalov",
        "email": "andreyknvl@google.com",
        "time": "Thu Mar 24 18:13:09 2022 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 19:06:50 2022 -0700"
      },
      "message": "kasan: reorder reporting functions\n\nMove print_error_description()\u0027s, report_suppressed()\u0027s, and\nreport_enabled()\u0027s definitions to improve the logical order of function\ndefinitions in report.c.\n\nNo functional changes.\n\nLink: https://lkml.kernel.org/r/82aa926c411e00e76e97e645a551ede9ed0c5e79.1646237226.git.andreyknvl@google.com\nSigned-off-by: Andrey Konovalov \u003candreyknvl@google.com\u003e\nCc: Alexander Potapenko \u003cglider@google.com\u003e\nCc: Andrey Ryabinin \u003cryabinin.a.a@gmail.com\u003e\nCc: Dmitry Vyukov \u003cdvyukov@google.com\u003e\nCc: Marco Elver \u003celver@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c068664c97c7cffa9df706e247046aa5c796efc9",
      "tree": "4f7b604b73d65f2bf8abde2eb8fac18cd2ff93d7",
      "parents": [
        "795b760fe741c0b82508947e7b76803a2cdabd13"
      ],
      "author": {
        "name": "Andrey Konovalov",
        "email": "andreyknvl@google.com",
        "time": "Thu Mar 24 18:13:06 2022 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 19:06:50 2022 -0700"
      },
      "message": "kasan: respect KASAN_BIT_REPORTED in all reporting routines\n\nCurrently, only kasan_report() checks the KASAN_BIT_REPORTED and\nKASAN_BIT_MULTI_SHOT flags.\n\nMake other reporting routines check these flags as well.\n\nAlso add explanatory comments.\n\nNote that the current-\u003ekasan_depth check is split out into\nreport_suppressed() and only called for kasan_report().\n\nLink: https://lkml.kernel.org/r/715e346b10b398e29ba1b425299dcd79e29d58ce.1646237226.git.andreyknvl@google.com\nSigned-off-by: Andrey Konovalov \u003candreyknvl@google.com\u003e\nCc: Alexander Potapenko \u003cglider@google.com\u003e\nCc: Andrey Ryabinin \u003cryabinin.a.a@gmail.com\u003e\nCc: Dmitry Vyukov \u003cdvyukov@google.com\u003e\nCc: Marco Elver \u003celver@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "795b760fe741c0b82508947e7b76803a2cdabd13",
      "tree": "b1d3448e517d1f610ddad5ae7ea7bd4946d095d7",
      "parents": [
        "c965cdd67540ae8a6ac3da05cce4b7da3e0be94c"
      ],
      "author": {
        "name": "Andrey Konovalov",
        "email": "andreyknvl@google.com",
        "time": "Thu Mar 24 18:13:03 2022 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 19:06:50 2022 -0700"
      },
      "message": "kasan: add comment about UACCESS regions to kasan_report\n\nAdd a comment explaining why kasan_report() is the only reporting function\nthat uses user_access_save/restore().\n\nLink: https://lkml.kernel.org/r/1201ca3c2be42c7bd077c53d2e46f4a51dd1476a.1646237226.git.andreyknvl@google.com\nSigned-off-by: Andrey Konovalov \u003candreyknvl@google.com\u003e\nCc: Alexander Potapenko \u003cglider@google.com\u003e\nCc: Andrey Ryabinin \u003cryabinin.a.a@gmail.com\u003e\nCc: Dmitry Vyukov \u003cdvyukov@google.com\u003e\nCc: Marco Elver \u003celver@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c965cdd67540ae8a6ac3da05cce4b7da3e0be94c",
      "tree": "58563c5d3368426c74b73d6b8377694451fe5a5d",
      "parents": [
        "bb2f967ce2130b57b49d21d4cbcd06e67f14a562"
      ],
      "author": {
        "name": "Andrey Konovalov",
        "email": "andreyknvl@google.com",
        "time": "Thu Mar 24 18:13:00 2022 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 19:06:50 2022 -0700"
      },
      "message": "kasan: rename kasan_access_info to kasan_report_info\n\nRename kasan_access_info to kasan_report_info, as the latter name better\nreflects the struct\u0027s purpose.\n\nLink: https://lkml.kernel.org/r/158a4219a5d356901d017352558c989533a0782c.1646237226.git.andreyknvl@google.com\nSigned-off-by: Andrey Konovalov \u003candreyknvl@google.com\u003e\nCc: Alexander Potapenko \u003cglider@google.com\u003e\nCc: Andrey Ryabinin \u003cryabinin.a.a@gmail.com\u003e\nCc: Dmitry Vyukov \u003cdvyukov@google.com\u003e\nCc: Marco Elver \u003celver@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bb2f967ce2130b57b49d21d4cbcd06e67f14a562",
      "tree": "8b64e55a35707e6c3fcfffec92d2fe1a07e9965f",
      "parents": [
        "31c65110b90c76153b41b9b7e22c361ff2fb4525"
      ],
      "author": {
        "name": "Andrey Konovalov",
        "email": "andreyknvl@google.com",
        "time": "Thu Mar 24 18:12:57 2022 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 19:06:49 2022 -0700"
      },
      "message": "kasan: move and simplify kasan_report_async\n\nPlace kasan_report_async() next to the other main reporting routines.\nAlso simplify printed information.\n\nLink: https://lkml.kernel.org/r/52d942ef3ffd29bdfa225bbe8e327bc5bda7ab09.1646237226.git.andreyknvl@google.com\nSigned-off-by: Andrey Konovalov \u003candreyknvl@google.com\u003e\nCc: Alexander Potapenko \u003cglider@google.com\u003e\nCc: Andrey Ryabinin \u003cryabinin.a.a@gmail.com\u003e\nCc: Dmitry Vyukov \u003cdvyukov@google.com\u003e\nCc: Marco Elver \u003celver@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "31c65110b90c76153b41b9b7e22c361ff2fb4525",
      "tree": "2e2ddbd6038acaf135cfdc4a23b7f38d03f7929a",
      "parents": [
        "be8631a17620ccf3d4fca74a6d6a218737e5b9cc"
      ],
      "author": {
        "name": "Andrey Konovalov",
        "email": "andreyknvl@google.com",
        "time": "Thu Mar 24 18:12:55 2022 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 19:06:49 2022 -0700"
      },
      "message": "kasan: call print_report from kasan_report_invalid_free\n\nCall print_report() in kasan_report_invalid_free() instead of calling\nprinting functions directly.  Compared to the existing implementation of\nkasan_report_invalid_free(), print_report() makes sure that the buggy\naddress has metadata before printing it.\n\nThe change requires adding a report type field into kasan_access_info and\nusing it accordingly.\n\nkasan_report_async() is left as is, as using print_report() will only\ncomplicate the code.\n\nLink: https://lkml.kernel.org/r/9ea6f0604c5d2e1fb28d93dc6c44232c1f8017fe.1646237226.git.andreyknvl@google.com\nSigned-off-by: Andrey Konovalov \u003candreyknvl@google.com\u003e\nCc: Alexander Potapenko \u003cglider@google.com\u003e\nCc: Andrey Ryabinin \u003cryabinin.a.a@gmail.com\u003e\nCc: Dmitry Vyukov \u003cdvyukov@google.com\u003e\nCc: Marco Elver \u003celver@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "be8631a17620ccf3d4fca74a6d6a218737e5b9cc",
      "tree": "49556f2a6b8c815ea3adbfebc9893b1bce5971d5",
      "parents": [
        "b3bb1d700e51128e9ff818f76b930403b1ed2c7d"
      ],
      "author": {
        "name": "Andrey Konovalov",
        "email": "andreyknvl@google.com",
        "time": "Thu Mar 24 18:12:52 2022 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 19:06:49 2022 -0700"
      },
      "message": "kasan: merge __kasan_report into kasan_report\n\nMerge __kasan_report() into kasan_report().  The code is simple enough to\nbe readable without the __kasan_report() helper.\n\nLink: https://lkml.kernel.org/r/c8a125497ef82f7042b3795918dffb81a85a878e.1646237226.git.andreyknvl@google.com\nSigned-off-by: Andrey Konovalov \u003candreyknvl@google.com\u003e\nCc: Alexander Potapenko \u003cglider@google.com\u003e\nCc: Andrey Ryabinin \u003cryabinin.a.a@gmail.com\u003e\nCc: Dmitry Vyukov \u003cdvyukov@google.com\u003e\nCc: Marco Elver \u003celver@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b3bb1d700e51128e9ff818f76b930403b1ed2c7d",
      "tree": "4e97c3cbae0b4020d1d1f09111944a881ca2bb1a",
      "parents": [
        "b91328002d266da3f53703f753b3a2af0dc9b9c1"
      ],
      "author": {
        "name": "Andrey Konovalov",
        "email": "andreyknvl@google.com",
        "time": "Thu Mar 24 18:12:49 2022 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 19:06:49 2022 -0700"
      },
      "message": "kasan: restructure kasan_report\n\nRestructure kasan_report() to make reviewing the subsequent patches\neasier.\n\nLink: https://lkml.kernel.org/r/ca28042889858b8cc4724d3d4378387f90d7a59d.1646237226.git.andreyknvl@google.com\nSigned-off-by: Andrey Konovalov \u003candreyknvl@google.com\u003e\nCc: Alexander Potapenko \u003cglider@google.com\u003e\nCc: Andrey Ryabinin \u003cryabinin.a.a@gmail.com\u003e\nCc: Dmitry Vyukov \u003cdvyukov@google.com\u003e\nCc: Marco Elver \u003celver@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b91328002d266da3f53703f753b3a2af0dc9b9c1",
      "tree": "faccbd63f5724eddd83c4054c9c4973a5de2aba6",
      "parents": [
        "9d7b7dd946924de43021f57a8bee122ff0744d93"
      ],
      "author": {
        "name": "Andrey Konovalov",
        "email": "andreyknvl@google.com",
        "time": "Thu Mar 24 18:12:46 2022 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 19:06:49 2022 -0700"
      },
      "message": "kasan: simplify kasan_find_first_bad_addr call sites\n\nMove the addr_has_metadata() check into kasan_find_first_bad_addr().\n\nLink: https://lkml.kernel.org/r/a49576f7a23283d786ba61579cb0c5057e8f0b9b.1646237226.git.andreyknvl@google.com\nSigned-off-by: Andrey Konovalov \u003candreyknvl@google.com\u003e\nCc: Alexander Potapenko \u003cglider@google.com\u003e\nCc: Andrey Ryabinin \u003cryabinin.a.a@gmail.com\u003e\nCc: Dmitry Vyukov \u003cdvyukov@google.com\u003e\nCc: Marco Elver \u003celver@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9d7b7dd946924de43021f57a8bee122ff0744d93",
      "tree": "f39a9c9427cc314fc7edf03fd492397bd16d5259",
      "parents": [
        "0a6e8a07dec75f7b013b70c2df3e69c64edf312f"
      ],
      "author": {
        "name": "Andrey Konovalov",
        "email": "andreyknvl@google.com",
        "time": "Thu Mar 24 18:12:43 2022 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 19:06:49 2022 -0700"
      },
      "message": "kasan: split out print_report from __kasan_report\n\nSplit out the part of __kasan_report() that prints things into\nprint_report().  One of the subsequent patches makes another error handler\nuse print_report() as well.\n\nIncludes lower-level changes:\n\n - Allow addr_has_metadata() accepting a tagged address.\n\n - Drop the const qualifier from the fields of kasan_access_info to\n   avoid excessive type casts.\n\n - Change the type of the address argument of __kasan_report() and\n   end_report() to void * to reduce the number of type casts.\n\nLink: https://lkml.kernel.org/r/9be3ed99dd24b9c4e1c4a848b69a0c6ecefd845e.1646237226.git.andreyknvl@google.com\nSigned-off-by: Andrey Konovalov \u003candreyknvl@google.com\u003e\nCc: Alexander Potapenko \u003cglider@google.com\u003e\nCc: Andrey Ryabinin \u003cryabinin.a.a@gmail.com\u003e\nCc: Dmitry Vyukov \u003cdvyukov@google.com\u003e\nCc: Marco Elver \u003celver@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0a6e8a07dec75f7b013b70c2df3e69c64edf312f",
      "tree": "5d4cb40ee45903a6f13963bb54bda04fdb1d46c0",
      "parents": [
        "a260d2814e6d294e878840d9c6fdeca516205096"
      ],
      "author": {
        "name": "Andrey Konovalov",
        "email": "andreyknvl@google.com",
        "time": "Thu Mar 24 18:12:40 2022 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 19:06:49 2022 -0700"
      },
      "message": "kasan: move disable_trace_on_warning to start_report\n\nMove the disable_trace_on_warning() call, which enables the\n/proc/sys/kernel/traceoff_on_warning interface for KASAN bugs, to\nstart_report(), so that it functions for all types of KASAN reports.\n\nLink: https://lkml.kernel.org/r/7c066c5de26234ad2cebdd931adfe437f8a95d58.1646237226.git.andreyknvl@google.com\nSigned-off-by: Andrey Konovalov \u003candreyknvl@google.com\u003e\nReviewed-by: Alexander Potapenko \u003cglider@google.com\u003e\nCc: Andrey Ryabinin \u003cryabinin.a.a@gmail.com\u003e\nCc: Dmitry Vyukov \u003cdvyukov@google.com\u003e\nCc: Marco Elver \u003celver@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a260d2814e6d294e878840d9c6fdeca516205096",
      "tree": "da9fa839aa6aa50ace59a6593499d26f2a702db9",
      "parents": [
        "49d9977ac909a98a9bbd689a64b1d872ac10215b"
      ],
      "author": {
        "name": "Andrey Konovalov",
        "email": "andreyknvl@google.com",
        "time": "Thu Mar 24 18:12:37 2022 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 19:06:49 2022 -0700"
      },
      "message": "kasan: move update_kunit_status to start_report\n\nInstead of duplicating calls to update_kunit_status() in every error\nreport routine, call it once in start_report().  Pass the sync flag as an\nadditional argument to start_report().\n\nLink: https://lkml.kernel.org/r/cae5c845a0b6f3c867014e53737cdac56b11edc7.1646237226.git.andreyknvl@google.com\nSigned-off-by: Andrey Konovalov \u003candreyknvl@google.com\u003e\nCc: Alexander Potapenko \u003cglider@google.com\u003e\nCc: Andrey Ryabinin \u003cryabinin.a.a@gmail.com\u003e\nCc: Dmitry Vyukov \u003cdvyukov@google.com\u003e\nCc: Marco Elver \u003celver@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "49d9977ac909a98a9bbd689a64b1d872ac10215b",
      "tree": "16a6e9d21f0ed3ddb47783839fae5bbabedddd83",
      "parents": [
        "3784c299eafc6dd1ca5a23f4020f18ca565e07af"
      ],
      "author": {
        "name": "Andrey Konovalov",
        "email": "andreyknvl@google.com",
        "time": "Thu Mar 24 18:12:34 2022 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 19:06:49 2022 -0700"
      },
      "message": "kasan: check CONFIG_KASAN_KUNIT_TEST instead of CONFIG_KUNIT\n\nCheck the more specific CONFIG_KASAN_KUNIT_TEST config option when\ndefining things related to KUnit-compatible KASAN tests instead of\nCONFIG_KUNIT.\n\nAlso put the kunit_kasan_status definition next to the definitons of other\nKASAN-related structs.\n\nLink: https://lkml.kernel.org/r/223592d38d2a601a160a3b2b3d5a9f9090350e62.1646237226.git.andreyknvl@google.com\nSigned-off-by: Andrey Konovalov \u003candreyknvl@google.com\u003e\nReviewed-by: Alexander Potapenko \u003cglider@google.com\u003e\nCc: Andrey Ryabinin \u003cryabinin.a.a@gmail.com\u003e\nCc: Dmitry Vyukov \u003cdvyukov@google.com\u003e\nCc: Marco Elver \u003celver@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3784c299eafc6dd1ca5a23f4020f18ca565e07af",
      "tree": "b73ad0674fbf7d2e19214b31f1bdfe493a31415b",
      "parents": [
        "476b1dc2bc34febc620b8a6cd459f0b3d9950c34"
      ],
      "author": {
        "name": "Andrey Konovalov",
        "email": "andreyknvl@google.com",
        "time": "Thu Mar 24 18:12:31 2022 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 19:06:49 2022 -0700"
      },
      "message": "kasan: simplify kasan_update_kunit_status() and call sites\n\n - Rename kasan_update_kunit_status() to update_kunit_status() (the\n   function is static).\n\n - Move the IS_ENABLED(CONFIG_KUNIT) to the function\u0027s definition\n   instead of duplicating it at call sites.\n\n - Obtain and check current-\u003ekunit_test within the function.\n\nLink: https://lkml.kernel.org/r/dac26d811ae31856c3d7666de0b108a3735d962d.1646237226.git.andreyknvl@google.com\nSigned-off-by: Andrey Konovalov \u003candreyknvl@google.com\u003e\nReviewed-by: Alexander Potapenko \u003cglider@google.com\u003e\nCc: Andrey Ryabinin \u003cryabinin.a.a@gmail.com\u003e\nCc: Dmitry Vyukov \u003cdvyukov@google.com\u003e\nCc: Marco Elver \u003celver@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "476b1dc2bc34febc620b8a6cd459f0b3d9950c34",
      "tree": "1ab76788c2966ac14d1683b564207f75e76dc055",
      "parents": [
        "1e0f611fab9c5743719a95e09a2846e4052fd644"
      ],
      "author": {
        "name": "Andrey Konovalov",
        "email": "andreyknvl@google.com",
        "time": "Thu Mar 24 18:12:28 2022 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 19:06:49 2022 -0700"
      },
      "message": "kasan: simplify async check in end_report()\n\nCurrently, end_report() does not call trace_error_report_end() for bugs\ndetected in either async or asymm mode (when kasan_async_fault_possible()\nreturns true), as the address of the bad access might be unknown.\n\nHowever, for asymm mode, the address is known for faults triggered by read\noperations.\n\nInstead of using kasan_async_fault_possible(), simply check that the addr\nis not NULL when calling trace_error_report_end().\n\nLink: https://lkml.kernel.org/r/1c8ce43f97300300e62c941181afa2eb738965c5.1646237226.git.andreyknvl@google.com\nSigned-off-by: Andrey Konovalov \u003candreyknvl@google.com\u003e\nCc: Alexander Potapenko \u003cglider@google.com\u003e\nCc: Andrey Ryabinin \u003cryabinin.a.a@gmail.com\u003e\nCc: Dmitry Vyukov \u003cdvyukov@google.com\u003e\nCc: Marco Elver \u003celver@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1e0f611fab9c5743719a95e09a2846e4052fd644",
      "tree": "f1626a4f071dd091848ff47e35bce69849a0f4b2",
      "parents": [
        "16347c31890375d2a7eb9efb01d2baac28742de3"
      ],
      "author": {
        "name": "Andrey Konovalov",
        "email": "andreyknvl@google.com",
        "time": "Thu Mar 24 18:12:25 2022 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 19:06:49 2022 -0700"
      },
      "message": "kasan: print basic stack frame info for SW_TAGS\n\nSoftware Tag-Based mode tags stack allocations when CONFIG_KASAN_STACK\nis enabled. Print task name and id in reports for stack-related bugs.\n\n[andreyknvl@google.com: include linux/sched/task_stack.h]\n  Link: https://lkml.kernel.org/r/d7598f11a34ed96e508f7640fa038662ed2305ec.1647099922.git.andreyknvl@google.com\n\nLink: https://lkml.kernel.org/r/029aaa87ceadde0702f3312a34697c9139c9fb53.1646237226.git.andreyknvl@google.com\nSigned-off-by: Andrey Konovalov \u003candreyknvl@google.com\u003e\nReviewed-by: Alexander Potapenko \u003cglider@google.com\u003e\nCc: Andrey Ryabinin \u003cryabinin.a.a@gmail.com\u003e\nCc: Dmitry Vyukov \u003cdvyukov@google.com\u003e\nCc: Marco Elver \u003celver@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "16347c31890375d2a7eb9efb01d2baac28742de3",
      "tree": "bb0192ce321ec488afff114985ddcb8c9ed09abc",
      "parents": [
        "0f9b35f38318d21470975bec61e0e93b4aab5c3c"
      ],
      "author": {
        "name": "Andrey Konovalov",
        "email": "andreyknvl@google.com",
        "time": "Thu Mar 24 18:12:23 2022 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 19:06:49 2022 -0700"
      },
      "message": "kasan: improve stack frame info in reports\n\n - Print at least task name and id for reports affecting allocas\n   (get_address_stack_frame_info() does not support them).\n\n - Capitalize first letter of each sentence.\n\nLink: https://lkml.kernel.org/r/aa613f097c12f7b75efb17f2618ae00480fb4bc3.1646237226.git.andreyknvl@google.com\nSigned-off-by: Andrey Konovalov \u003candreyknvl@google.com\u003e\nReviewed-by: Alexander Potapenko \u003cglider@google.com\u003e\nCc: Andrey Ryabinin \u003cryabinin.a.a@gmail.com\u003e\nCc: Dmitry Vyukov \u003cdvyukov@google.com\u003e\nCc: Marco Elver \u003celver@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0f9b35f38318d21470975bec61e0e93b4aab5c3c",
      "tree": "4012f7de5bc048d49d41854698803144f8d9fa02",
      "parents": [
        "038fd2b4cb42c64afa3cacad53f9e0f514b8d02a"
      ],
      "author": {
        "name": "Andrey Konovalov",
        "email": "andreyknvl@google.com",
        "time": "Thu Mar 24 18:12:20 2022 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 19:06:49 2022 -0700"
      },
      "message": "kasan: rearrange stack frame info in reports\n\n - Move printing stack frame info before printing page info.\n\n - Add object_is_on_stack() check to print_address_description() and add\n   a corresponding WARNING to kasan_print_address_stack_frame(). This\n   looks more in line with the rest of the checks in this function and\n   also allows to avoid complicating code logic wrt line breaks.\n\n - Clean up comments related to get_address_stack_frame_info().\n\nLink: https://lkml.kernel.org/r/1ee113a4c111df97d168c820b527cda77a3cac40.1646237226.git.andreyknvl@google.com\nSigned-off-by: Andrey Konovalov \u003candreyknvl@google.com\u003e\nReviewed-by: Alexander Potapenko \u003cglider@google.com\u003e\nCc: Andrey Ryabinin \u003cryabinin.a.a@gmail.com\u003e\nCc: Dmitry Vyukov \u003cdvyukov@google.com\u003e\nCc: Marco Elver \u003celver@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "038fd2b4cb42c64afa3cacad53f9e0f514b8d02a",
      "tree": "d763749f141dbea79af1f2725e96ce663781e5a5",
      "parents": [
        "7131c883f995df9288f70879e501016119d4d971"
      ],
      "author": {
        "name": "Andrey Konovalov",
        "email": "andreyknvl@google.com",
        "time": "Thu Mar 24 18:12:17 2022 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 19:06:49 2022 -0700"
      },
      "message": "kasan: more line breaks in reports\n\nAdd a line break after each part that describes the buggy address.\nImproves readability of reports.\n\nLink: https://lkml.kernel.org/r/8682c4558e533cd0f99bdb964ce2fe741f2a9212.1646237226.git.andreyknvl@google.com\nSigned-off-by: Andrey Konovalov \u003candreyknvl@google.com\u003e\nReviewed-by: Alexander Potapenko \u003cglider@google.com\u003e\nCc: Andrey Ryabinin \u003cryabinin.a.a@gmail.com\u003e\nCc: Dmitry Vyukov \u003cdvyukov@google.com\u003e\nCc: Marco Elver \u003celver@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7131c883f995df9288f70879e501016119d4d971",
      "tree": "af9b4bcb6a79d008cce2669bad1d351e4def8848",
      "parents": [
        "c056a364e9546bd513d1f5205f0ee316d8acb910"
      ],
      "author": {
        "name": "Andrey Konovalov",
        "email": "andreyknvl@google.com",
        "time": "Thu Mar 24 18:12:14 2022 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 19:06:48 2022 -0700"
      },
      "message": "kasan: drop addr check from describe_object_addr\n\nPatch series \"kasan: report clean-ups and improvements\".\n\nA number of clean-up patches for KASAN reporting code.  Most are\nnon-functional and only improve readability.\n\nThis patch (of 22):\n\ndescribe_object_addr() used to be called with NULL addr in the early days\nof KASAN.  This no longer happens, so drop the check.\n\nLink: https://lkml.kernel.org/r/cover.1646237226.git.andreyknvl@google.com\nLink: https://lkml.kernel.org/r/761f8e5a6ee040d665934d916a90afe9f322f745.1646237226.git.andreyknvl@google.com\nSigned-off-by: Andrey Konovalov \u003candreyknvl@google.com\u003e\nReviewed-by: Alexander Potapenko \u003cglider@google.com\u003e\nCc: Marco Elver \u003celver@google.com\u003e\nCc: Dmitry Vyukov \u003cdvyukov@google.com\u003e\nCc: Andrey Ryabinin \u003cryabinin.a.a@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c056a364e9546bd513d1f5205f0ee316d8acb910",
      "tree": "c71cacc1658d448709fb86781ec47be5b878d5ca",
      "parents": [
        "2dfd1bd992322f7ab8db82d7862cb758c3be63fa"
      ],
      "author": {
        "name": "Andrey Konovalov",
        "email": "andreyknvl@google.com",
        "time": "Thu Mar 24 18:12:11 2022 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 19:06:48 2022 -0700"
      },
      "message": "kasan: print virtual mapping info in reports\n\nPrint virtual mapping range and its creator in reports affecting virtual\nmappings.\n\nAlso get physical page pointer for such mappings, so page information gets\nprinted as well.\n\nLink: https://lkml.kernel.org/r/6ebb11210ae21253198e264d4bb0752c1fad67d7.1645548178.git.andreyknvl@google.com\nSigned-off-by: Andrey Konovalov \u003candreyknvl@google.com\u003e\nCc: Mark Rutland \u003cmark.rutland@arm.com\u003e\nCc: Marco Elver \u003celver@google.com\u003e\nCc: Alexander Potapenko \u003cglider@google.com\u003e\nCc: Dmitriy Vyukov \u003cdvyukov@google.com\u003e\nCc: Andrey Ryabinin \u003cryabinin.a.a@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2dfd1bd992322f7ab8db82d7862cb758c3be63fa",
      "tree": "5eff22f000ab8bc289d1f96e4bf3a729498d1ec7",
      "parents": [
        "09eb911d934561238d45fe298bf5d920759fa572"
      ],
      "author": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Thu Mar 24 18:12:08 2022 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 19:06:48 2022 -0700"
      },
      "message": "kasan: update function name in comments\n\nThe function kasan_global_oob was renamed to kasan_global_oob_right, but\nthe comments referring to it were not updated.  Do so.\n\nLink: https://linux-review.googlesource.com/id/I20faa90126937bbee77d9d44709556c3dd4b40be\nLink: https://lkml.kernel.org/r/20220219012433.890941-1-pcc@google.com\nSigned-off-by: Peter Collingbourne \u003cpcc@google.com\u003e\nReviewed-by: Miaohe Lin \u003clinmiaohe@huawei.com\u003e\nReviewed-by: Marco Elver \u003celver@google.com\u003e\nReviewed-by: Andrey Konovalov \u003candreyknvl@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "09eb911d934561238d45fe298bf5d920759fa572",
      "tree": "0c347ec1fe18ee9ab9eaa5ffe32717526a84e05e",
      "parents": [
        "ed6d74446cbfb88c747d4b32477a9d46132694db"
      ],
      "author": {
        "name": "tangmeng",
        "email": "tangmeng@uniontech.com",
        "time": "Thu Mar 24 18:12:05 2022 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 19:06:48 2022 -0700"
      },
      "message": "mm/kasan: remove unnecessary CONFIG_KASAN option\n\nIn mm/Makefile has:\n\n  obj-$(CONFIG_KASAN)     +\u003d kasan/\n\nSo that we don\u0027t need \u0027obj-$(CONFIG_KASAN) :\u003d\u0027 in mm/kasan/Makefile,\ndelete it from mm/kasan/Makefile.\n\nLink: https://lkml.kernel.org/r/20220221065421.20689-1-tangmeng@uniontech.com\nSigned-off-by: tangmeng \u003ctangmeng@uniontech.com\u003e\nReviewed-by: Marco Elver \u003celver@google.com\u003e\nCc: Andrey Ryabinin \u003cryabinin.a.a@gmail.com\u003e\nCc: Alexander Potapenko \u003cglider@google.com\u003e\nCc: Andrey Konovalov \u003candreyknvl@gmail.com\u003e\nCc: Dmitriy Vyukov \u003cdvyukov@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ed6d74446cbfb88c747d4b32477a9d46132694db",
      "tree": "d8905ad03cf22fd131d8ef78913bcb29ba28e6dc",
      "parents": [
        "1a2473f0cbc059f345952654e393df317f7e270c"
      ],
      "author": {
        "name": "Andrey Konovalov",
        "email": "andreyknvl@google.com",
        "time": "Thu Mar 24 18:12:02 2022 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 19:06:48 2022 -0700"
      },
      "message": "kasan: test: support async (again) and asymm modes for HW_TAGS\n\nAsync mode support has already been implemented in commit e80a76aa1a91\n(\"kasan, arm64: tests supports for HW_TAGS async mode\") but then got\naccidentally broken in commit 99734b535d9b (\"kasan: detect false-positives\nin tests\").\n\nRestore the changes removed by the latter patch and adapt them for asymm\nmode: add a sync_fault flag to kunit_kasan_expectation that only get set\nif the MTE fault was synchronous, and reenable MTE on such faults in\ntests.\n\nAlso rename kunit_kasan_expectation to kunit_kasan_status and move its\ndefinition to mm/kasan/kasan.h from include/linux/kasan.h, as this\nstructure is only internally used by KASAN.  Also put the structure\ndefinition under IS_ENABLED(CONFIG_KUNIT).\n\nLink: https://lkml.kernel.org/r/133970562ccacc93ba19d754012c562351d4a8c8.1645033139.git.andreyknvl@google.com\nSigned-off-by: Andrey Konovalov \u003candreyknvl@google.com\u003e\nCc: Marco Elver \u003celver@google.com\u003e\nCc: Alexander Potapenko \u003cglider@google.com\u003e\nCc: Dmitry Vyukov \u003cdvyukov@google.com\u003e\nCc: Andrey Ryabinin \u003cryabinin.a.a@gmail.com\u003e\nCc: Vincenzo Frascino \u003cvincenzo.frascino@arm.com\u003e\nCc: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1a2473f0cbc059f345952654e393df317f7e270c",
      "tree": "a0a547cc61caaa7ebb6b1a0ae66e72439ab12cff",
      "parents": [
        "8479d7b5be2fecaed2b78331c3bf443cc19dfcf5"
      ],
      "author": {
        "name": "Andrey Konovalov",
        "email": "andreyknvl@google.com",
        "time": "Thu Mar 24 18:11:59 2022 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 19:06:48 2022 -0700"
      },
      "message": "kasan: improve vmalloc tests\n\nUpdate the existing vmalloc_oob() test to account for the specifics of the\ntag-based modes.  Also add a few new checks and comments.\n\nAdd new vmalloc-related tests:\n\n - vmalloc_helpers_tags() to check that exported vmalloc helpers can\n   handle tagged pointers.\n\n - vmap_tags() to check that SW_TAGS mode properly tags vmap() mappings.\n\n - vm_map_ram_tags() to check that SW_TAGS mode properly tags\n   vm_map_ram() mappings.\n\n - vmalloc_percpu() to check that SW_TAGS mode tags regions allocated\n   for __alloc_percpu(). The tagging of per-cpu mappings is best-effort;\n   proper tagging is tracked in [1].\n\n[1] https://bugzilla.kernel.org/show_bug.cgi?id\u003d215019\n\n[sfr@canb.auug.org.au: similar to \"kasan: test: fix compatibility with FORTIFY_SOURCE\"]\n  Link: https://lkml.kernel.org/r/20220128144801.73f5ced0@canb.auug.org.au\n  Link: https://lkml.kernel.org/r/865c91ba49b90623ab50c7526b79ccb955f544f0.1644950160.git.andreyknvl@google.com\n[andreyknvl@google.com: set_memory_rw/ro() are not exported to modules]\n  Link: https://lkml.kernel.org/r/019ac41602e0c4a7dfe96dc8158a95097c2b2ebd.1645554036.git.andreyknvl@google.com\n[akpm@linux-foundation.org: fix build]\n\nCc: Andrey Konovalov \u003candreyknvl@gmail.com\u003e\n[andreyknvl@google.com: vmap_tags() and vm_map_ram_tags() pass invalid page array size]\nLink: https://lkml.kernel.org/r/bbdc1c0501c5275e7f26fdb8e2a7b14a40a9f36b.1643047180.git.andreyknvl@google.com\nSigned-off-by: Andrey Konovalov \u003candreyknvl@google.com\u003e\nSigned-off-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nAcked-by: Marco Elver \u003celver@google.com\u003e\nCc: Alexander Potapenko \u003cglider@google.com\u003e\nCc: Andrey Ryabinin \u003cryabinin.a.a@gmail.com\u003e\nCc: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nCc: Dmitry Vyukov \u003cdvyukov@google.com\u003e\nCc: Evgenii Stepanov \u003ceugenis@google.com\u003e\nCc: Mark Rutland \u003cmark.rutland@arm.com\u003e\nCc: Peter Collingbourne \u003cpcc@google.com\u003e\nCc: Vincenzo Frascino \u003cvincenzo.frascino@arm.com\u003e\nCc: Will Deacon \u003cwill@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8479d7b5be2fecaed2b78331c3bf443cc19dfcf5",
      "tree": "f21235c3fd9eedf875f282a2a3b4fbf99e44f4b5",
      "parents": [
        "f6f37d9320a11e9059f11a99fc59dfb8e307c07f"
      ],
      "author": {
        "name": "Andrey Konovalov",
        "email": "andreyknvl@google.com",
        "time": "Thu Mar 24 18:11:56 2022 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 19:06:48 2022 -0700"
      },
      "message": "kasan: documentation updates\n\nUpdate KASAN documentation:\n\n - Bump Clang version requirement for HW_TAGS as ARM64_MTE depends on\n   AS_HAS_LSE_ATOMICS as of commit 2decad92f4731 (\"arm64: mte: Ensure\n   TIF_MTE_ASYNC_FAULT is set atomically\"), which requires Clang 12.\n\n - Add description of the new kasan.vmalloc command line flag.\n\n - Mention that SW_TAGS and HW_TAGS modes now support vmalloc tagging.\n\n - Explicitly say that the \"Shadow memory\" section is only applicable to\n   software KASAN modes.\n\n - Mention that shadow-based KASAN_VMALLOC is supported on arm64.\n\nLink: https://lkml.kernel.org/r/a61189128fa3f9fbcfd9884ff653d401864b8e74.1643047180.git.andreyknvl@google.com\nSigned-off-by: Andrey Konovalov \u003candreyknvl@google.com\u003e\nAcked-by: Marco Elver \u003celver@google.com\u003e\nCc: Alexander Potapenko \u003cglider@google.com\u003e\nCc: Andrey Ryabinin \u003cryabinin.a.a@gmail.com\u003e\nCc: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nCc: Dmitry Vyukov \u003cdvyukov@google.com\u003e\nCc: Evgenii Stepanov \u003ceugenis@google.com\u003e\nCc: Mark Rutland \u003cmark.rutland@arm.com\u003e\nCc: Peter Collingbourne \u003cpcc@google.com\u003e\nCc: Vincenzo Frascino \u003cvincenzo.frascino@arm.com\u003e\nCc: Will Deacon \u003cwill@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    }
  ],
  "next": "f6f37d9320a11e9059f11a99fc59dfb8e307c07f"
}
