)]}'
{
  "commit": "f83f5505497c2b2b08a9bc9a3bd5aee2df5fa7ca",
  "tree": "17b104634d76ff9a4938fbac2a483eed22413772",
  "parents": [
    "e0f0ce88eb9e526cf8271f124478143fc3ae388a"
  ],
  "author": {
    "name": "Matt Turner",
    "email": "mattst88@gmail.com",
    "time": "Wed Jun 03 20:30:59 2026 -0400"
  },
  "committer": {
    "name": "Helge Deller",
    "email": "deller@gmx.de",
    "time": "Wed Jun 10 18:42:59 2026 +0200"
  },
  "message": "linux-user/sparc: flush register windows before core dump\n\nWithout this, only the crash frame\u0027s window is spilled to the\nstack; all deeper call frames remain in the register file and\nare absent from the core\u0027s memory segments. Stack unwinding\nfails past the first DWARF step because the callers\u0027 register\nsave areas contain stale/garbage data.\n\nThe real kernel calls flush_all_user_windows() at the top of\ndo_coredump(). Mirror that via a weak target_flush_windows()\nhook called from dump_core_and_abort(), with the SPARC override\ncalling the existing flush_windows() in cpu_loop.c.\n\nSigned-off-by: Matt Turner \u003cmattst88@gmail.com\u003e\nCc: Mark Cave-Ayland \u003cmark.cave-ayland@ilande.co.uk\u003e\nSigned-off-by: Helge Deller \u003cdeller@gmx.de\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "f7625c0952440722c56a3207b10ef7319b16da5d",
      "old_mode": 33188,
      "old_path": "linux-user/elfload.c",
      "new_id": "b05b8b0c6b2199a3a3f764030cbd7d5ae2b0eb45",
      "new_mode": 33188,
      "new_path": "linux-user/elfload.c"
    },
    {
      "type": "modify",
      "old_id": "ab633eeae3fe63bf80298b143a0c3d3aaf3a91de",
      "old_mode": 33188,
      "old_path": "linux-user/sparc/cpu_loop.c",
      "new_id": "0aacda944861a79f4a171345c80a290ea72d6b33",
      "new_mode": 33188,
      "new_path": "linux-user/sparc/cpu_loop.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "fb6e82d372d3165764cb71d331b37ea508714917",
      "new_mode": 33188,
      "new_path": "linux-user/sparc/cpu_loop.h"
    },
    {
      "type": "modify",
      "old_id": "e6387ec891b6a3b90ed4a87ddc61d384c4e0cd1f",
      "old_mode": 33188,
      "old_path": "linux-user/sparc/elfload.c",
      "new_id": "181f1e00b59cda93b5184b5d27a6b1a37788606b",
      "new_mode": 33188,
      "new_path": "linux-user/sparc/elfload.c"
    },
    {
      "type": "modify",
      "old_id": "edb0b3103cbd0d51823426ee408ab9080cca77e7",
      "old_mode": 33188,
      "old_path": "linux-user/sparc/target_elf.h",
      "new_id": "365af864b0c58599474b970a6211e231f5484819",
      "new_mode": 33188,
      "new_path": "linux-user/sparc/target_elf.h"
    }
  ]
}
