Received: by 2002:a05:6358:11c7:b0:104:8066:f915 with SMTP id i7csp1204295rwl; Wed, 29 Mar 2023 14:22:24 -0700 (PDT) X-Google-Smtp-Source: AKy350Zu8IU+yT+ZUbRS5YZ13tUv0Aji0YdcECT74Edwff8f0Ome41sPvi49CQK0hSOXXPaRBydr X-Received: by 2002:a17:90a:2b81:b0:23f:2486:5b53 with SMTP id u1-20020a17090a2b8100b0023f24865b53mr3573491pjd.17.1680124944415; Wed, 29 Mar 2023 14:22:24 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1680124944; cv=none; d=google.com; s=arc-20160816; b=Gpy/CO06SiRwKtcz0N0cJHpJ9vPD2usjmaZ+f5fiz2swNuXEYITs47v3CS6O2F+KBH USr6zJePFwZ6UxZDJjwEhoIvKNbTlnOfmclwIQ92LD3I5qu/GBrMyiA3BXSwcF5d6rGH lazFa+ESyhFV8c+dzGgZFo5voAlFgU/p0sny8j4jFwp4pg5dM6JtBUgYxw2ly3xGryND DS0u9IgywHQbuc9pKZKzZ3E1InllwDjGqMXKOvJCOlkgcJ8akBmx5t2f1bknyzWyBD1B s8iNZWsFuWetRfBsVYrFIUJkVmkgBGr/78ur7RbEA9YBuDpaC2BJd97Crj0aYErQTwzc qx8A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=Uv/Rss/Bp/HiNBtdFao8ULnALtaK28uPE6m0zgLq7l8=; b=Aa/T7NgT5KiBN7YGlmMmDrYK35vlDdVJ91E6xyK2nM4iAiXG2h+tl9rycMSBGcntoz vjiJ/ZyLDYc7qY0gNHQ7nbyvPu2Ax+/GpZ4v2iZNIJ4wTZ9jvitIfjtUo+V2wYC3SvKJ qD/bk0pnf55olhcD00UlQDfpTl0/d8mUqQRWjT/yg+wwhNUUFZmMIbcIRi8Ppx6Jq1As SPCAqFvurNDEPbADvMfXHclLzx7YY/jgXrXqKMDLYOaWWdo+lYLl+bN3W0gnv9yzoU+S YVoeiU4gZUFFSV4Cx+2BWt1kzF22moLmWgTqxPI0KPHfq8NfdTPulvWZH4CZ3ZCwimxx 9qyg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=XsUffNeQ; spf=pass (google.com: domain of linux-bluetooth-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-bluetooth-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id pf6-20020a17090b1d8600b0023b2fff4d50si2153665pjb.119.2023.03.29.14.21.58; Wed, 29 Mar 2023 14:22:24 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-bluetooth-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=XsUffNeQ; spf=pass (google.com: domain of linux-bluetooth-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-bluetooth-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229519AbjC2VJy (ORCPT + 99 others); Wed, 29 Mar 2023 17:09:54 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43698 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229620AbjC2VJh (ORCPT ); Wed, 29 Mar 2023 17:09:37 -0400 Received: from mail-io1-xd29.google.com (mail-io1-xd29.google.com [IPv6:2607:f8b0:4864:20::d29]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DC198A2 for ; Wed, 29 Mar 2023 14:09:36 -0700 (PDT) Received: by mail-io1-xd29.google.com with SMTP id k17so7438154iob.1 for ; Wed, 29 Mar 2023 14:09:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1680124176; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=Uv/Rss/Bp/HiNBtdFao8ULnALtaK28uPE6m0zgLq7l8=; b=XsUffNeQGTIpqfksaXhy84s3RCJo0woQgap80A7e5t5+ZM9mNUl6PgTM747C5RPZNi tavfK1BVuY9k1GTYmXXeeIMGlh6NL1np2MP4p6dR5ZusjqUTMFpQGtn8J+agbQWyYMI0 FgmqFjBTTU5bxyF5HzoU2fflzxmRaYlaqwCx0y4Oc++SjTPmD6UBB2JTppTh/Up7YJ3J LqePi7dVfzmrZM+m9Jz2eFdi20qdsEy6bZIuId4aEkMP4q8ipO2x3baUHARlLqtJozQ7 TWbR7rZmrMZcAaL2EOy5vkl5Q7z7bM2zAVFMubsWY1tKOoAQK0Pvexlk+Rajs+9NWw3l YBdQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1680124176; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Uv/Rss/Bp/HiNBtdFao8ULnALtaK28uPE6m0zgLq7l8=; b=No5iM0xYu9XZ/OgL3ZqtKUeVKV+YThGFa0RzekRhvdGeIO3741BYQ8L/uE5pNhCeRI PBeDTaNV2Gd+d1Nj+abNYD/1cpGajaILnIz6uzHUWnFH5oJcyJOKeGYF+j9smWANUQBF jYpeYZmJEIKPx7bSWMSORrgWKJHu1ELVzAgHKU0k2FfS6pRq9FCThV+YPuowPXbWFud1 CsL6Fyryu+0YqeVJ/SoGg5Fdya5Wttj4RAWys0qnMglIFmp/rCwIJmtX2yrKK6xnN/oB BmSkx0UuKPdfcz/cZORno64/HJi7iNtahZi8/35ZkoCL/ay25x39E9yYo70+q8BiYMnV e6qQ== X-Gm-Message-State: AAQBX9fDKWoQHiIaSK1yA/6i6ec49TwBfFcfq+hrYw2DY0WvMWQ9qD83 4uvwI8NH2+AnT4DcyRfZ7K5mxSKela6NUQ== X-Received: by 2002:a6b:5d10:0:b0:752:6f1b:63a2 with SMTP id r16-20020a6b5d10000000b007526f1b63a2mr2092143iob.3.1680124176154; Wed, 29 Mar 2023 14:09:36 -0700 (PDT) Received: from lvondent-mobl4.. (c-71-59-129-171.hsd1.or.comcast.net. [71.59.129.171]) by smtp.gmail.com with ESMTPSA id 71-20020a020a4a000000b004040f9898ebsm11009631jaw.148.2023.03.29.14.09.35 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Mar 2023 14:09:35 -0700 (PDT) From: Luiz Augusto von Dentz To: linux-bluetooth@vger.kernel.org Subject: [PATCH BlueZ 2/2] device: Fix not setting initiator flag when auto-connecting Date: Wed, 29 Mar 2023 14:09:32 -0700 Message-Id: <20230329210932.537019-2-luiz.dentz@gmail.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230329210932.537019-1-luiz.dentz@gmail.com> References: <20230329210932.537019-1-luiz.dentz@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-0.2 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_PASS autolearn=unavailable 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: Luiz Augusto von Dentz If the device is marked as auto-connect the kernel may initiate the connection spontaneously causing new connections to not have set the state->initiator flag properly. --- src/device.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/device.c b/src/device.c index f31f2a097e07..c538742b683f 100644 --- a/src/device.c +++ b/src/device.c @@ -312,9 +312,16 @@ static struct bearer_state *get_state(struct btd_device *dev, bool btd_device_is_initiator(struct btd_device *dev) { - if (dev->le_state.connected) + if (dev->le_state.connected) { + /* Mark as initiator if not set yet and auto-connect flag is + * set and LTK key is for a peripheral. + */ + if (!dev->le_state.initiator && dev->auto_connect && + dev->ltk && !dev->ltk->central) + dev->le_state.initiator = true; + return dev->le_state.initiator; - if (dev->bredr_state.connected) + } if (dev->bredr_state.connected) return dev->bredr_state.initiator; return dev->att_io ? true : false; -- 2.39.2