[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