Re: [PATCH BlueZ 2/2] source: clean up outstanding AVDTP requests if the stream goes away.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Daniel,

On Fri, Oct 25, 2024 at 4:30 PM Daniel Beer
<daniel.beer@xxxxxxxxxxxxxxxxx> wrote:
>
> If the stream goes IDLE while we have an outstanding request, connect_id
> stays non-zero and is never cleared via a completion callback. As a
> consequence, the profile on this device will never be connected
> successfully again until BlueZ restarts.
> ---
>  profiles/audio/source.c | 5 +++++
>  1 file changed, 5 insertions(+)
>
> diff --git a/profiles/audio/source.c b/profiles/audio/source.c
> index 9fac352c8..db777e86d 100644
> --- a/profiles/audio/source.c
> +++ b/profiles/audio/source.c
> @@ -134,6 +134,11 @@ static void stream_state_changed(struct avdtp_stream *stream,
>         case AVDTP_STATE_IDLE:
>                 btd_service_disconnecting_complete(source->service, 0);
>
> +               if (source->connect_id > 0) {
> +                       a2dp_cancel(source->connect_id);
> +                       source->connect_id = 0;
> +               }
> +

Is this really happening or is more of a fix based on disconnect_id?
If that really is happening then we need to fix the sink as well since
it appears to be doing the same, that said connect_id may be set with
a2dp_discover which can happen in AVDTP_STATE_IDLE so in theory that
can still be ongoing, anyway this code hasn't change in very long time
so I wonder if this is sort of workaround to specific model or
use-case we haven't tried before?

>                 if (source->disconnect_id > 0) {
>                         a2dp_cancel(source->disconnect_id);
>                         source->disconnect_id = 0;
> --
> 2.43.0
>
>


-- 
Luiz Augusto von Dentz





[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux