[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20190120222140.GA6626@jaya.lan>
Date: Sun, 20 Jan 2019 23:21:40 +0100
From: Anisse Astier <anisse@...ier.eu>
To: Phil Elwell <phil@...pberrypi.org>
Cc: Eric Anholt <eric@...olt.net>,
Stefan Wahren <stefan.wahren@...e.com>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
Dominic Braun <inf.braun@....de>,
Nicolas Saenz Julienne <nsaenzjulienne@...e.de>,
Arnd Bergmann <arnd@...db.de>,
linux-rpi-kernel@...ts.infradead.org,
linux-arm-kernel@...ts.infradead.org, devel@...verdev.osuosl.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH] staging: vchiq: Fix local event signalling
Hi Phil,
On Fri, Jan 11, 2019 at 11:34:53AM +0000, Phil Elwell wrote:
> Prior to the recent event reworking (see Fixes), thread synchronisation
> was implemented using completions, the worker thread being woken with
> a call to complete(). The replacement uses waitqueues, which are more
> like condition variables in that the waiting thread is only woken if
> the condition is true.
>
> When the VPU signals the ARM, it first sets the event's fired flag to
> indicate which event is being signalled, but the places in the
> ARM-side code where the worker thread is being woken -
> remote_event_signal_local via request_poll - did not do so as it
> wasn't previously necessary, and since the armed flag was being
> cleared this lead to a deadlock.
This fixes an issue I've had on linux 5.0-pre to 5.0-rc2+: the
bcm2835-audio driver would block on close, and then nothing would work
until the process was killed. Sample log:
bcm2835_audio bcm2835_audio: failed to close VCHI service connection (status=1)
>
> Fixes: 852b2876a8a8 ("staging: vchiq: rework remove_event handling")
> Signed-off-by: Phil Elwell <phil@...pberrypi.org>
Tested-by: Anisse Astier <anisse@...ier.eu>
Regards,
Anisse
Powered by blists - more mailing lists