Received: by 2002:a05:6a10:6744:0:0:0:0 with SMTP id w4csp1041017pxu; Fri, 16 Oct 2020 02:13:31 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzaoI3LJ+5RA+1hhZES76ML2nUObTe8Plvk9JIKkvtntfPZ6DInKNuFbz2P7A1c64QoduAD X-Received: by 2002:a17:906:3290:: with SMTP id 16mr2664446ejw.308.1602839611063; Fri, 16 Oct 2020 02:13:31 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1602839611; cv=none; d=google.com; s=arc-20160816; b=rtnilPKyXFuVpYTnuIkyDqN08VwM7VKuvRfiBstbfiqeqbd3g0I0JxI2TqHTwPoaw9 HxadHrOusWsmCgDKv+jiKBD0THzrZjLPa7mkYJrpsIHbGnN+OsX+DFSQiAaSeciYCTR1 WBzq2Okm3dPdz5La/hlEA2Kh1X6ia6ke2uJ6bQwiF3wk13GkbYDUdhBDWglGwrHl5evP py90OzKvwNvOGBKcMJJQCsHfIqRYrCk1dTGGRpM8McJiuUPwK7rdP98iEeK8S+zulQWs /E78Wr//0cKplFhj76rIayibogHgH3frzhEI5iLwrojB/XwfLYtMj9g2RJGuDQoiZF7o Cbug== 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 :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=3OPy74CMtsVjPgnKST2Kiil6vC3Mtut8xbeXuu8kxQw=; b=YZDrWLe9OIIvMCYGUr0uoTWahH3tnG4L/EhGlApGVFpEg66ohoEFQPbdE+RMNg3QSV EraxQLI3taC3+PTOFauU+FBf+ChXqCt+LX16TXvOLzymNA7IpdX+hd/DhNkXHobE9lcl VinxY3u1Uaodw6px1AfFiPUlukSkLXBH91oSNxp5GU+i64MqqUSzUdwyb8GL8qAgqYSq z0k65mQ7knSAPuUFrxijqX71QH7HthQ476ktYTs5MiRTxiVXbVlMH5rTpBaUOWyKn9GC YQ/joChlur94Ip/cJPYWh9WkYJh+B/0K8Z5ESXx2opHIJdGkblTI86yeoXel7tSDP22r bWjA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=i0F5eaim; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id t18si1167022eje.652.2020.10.16.02.13.08; Fri, 16 Oct 2020 02:13:31 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=i0F5eaim; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2405500AbgJPJIa (ORCPT + 99 others); Fri, 16 Oct 2020 05:08:30 -0400 Received: from mail.kernel.org ([198.145.29.99]:36448 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2405442AbgJPJIB (ORCPT ); Fri, 16 Oct 2020 05:08:01 -0400 Received: from localhost (83-86-74-64.cable.dynamic.v4.ziggo.nl [83.86.74.64]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 39FBF20848; Fri, 16 Oct 2020 09:08:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1602839280; bh=b2wmGoAXxDB+yfrAtHbfkV2/Wga6LMhlcpHqUglVxHU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=i0F5eaimQhTlNUsRr9kaKzJvKpXRh8RgKaH75uzpRYioEkZzLj6UFo94o4YkC/9rN Eq12gJJ524jL2j94PFU0nNjYZBEy6VjmyEC8lXoIgcACj/M/R67ai/5u47dIYNNgGL 7D4YqChno6GxswaxGyi3x05OMCerHuYJLa4G2Mf8= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Patrick Steinhardt , Luiz Augusto von Dentz , Marcel Holtmann Subject: [PATCH 4.9 06/16] Bluetooth: Fix update of connection state in `hci_encrypt_cfm` Date: Fri, 16 Oct 2020 11:07:10 +0200 Message-Id: <20201016090437.534673828@linuxfoundation.org> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20201016090437.205626543@linuxfoundation.org> References: <20201016090437.205626543@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Patrick Steinhardt commit 339ddaa626995bc6218972ca241471f3717cc5f4 upstream. Starting with the upgrade to v5.8-rc3, I've noticed I wasn't able to connect to my Bluetooth headset properly anymore. While connecting to the device would eventually succeed, bluetoothd seemed to be confused about the current connection state where the state was flapping hence and forth. Bisecting this issue led to commit 3ca44c16b0dc (Bluetooth: Consolidate encryption handling in hci_encrypt_cfm, 2020-05-19), which refactored `hci_encrypt_cfm` to also handle updating the connection state. The commit in question changed the code to call `hci_connect_cfm` inside `hci_encrypt_cfm` and to change the connection state. But with the conversion, we now only update the connection state if a status was set already. In fact, the reverse should be true: the status should be updated if no status is yet set. So let's fix the isuse by reversing the condition. Fixes: 3ca44c16b0dc ("Bluetooth: Consolidate encryption handling in hci_encrypt_cfm") Signed-off-by: Patrick Steinhardt Acked-by: Luiz Augusto von Dentz Signed-off-by: Marcel Holtmann Signed-off-by: Greg Kroah-Hartman --- include/net/bluetooth/hci_core.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) --- a/include/net/bluetooth/hci_core.h +++ b/include/net/bluetooth/hci_core.h @@ -1256,7 +1256,7 @@ static inline void hci_encrypt_cfm(struc __u8 encrypt; if (conn->state == BT_CONFIG) { - if (status) + if (!status) conn->state = BT_CONNECTED; hci_connect_cfm(conn, status);