Received: by 2002:ac2:464d:0:0:0:0:0 with SMTP id s13csp200384lfo; Tue, 17 May 2022 22:16:59 -0700 (PDT) X-Google-Smtp-Source: ABdhPJy1PSvS2kFVg7SA+1Gge61snVZ64RKF4gCraypJRnjWoU9qI8uiSUrwXDvaaDg1XwL8Iy0c X-Received: by 2002:a63:5824:0:b0:3db:65eb:8e2f with SMTP id m36-20020a635824000000b003db65eb8e2fmr22417593pgb.349.1652851019110; Tue, 17 May 2022 22:16:59 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1652851019; cv=none; d=google.com; s=arc-20160816; b=P2ixpkWa1+YtDGFfLOJmvJD+HEc9J26NkVUPOcXCYB92hswvZtBZbVtx9buQAqAbPi bUmu+4SMdhxJ6b9qzEfGZSyzzhTf1qTI3OWzWp/s53LmbQQhFfk3aTzOTrPkV9kdU/Qr 57vVhfCUunJBHm1yG9GMOafeoaLxX4Nwi0SmOVD9+yBHPb+RWX4Tn+0Rz7fCMkVkWW2N ws+o6qjIzxGxr62PSICzxGkUA2iDQNEWg+4+IA1Skvu6AuJm7KQq2o0VkM7GJIdFWAPA yf8r8Nf/Lp7s4hdX4RbmJgE5NuDziowWQcsmT5LxkLNLV869J0ASuG2AsywbY4wQEuZl OmnQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:from:subject:mime-version:message-id:date :dkim-signature; bh=CePwNNmF3fIm01KymEYDMgdP6P1K9tvoxAvRjX3HK9E=; b=s423PswajAXBR5eKVKCf3HWWgoBakMJgH0YIQ3HPtEO2mOTvH6KunhpMdM5BxVwN+/ tTzVxG6xas9+uCfsKQXC4x3tAXCV1/Ac28MV8UkRQK8E4t3KD+Tmdg/brFmxEOIo21Ii quYLsOW8SiDn28ly2Ra763Iojbg0hKLrWSnlUKDh2YZiahaiGlpyMoEntYTsew+SANug 35P58/yEXoSqVVCq02XFVJb0l3rwLvBZn8GblbJUIFdHdJsmcxuAQMhT8vWAd382N9zk dnbSEN3yXAGyLzVCnzFInmI6wjylHf0lVH/dz1LTb5DHuQFdpdEvLbxa50pgarmx/tHZ YZjw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=gSVwexQQ; spf=softfail (google.com: domain of transitioning linux-bluetooth-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-bluetooth-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [23.128.96.19]) by mx.google.com with ESMTPS id z1-20020a656641000000b003ab54545cd9si1378307pgv.56.2022.05.17.22.16.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 17 May 2022 22:16:59 -0700 (PDT) Received-SPF: softfail (google.com: domain of transitioning linux-bluetooth-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) client-ip=23.128.96.19; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=gSVwexQQ; spf=softfail (google.com: domain of transitioning linux-bluetooth-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-bluetooth-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 7B1196357; Tue, 17 May 2022 21:33:22 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229677AbiEREdU (ORCPT + 99 others); Wed, 18 May 2022 00:33:20 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55506 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229844AbiEREdT (ORCPT ); Wed, 18 May 2022 00:33:19 -0400 Received: from mail-yb1-xb49.google.com (mail-yb1-xb49.google.com [IPv6:2607:f8b0:4864:20::b49]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7A6ECDFF for ; Tue, 17 May 2022 21:33:17 -0700 (PDT) Received: by mail-yb1-xb49.google.com with SMTP id b11-20020a5b008b000000b00624ea481d55so889214ybp.19 for ; Tue, 17 May 2022 21:33:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=date:message-id:mime-version:subject:from:to:cc; bh=CePwNNmF3fIm01KymEYDMgdP6P1K9tvoxAvRjX3HK9E=; b=gSVwexQQ92FjHpWBWZSFVsoBfj7Hgt/AU0Gl67bwX+TtYKOAyR18v2Z/16rA/SCeI1 8Lid9euQu+g/Yuf4gLvmz/G7ONtLwS+DYQXjrmLAW8Wgo3iOYbvYB6qJodijszuCyPMF 3XrEFNoK8k9Uf336BG/g6hVAaFz0RNGu2w79l111+96geV83IziwwN7BhUTDK5mM2lRC 8Cms4j81xkTAUYKXa2TYMb1QFps1vt0LWFKwgcOjCp0uyvfIwXbRG/hMiBETIhR9imRf qzEM1EYBkThSapQoJeu726bz5rLr7g4T4yxO1196j358ZIrB3G4KICDOM6hjWLgABF9r SJWQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:message-id:mime-version:subject:from:to:cc; bh=CePwNNmF3fIm01KymEYDMgdP6P1K9tvoxAvRjX3HK9E=; b=wiQyqT4mC1dpR0tBl2l7Mvbdxz86xwQTYXV1pkBE2ADFaZrYDP0528mGHw6mMLJ3nj 3x+Zq36v2jC4O7uj1PkuG1ptdlmhZVGEe4UGoILkEoXkMWvg98N4WFkilk8sT5rciPr2 e/AhGTszORUF3EA52zpmQY64AR17Myu4tO7WETD3c0P7z6RI4VwS+EuzQi6ujokaGJJy g338jw0C0Fl9KK6084Ko0V1Mi6mmUD8t1yzChoB8qeRh2rr2Or/ZzeCaA5kk+TqDVJ+1 ZP+hibUonMohN0Vx2s2KJwOUIo1WlStlN2yL2DHHG1Wk1M10hEgsJi6ObdeZo3tw4v2R HFjA== X-Gm-Message-State: AOAM531FzRdo2qwUd+gR02u+H/ZleGAFWgT3a+WfcSqgmO8bgxEIqOF6 d+/OtTzcZZZibXNRlju72tphLxAqCK7YYceFXQiE77jQbWFhmgABukv4r31dInSq86kD7mmBFvQ obMByM0PnPPj1hjaS+w3MDjO0IRd8Pjd26gObOx1d4iEG3zRf1upFnuJkw7sWO4T53W4/Y7ssM5 0k X-Received: from apusaka-p920.tpe.corp.google.com ([2401:fa00:1:17:c48:4501:146d:1031]) (user=apusaka job=sendgmr) by 2002:a25:874d:0:b0:64d:c470:c8aa with SMTP id e13-20020a25874d000000b0064dc470c8aamr10931885ybn.578.1652848396465; Tue, 17 May 2022 21:33:16 -0700 (PDT) Date: Wed, 18 May 2022 12:33:07 +0800 Message-Id: <20220518123252.Bluez.1.Ie61d0e985d42728b2e705ca6dfd000385cf3870a@changeid> Mime-Version: 1.0 X-Mailer: git-send-email 2.36.0.550.gb090851708-goog Subject: [Bluez PATCH] input/device: Notify failure if ctrl disconnect when waiting intr From: Archie Pusaka To: linux-bluetooth , Luiz Augusto von Dentz Cc: CrosBT Upstreaming , Archie Pusaka , Sonny Sasaka Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-9.5 required=5.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RDNS_NONE,SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE, USER_IN_DEF_DKIM_WL autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-bluetooth@vger.kernel.org From: Archie Pusaka On some rare occasions, the peer HID device might disconnect the ctrl channel when we are trying to connect the intr channel. If this happens, interrupt_connect_cb() will not be called by btio, and we will be stuck in "connecting" state. Any future connection attempt to the peer device will fail because of "busy". This patch prevents that by checking if we need to report connection failure when the ctrl channel is disconnected. Reviewed-by: Sonny Sasaka --- profiles/input/device.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/profiles/input/device.c b/profiles/input/device.c index ff4aa771ac..e2ac6ea603 100644 --- a/profiles/input/device.c +++ b/profiles/input/device.c @@ -581,6 +581,13 @@ static gboolean ctrl_watch_cb(GIOChannel *chan, GIOCondition cond, gpointer data if (idev->intr_io && !(cond & G_IO_NVAL)) g_io_channel_shutdown(idev->intr_io, TRUE, NULL); + /* It's possible this is triggered while the intr channel is not even + * connected yet, therefore we are still in the connecting state. + */ + if (btd_service_get_state(idev->service) == + BTD_SERVICE_STATE_CONNECTING) + btd_service_connecting_complete(idev->service, -EIO); + if (!idev->intr_io && idev->virtual_cable_unplug) virtual_cable_unplug(idev); -- 2.36.0.550.gb090851708-goog