)]}'
{
  "commit": "74e8593e7e51d6b11ae9c56a3f4e7bb714bac4ec",
  "tree": "29010d835f03d1b36e4ce9a122ad76ab48551810",
  "parents": [
    "c44f4263b2fcd5847a50e57157a716ebe8d69d8c"
  ],
  "author": {
    "name": "Volker Rümelin",
    "email": "vr_qemu@t-online.de",
    "time": "Sun Nov 05 18:25:51 2023 +0100"
  },
  "committer": {
    "name": "Michael S. Tsirkin",
    "email": "mst@redhat.com",
    "time": "Sat Dec 02 15:56:49 2023 -0500"
  },
  "message": "hw/audio/hda-codec: fix multiplication overflow\n\nAfter a relatively short time, there is an multiplication overflow\nwhen multiplying (now - buft_start) with hda_bytes_per_second().\nWhile the uptime now - buft_start only overflows after 2**63 ns\n\u003d 292.27 years, this happens hda_bytes_per_second() times faster\nwith the multiplication. At 44100 samples/s * 2 channels\n* 2 bytes/channel \u003d 176400 bytes/s that is 14.52 hours. After the\nmultiplication overflow the affected audio stream stalls.\n\nReplace the multiplication and following division with muldiv64()\nto prevent a multiplication overflow.\n\nFixes: 280c1e1cdb (\"audio/hda: create millisecond timers that handle IO\")\nReported-by: M_O_Bz \u003cm_o_bz@163.com\u003e\nSigned-off-by: Volker Rümelin \u003cvr_qemu@t-online.de\u003e\nMessage-Id: \u003c20231105172552.8405-1-vr_qemu@t-online.de\u003e\nReviewed-by: Marc-André Lureau \u003cmarcandre.lureau@redhat.com\u003e\nReviewed-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\nSigned-off-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "b9ad1f4c39e7f29d95fee7821f853f4b856565c8",
      "old_mode": 33188,
      "old_path": "hw/audio/hda-codec.c",
      "new_id": "f756e419bb65561a481a6980a7633a78038e6ac4",
      "new_mode": 33188,
      "new_path": "hw/audio/hda-codec.c"
    }
  ]
}
