)]}'
{
  "commit": "7b7ab18d0b9769b5f39e663fa55caed461b1202e",
  "tree": "74ae15cdfacae193d2006a580d4f67dccb4666d7",
  "parents": [
    "5fe0d351b3a7caf77f899db804d09e4553329c84"
  ],
  "author": {
    "name": "Michael Roth",
    "email": "mdroth@linux.vnet.ibm.com",
    "time": "Tue Jul 30 13:04:22 2013 -0500"
  },
  "committer": {
    "name": "Anthony Liguori",
    "email": "aliguori@us.ibm.com",
    "time": "Tue Jul 30 18:48:21 2013 -0500"
  },
  "message": "chardev: fix CHR_EVENT_OPENED events for mux chardevs\n\nAs of bd5c51ee6c4f1c79cae5ad2516d711a27b4ea8ec, chardevs no longer use\nbottom-halves to issue CHR_EVENT_OPENED events. To maintain past\nsemantics, we instead defer the CHR_EVENT_OPENED events toward the end\nof chardev initialization.\n\nFor muxes, this isn\u0027t good enough, since a range of FEs must be able\nto attach to the mux prior to any CHR_EVENT_OPENED being issued, else\neach FE will immediately print it\u0027s initial output (prompts, banners,\netc.) just prior to us switching to the next FE as part of\ninitialization.\n\nThe is new and confusing behavior for users, as they\u0027ll see output for\nthings like the HMP monitor, even though their the current mux focus\nmay be a guest serial port with potentially no output.\n\nWe fix this by further deferring CHR_EVENT_OPENED events for FEs\nassociated with muxes until after machine init by flagging mux chardevs\nwith \u0027explicit_be_open\u0027, which suppresses emission of CHR_EVENT_OPENED\nevents until we explicitly set the mux as opened later.\n\nCurrently, we must defer till after machine init since we potentially\nassociate FEs with muxes as part of realize (for instance,\nserial_isa_realizefn).\n\nSigned-off-by: Michael Roth \u003cmdroth@linux.vnet.ibm.com\u003e\nMessage-id: 1375207462-8141-1-git-send-email-mdroth@linux.vnet.ibm.com\nCc: qemu-stable@nongnu.org\nSigned-off-by: Anthony Liguori \u003caliguori@us.ibm.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "e65e4a484480fd8a95c40860aad45d8519a736d3",
      "old_mode": 33188,
      "old_path": "include/sysemu/char.h",
      "new_id": "8053130a97951fd0e477b60dc9a9b8f247ba848d",
      "new_mode": 33188,
      "new_path": "include/sysemu/char.h"
    },
    {
      "type": "modify",
      "old_id": "3f606c935be2ce13f1524ebb964c02053f5cccc5",
      "old_mode": 33188,
      "old_path": "qemu-char.c",
      "new_id": "16f3ad77de24bee635399d413de41417b7d296b1",
      "new_mode": 33188,
      "new_path": "qemu-char.c"
    }
  ]
}
