Re: [Bluez PATCH v1] input: Disconnect ctrl chan only if intr chan was disconnected by us

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

 



Hi Archie,

On Wed, Jun 10, 2020 at 8:04 AM Archie Pusaka <apusaka@xxxxxxxxxx> wrote:
>
> From: Archie Pusaka <apusaka@xxxxxxxxxxxx>
>
> If the intr channel was disconnected by the other party, then they
> are also responsible to close the ctrl channel. Such disconnection
> message would have the G_IO_ERR flag set, as opposed to it being
> unset if the disconnection is initiated by us.
>
> There doesn't seem to be an explicit rule in the specification
> about this behavior, but this is enforced in the PTS qualification
> tool.
> ---
>
>  profiles/input/device.c | 6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/profiles/input/device.c b/profiles/input/device.c
> index d89da2d7c..a858bbb19 100644
> --- a/profiles/input/device.c
> +++ b/profiles/input/device.c
> @@ -333,8 +333,10 @@ static gboolean intr_watch_cb(GIOChannel *chan, GIOCondition cond, gpointer data
>                 idev->intr_io = NULL;
>         }
>
> -       /* Close control channel */
> -       if (idev->ctrl_io && !(cond & G_IO_NVAL))
> +       /* Close control channel if the closing of interrupt channel is not
> +        * initiated by the other party
> +        */
> +       if (idev->ctrl_io && !(cond & (G_IO_NVAL | G_IO_ERR)))
>                 g_io_channel_shutdown(idev->ctrl_io, TRUE, NULL);
>
>         btd_service_disconnecting_complete(idev->service, 0);
> --
> 2.27.0.278.ge193c7cf3a9-goog
>

Applied, thanks.

-- 
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