)]}'
{
  "commit": "af9e40aa8f36e30e89f16323b3d341ee59309b7e",
  "tree": "7ba0eb254d708e533b3fd1e207856f07fba33fdd",
  "parents": [
    "b8a86c4ac4d04c106ba38fbd707041cba334a155"
  ],
  "author": {
    "name": "Markus Armbruster",
    "email": "armbru@redhat.com",
    "time": "Mon Mar 23 19:03:13 2015 +0100"
  },
  "committer": {
    "name": "Markus Armbruster",
    "email": "armbru@redhat.com",
    "time": "Thu Apr 02 15:26:27 2015 +0200"
  },
  "message": "hw: Mark devices picking up block backends actively FIXME\n\nDrives defined with if!\u003dnone are for board initialization to wire up.\nBoard code calls drive_get() or similar to find them, and creates\ndevices with their qdev drive properties set accordingly.\n\nExcept a few devices go on a fishing expedition for a suitable backend\ninstead of exposing a drive property for board code to set: they call\ndriver_get() or drive_get_next() in their realize() or init() method\nto implicitly connect to the \"next\" backend with a certain interface\ntype.\n\nPicking up backends that way works when the devices are created by\nboard code.  But it\u0027s inappropriate for -device or device_add.  Not\nonly is this inconsistent with how the other block device models work\n(they connect to a backend explicitly identified by a \"drive\"\nproperty), it breaks when the \"next\" backend has been picked up by the\nboard already.\n\nExample:\n\n    $ qemu-system-arm -S -M connex -pflash flash.img -device ssi-sd\n    Aborted (core dumped)\n\nMark them with suitable FIXME comments.\n\nCc: Andrzej Zaborowski \u003cbalrogg@gmail.com\u003e\nCc: Peter Crosthwaite \u003cpeter.crosthwaite@xilinx.com\u003e\nCc: \"Andreas Färber\" \u003candreas.faerber@web.de\u003e\nCc: Michael Walle \u003cmichael@walle.cc\u003e\nSigned-off-by: Markus Armbruster \u003carmbru@redhat.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "a16831c2e530f2c35461f936915982d7bff76596",
      "old_mode": 33188,
      "old_path": "hw/arm/spitz.c",
      "new_id": "da0293287265d37b70d50311a9552647a81de00d",
      "new_mode": 33188,
      "new_path": "hw/arm/spitz.c"
    },
    {
      "type": "modify",
      "old_id": "ff1106b6c9f87d36bc7595239818201ebc1392bb",
      "old_mode": 33188,
      "old_path": "hw/block/m25p80.c",
      "new_id": "afe243b8114f7a0d7198e4eab64dfdc2ecd3f6cc",
      "new_mode": 33188,
      "new_path": "hw/block/m25p80.c"
    },
    {
      "type": "modify",
      "old_id": "40a11060a536e1ed4c14a17a73750e97405013a5",
      "old_mode": 33188,
      "old_path": "hw/isa/pc87312.c",
      "new_id": "2849e8d367bed51182554f735f2b40a76ed1f0fb",
      "new_mode": 33188,
      "new_path": "hw/isa/pc87312.c"
    },
    {
      "type": "modify",
      "old_id": "9661eafac81493560890235a1ec45d4673427547",
      "old_mode": 33188,
      "old_path": "hw/sd/milkymist-memcard.c",
      "new_id": "0cc53d937f4c746ac658d6fedd681b1a716423eb",
      "new_mode": 33188,
      "new_path": "hw/sd/milkymist-memcard.c"
    },
    {
      "type": "modify",
      "old_id": "e704b6e97a17c6d6aa1b0d19c64534bca45a1ade",
      "old_mode": 33188,
      "old_path": "hw/sd/pl181.c",
      "new_id": "bf37da63c3c9c4d098a8f5e0711c3f23bf0c4895",
      "new_mode": 33188,
      "new_path": "hw/sd/pl181.c"
    },
    {
      "type": "modify",
      "old_id": "27b914aa94d94f3dd3b0d97c881dab2d4f7a44ea",
      "old_mode": 33188,
      "old_path": "hw/sd/sdhci.c",
      "new_id": "f056c523dd53ebc5c2c86e7e64ca48877acc7ed1",
      "new_mode": 33188,
      "new_path": "hw/sd/sdhci.c"
    },
    {
      "type": "modify",
      "old_id": "a71fbca7140dd623c2ffa5104855756ee06145ca",
      "old_mode": 33188,
      "old_path": "hw/sd/ssi-sd.c",
      "new_id": "e4b2d4f83b7ba119a8891e4e06c64ff5cea68a14",
      "new_mode": 33188,
      "new_path": "hw/sd/ssi-sd.c"
    }
  ]
}
