41 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| From 8236e206084b832d1d7ec947a4798b818f4cdf1f Mon Sep 17 00:00:00 2001
 | |
| From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
 | |
| Date: Tue, 10 Jun 2025 13:36:47 +0100
 | |
| Subject: [PATCH] hw/audio/es1370: skip automatic zero-init of large array
 | |
| MIME-Version: 1.0
 | |
| Content-Type: text/plain; charset=UTF-8
 | |
| Content-Transfer-Encoding: 8bit
 | |
| 
 | |
| The 'es1370_transfer_audio' method has a 4k byte array used for
 | |
| copying data between the audio backend and device. Skip the automatic
 | |
| zero-init of this array 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-10-berrange@redhat.com
 | |
| Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
 | |
| ---
 | |
|  hw/audio/es1370.c | 2 +-
 | |
|  1 file changed, 1 insertion(+), 1 deletion(-)
 | |
| 
 | |
| diff --git a/hw/audio/es1370.c b/hw/audio/es1370.c
 | |
| index 8efb969212..a6a32a6348 100644
 | |
| --- a/hw/audio/es1370.c
 | |
| +++ b/hw/audio/es1370.c
 | |
| @@ -604,7 +604,7 @@ static uint64_t es1370_read(void *opaque, hwaddr addr, unsigned size)
 | |
|  static void es1370_transfer_audio (ES1370State *s, struct chan *d, int loop_sel,
 | |
|                                     int max, bool *irq)
 | |
|  {
 | |
| -    uint8_t tmpbuf[4096];
 | |
| +    QEMU_UNINITIALIZED uint8_t tmpbuf[4096];
 | |
|      size_t to_transfer;
 | |
|      uint32_t addr = d->frame_addr;
 | |
|      int sc = d->scount & 0xffff;
 | |
| -- 
 | |
| 2.47.3
 | |
| 
 |