)]}'
{
  "commit": "d50dd728ced93a1900ff0be924b6f273baf59fb2",
  "tree": "6c40dd644831d03fcafa7e2826e382d8d22cafbe",
  "parents": [
    "8f18d3cbd92065146147e958afa912ca94a237b0"
  ],
  "author": {
    "name": "Jason Andryuk",
    "email": "jason.andryuk@amd.com",
    "time": "Wed Mar 18 19:53:26 2026 -0400"
  },
  "committer": {
    "name": "Greg Kroah-Hartman",
    "email": "gregkh@linuxfoundation.org",
    "time": "Mon Mar 30 17:37:18 2026 +0200"
  },
  "message": "hvc/xen: Check console connection flag\n\nWhen the console out buffer is filled, __write_console() will return 0\nas it cannot send any data.  domU_write_console() will then spin in\n`while (len)` as len doesn\u0027t decrement until xenconsoled attaches.  This\nwould block a domU and nullify the parallelism of Hyperlaunch until dom0\nuserspace starts xenconsoled, which empties the buffer.\n\nXen 4.21 added a connection field to the xen console page.  This is set\nto XENCONSOLE_DISCONNECTED (1) when a domain is built, and xenconsoled\nwill set it to XENCONSOLE_CONNECTED (0) when it connects.\n\nUpdate the hvc_xen driver to check the field.  When the field is\ndisconnected, drop the write with -ENOTCONN.  We only drop the write\nwhen the field is XENCONSOLE_DISCONNECTED (1) to try for maximum\ncompatibility.  The Xen toolstack has historically zero initialized the\nconsole, so it should see XENCONSOLE_CONNECTED (0) by default.  If an\nimplemenation used uninitialized memory, only checking for\nXENCONSOLE_DISCONNECTED could have the lowest chance of not connecting.\n\nThis lets the hyperlaunched domU boot without stalling.  Once dom0\nstarts xenconsoled, xl console can be used to access the domU\u0027s hvc0.\n\nParitally sync console.h from xen.git to bring in the new field.\n\nReviewed-by: Stefano Stabellini \u003csstabellini@kernel.org\u003e\nSigned-off-by: Jason Andryuk \u003cjason.andryuk@amd.com\u003e\nLink: https://patch.msgid.link/20260318235326.14568-1-jason.andryuk@amd.com\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "7f0b6262488c56a5293156c826b87f3304f03eba",
      "old_mode": 33188,
      "old_path": "drivers/tty/hvc/hvc_xen.c",
      "new_id": "c407592442cd92b8b2424faf7078ff5230235889",
      "new_mode": 33188,
      "new_path": "drivers/tty/hvc/hvc_xen.c"
    },
    {
      "type": "modify",
      "old_id": "cf17e89ed861444aebe4894c6e0491ee2cd77485",
      "old_mode": 33188,
      "old_path": "include/xen/interface/io/console.h",
      "new_id": "687949bdebb1c64f5271e2ad3ccb60608b14cb7f",
      "new_mode": 33188,
      "new_path": "include/xen/interface/io/console.h"
    }
  ]
}
