mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-02 23:33:54 -06:00
hw/audio/ac97: skip automatic zero-init of large arrays
The 'read_audio' & 'write_audio' methods have a 4k byte array used for copying data between the audio backend and device. Skip the automatic zero-init of these arrays to eliminate the performance overhead in the I/O hot path. The 'tmpbuf' array will be fully initialized when reading data from the audio backend and/or device memory. Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> Message-id: 20250610123709.835102-8-berrange@redhat.com Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
parent
9a23075cef
commit
2553d2d26a
1 changed files with 2 additions and 2 deletions
|
@ -886,7 +886,7 @@ static void nabm_writel(void *opaque, uint32_t addr, uint32_t val)
|
||||||
static int write_audio(AC97LinkState *s, AC97BusMasterRegs *r,
|
static int write_audio(AC97LinkState *s, AC97BusMasterRegs *r,
|
||||||
int max, int *stop)
|
int max, int *stop)
|
||||||
{
|
{
|
||||||
uint8_t tmpbuf[4096];
|
QEMU_UNINITIALIZED uint8_t tmpbuf[4096];
|
||||||
uint32_t addr = r->bd.addr;
|
uint32_t addr = r->bd.addr;
|
||||||
uint32_t temp = r->picb << 1;
|
uint32_t temp = r->picb << 1;
|
||||||
uint32_t written = 0;
|
uint32_t written = 0;
|
||||||
|
@ -959,7 +959,7 @@ static void write_bup(AC97LinkState *s, int elapsed)
|
||||||
static int read_audio(AC97LinkState *s, AC97BusMasterRegs *r,
|
static int read_audio(AC97LinkState *s, AC97BusMasterRegs *r,
|
||||||
int max, int *stop)
|
int max, int *stop)
|
||||||
{
|
{
|
||||||
uint8_t tmpbuf[4096];
|
QEMU_UNINITIALIZED uint8_t tmpbuf[4096];
|
||||||
uint32_t addr = r->bd.addr;
|
uint32_t addr = r->bd.addr;
|
||||||
uint32_t temp = r->picb << 1;
|
uint32_t temp = r->picb << 1;
|
||||||
uint32_t nread = 0;
|
uint32_t nread = 0;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue