[PATCH] staging: vc04_services: preserve bcm2835_audio_write errors

Lucas Jeffrey <[email protected]>
Newsgroups org.infradead.lists.linux-arm-kernel,dev.linux.lists.linux-staging,org.kernel.vger.linux-kernel
Message-ID <[email protected]>
When sending audio data in multiple packets, a successful later packet
could overwrite an earlier failure in status. This caused the function
to report success even if one packet was not queued.

Stop sending packets after the first failure to preserve the error.

Signed-off-by: Lucas Jeffrey <[email protected]>
---
 drivers/staging/vc04_services/bcm2835-audio/bcm2835-vchiq.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/staging/vc04_services/bcm2835-audio/bcm2835-vchiq.c b/drivers/staging/vc04_services/bcm2835-audio/bcm2835-vchiq.c
index 3156cb8392f4..5ac23cfa7983 100644
--- a/drivers/staging/vc04_services/bcm2835-audio/bcm2835-vchiq.c
+++ b/drivers/staging/vc04_services/bcm2835-audio/bcm2835-vchiq.c
@@ -365,6 +365,9 @@ int bcm2835_audio_write(struct bcm2835_alsa_stream *alsa_stream,
 
 			status = vchiq_queue_kernel_message(vchiq_instance,
 							    instance->service_handle, src, bytes);
+			if (status)
+				break;
+
 			src += bytes;
 			count -= bytes;
 		}
-- 
2.43.0
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.