aboutsummaryrefslogtreecommitdiff
path: root/scripts/qapi/parser.py
diff options
context:
space:
mode:
authorVolker Rümelin <vr_qemu@t-online.de>2023-11-05 18:25:51 +0100
committerMichael S. Tsirkin <mst@redhat.com>2023-12-02 15:56:49 -0500
commit74e8593e7e51d6b11ae9c56a3f4e7bb714bac4ec (patch)
tree29010d835f03d1b36e4ce9a122ad76ab48551810 /scripts/qapi/parser.py
parentc44f4263b2fcd5847a50e57157a716ebe8d69d8c (diff)
downloadqemu-74e8593e7e51d6b11ae9c56a3f4e7bb714bac4ec.zip
qemu-74e8593e7e51d6b11ae9c56a3f4e7bb714bac4ec.tar.gz
qemu-74e8593e7e51d6b11ae9c56a3f4e7bb714bac4ec.tar.bz2
hw/audio/hda-codec: fix multiplication overflow
After a relatively short time, there is an multiplication overflow when multiplying (now - buft_start) with hda_bytes_per_second(). While the uptime now - buft_start only overflows after 2**63 ns = 292.27 years, this happens hda_bytes_per_second() times faster with the multiplication. At 44100 samples/s * 2 channels * 2 bytes/channel = 176400 bytes/s that is 14.52 hours. After the multiplication overflow the affected audio stream stalls. Replace the multiplication and following division with muldiv64() to prevent a multiplication overflow. Fixes: 280c1e1cdb ("audio/hda: create millisecond timers that handle IO") Reported-by: M_O_Bz <m_o_bz@163.com> Signed-off-by: Volker Rümelin <vr_qemu@t-online.de> Message-Id: <20231105172552.8405-1-vr_qemu@t-online.de> Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Diffstat (limited to 'scripts/qapi/parser.py')
0 files changed, 0 insertions, 0 deletions