)]}'
{
  "commit": "ea0d55ae4b3207c33691a73da3443b1fd379f1d2",
  "tree": "d80d46b2aa4b8d31cd0403b4cbfb9b7da088401d",
  "parents": [
    "e9ad390a4812fd60c1da46823f7a6f84f2411f0c"
  ],
  "author": {
    "name": "Ada Couprie Diaz",
    "email": "ada.coupriediaz@arm.com",
    "time": "Tue Oct 14 10:25:36 2025 +0100"
  },
  "committer": {
    "name": "Catalin Marinas",
    "email": "catalin.marinas@arm.com",
    "time": "Fri Oct 17 18:08:05 2025 +0100"
  },
  "message": "arm64: debug: always unmask interrupts in el0_softstp()\n\nWe intend that EL0 exception handlers unmask all DAIF exceptions\nbefore calling exit_to_user_mode().\n\nWhen completing single-step of a suspended breakpoint, we do not call\nlocal_daif_restore(DAIF_PROCCTX) before calling exit_to_user_mode(),\nleaving all DAIF exceptions masked.\n\nWhen pseudo-NMIs are not in use this is benign.\n\nWhen pseudo-NMIs are in use, this is unsound. At this point interrupts\nare masked by both DAIF.IF and PMR_EL1, and subsequent irq flag\nmanipulation may not work correctly. For example, a subsequent\nlocal_irq_enable() within exit_to_user_mode_loop() will only unmask\ninterrupts via PMR_EL1 (leaving those masked via DAIF.IF), and\nanything depending on interrupts being unmasked (e.g. delivery of\nsignals) will not work correctly.\n\nThis was detected by CONFIG_ARM64_DEBUG_PRIORITY_MASKING.\n\nMove the call to `try_step_suspended_breakpoints()` outside of the check\nso that interrupts can be unmasked even if we don\u0027t call the step handler.\n\nFixes: 0ac7584c08ce (\"arm64: debug: split single stepping exception entry\")\nCc: \u003cstable@vger.kernel.org\u003e # 6.17\nSigned-off-by: Ada Couprie Diaz \u003cada.coupriediaz@arm.com\u003e\nAcked-by: Mark Rutland \u003cmark.rutland@arm.com\u003e\n[catalin.marinas@arm.com: added Mark\u0027s rewritten commit log and some whitespace]\nSigned-off-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "f546a914f04174e37bf3578490545edebb66afd1",
      "old_mode": 33188,
      "old_path": "arch/arm64/kernel/entry-common.c",
      "new_id": "a9c81715ce59ed73f3447be7327580de8c735adc",
      "new_mode": 33188,
      "new_path": "arch/arm64/kernel/entry-common.c"
    }
  ]
}
