)]}'
{
  "commit": "94509f5b8fecbc2789c50f0cf94c5582d4611e5e",
  "tree": "a7457e9c09dfae85cc2eaed3f1ac5eb66708adfc",
  "parents": [
    "d221d6c30adbf4741ff35d9c682b065f896c479e"
  ],
  "author": {
    "name": "Ard Biesheuvel",
    "email": "ardb@kernel.org",
    "time": "Fri Feb 13 22:08:22 2026 +0100"
  },
  "committer": {
    "name": "Ard Biesheuvel",
    "email": "ardb@kernel.org",
    "time": "Wed Feb 18 16:45:07 2026 +0100"
  },
  "message": "x86/slaunch: Implement secure launch for legacy boot via a callback\n\nImplement secure launch (D-RTM) of the decompressed kernel via a\ncallback interface exposed by the Secure Launch Resource Table (SLRT), a\nreference to which is added to struct boot_params.\n\nThis permits a bootloader to set up the secure launch, let the\ndecompressor execute up to the point where it would otherwise boot the\ncore kernel, and at that point, perform the secure launch in a\narchitecture/vendor specific manner. This is similar to how EFI boot\nachieves this, using a EFI protocol exposed by the bootloader.\n\nThis requires that the decompressor unpacks the kernel into the buffer that\nit was started from itself, and so physical KASLR needs to be omitted\n(although the bootloader is free to place the decompressor at any\nsuitably aligned locations in system memory, and so it can perform the\nphysical randomization itself).\n\nIt also relies on the demand paging logic in the decompressor, to ensure\nthat the SLRT and the entry point it describes are callable, at least to\nthe extent that allows the callback code to re-establish its own\nexecution environment.\n\nSigned-off-by: Ard Biesheuvel \u003cardb@kernel.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "19a88cac22783446ed98c872310dc44272e8e87c",
      "old_mode": 33188,
      "old_path": "Documentation/arch/x86/boot.rst",
      "new_id": "b19f0208a6ff7d05583cd00cf2a024d9afa9c0f7",
      "new_mode": 33188,
      "new_path": "Documentation/arch/x86/boot.rst"
    },
    {
      "type": "modify",
      "old_id": "45aa9cceb4f1940eb9cda3a7176805986008c8ce",
      "old_mode": 33188,
      "old_path": "Documentation/arch/x86/zero-page.rst",
      "new_id": "32b550d4d99c022b6d3663623d0dedcfc49f5a76",
      "new_mode": 33188,
      "new_path": "Documentation/arch/x86/zero-page.rst"
    },
    {
      "type": "modify",
      "old_id": "e3b5177bfa6ffe078481f5f28940201ea402cd55",
      "old_mode": 33188,
      "old_path": "arch/x86/boot/compressed/misc.c",
      "new_id": "f647b15e2b3d6d36cbac5b40de8d4c7f64f1b743",
      "new_mode": 33188,
      "new_path": "arch/x86/boot/compressed/misc.c"
    },
    {
      "type": "modify",
      "old_id": "58cbdeb7b069ac7914ccd0c36dc0c47d48508436",
      "old_mode": 33188,
      "old_path": "arch/x86/boot/compressed/pgtable_64.c",
      "new_id": "3d5af985920e2fe27def65fb25b9a4ab822a5794",
      "new_mode": 33188,
      "new_path": "arch/x86/boot/compressed/pgtable_64.c"
    },
    {
      "type": "modify",
      "old_id": "9bea5a1e2c52cb775c1e8c761613e7857de5ed21",
      "old_mode": 33188,
      "old_path": "arch/x86/boot/header.S",
      "new_id": "a77fd98f18b4b36948b3bc21d60bbdfd37e961b6",
      "new_mode": 33188,
      "new_path": "arch/x86/boot/header.S"
    },
    {
      "type": "modify",
      "old_id": "231ef0837ad13081ef15e44f1cdecc32b50269d0",
      "old_mode": 33188,
      "old_path": "arch/x86/include/uapi/asm/bootparam.h",
      "new_id": "1d9b7e8a5bb782c85cd345bfc2429e61152c38cb",
      "new_mode": 33188,
      "new_path": "arch/x86/include/uapi/asm/bootparam.h"
    },
    {
      "type": "modify",
      "old_id": "c28bc96d88149f45e945996a46f99db4a99b072f",
      "old_mode": 33188,
      "old_path": "include/linux/slr_table.h",
      "new_id": "3c2cc66127bb3fba59c58ccc86a3eb29e8f17dfc",
      "new_mode": 33188,
      "new_path": "include/linux/slr_table.h"
    }
  ]
}
