Received: by 2002:ab2:60d1:0:b0:1f7:5705:b850 with SMTP id i17csp1164577lqm; Thu, 2 May 2024 07:07:22 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCUk6A9yaShNNbSOXblrzH0weVME53QIGS4sQ5YhIJg5qkPIKCFyOIyhe06/tJjbLgyvPnZmy2fo1k0Ufkbx+YqqjWjKOANHpG0UqgLUWA== X-Google-Smtp-Source: AGHT+IEMo6ZSPP3MK1axLdyc/Dn57vjHy49LApjxLTLzA/rXBrf0j0k2VktNRSILQwN74BIjhKHJ X-Received: by 2002:a67:ec97:0:b0:47e:a214:5317 with SMTP id h23-20020a67ec97000000b0047ea2145317mr2623589vsp.19.1714658811783; Thu, 02 May 2024 07:06:51 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1714658811; cv=pass; d=google.com; s=arc-20160816; b=ID/bwigqrftuIKs3blq1r/TRLHfFgp/7SwxfxIF9bqioBz9FAimaibclovPSwhpuLa qH0yDFtVjRecBkhi1rZGEfRiONbXFtyS7POixuPDflA0CJqp9gm+GI0skl1Tc4iToAPr 2H5wRXr2rPJD3P+uJ+zUHWKk20eoi0It88AdNxzBFTaWztFoy+C09Z0jP8voj3GPtRr3 quViHtqPiFcPLbcH4g3edkCufWhOLxBnrbe4F8RNdGTSg9FVUEhPDzKwI+cRa0Cb7TBn Gxzy4OKdiKyWIkZFZN8Ro6RcmVfXlri7MW8jsaRoFKc1LgDgqG6U0uQBv1F8cHkLPmW0 MSDQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=mime-version:list-unsubscribe:list-subscribe:list-id:precedence :message-id:date:subject:cc:to:from:dkim-signature; bh=VUwnpocd+N84WkwYeyoxG5gM6+orRsfk6wD3EbsETyk=; fh=YhR5gtrCzrM0JWDt3MiNMOKQWLLzv+581jiV+kNk2uI=; b=u5tF8ND5ENNPheLRaAtYFsUDSt10KEInXFH94n+Kp1zqs966bGcG282jJJCj4fjflI xJ5hNEdNXJbIJf8r9HKtnCXSOWAphPYjYdSx0+Ev76Fyp8M0Mxxl8k8BQIgA5RDzYhmo bMh9hsVE42xKka56IvuoMWw/STezZmuikOsyDtLUoFdfvtI7NvPL8fMe3MS8xaiPP9vs wjf9L4/Qibbosv6l+Vlj3oTbciH5gzujGsmHV+28CfGIP9JgHMMGosiLzSJXKGSQrLkw kPMM8EGMXbSpOkWra2TMcz8Ll5bpLZMOvavEr6CLmPv3IgDMAeuZPGLvcORq43azW3UK Himg==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=aZHP+zhe; arc=pass (i=1 spf=pass spfdomain=quicinc.com dkim=pass dkdomain=quicinc.com dmarc=pass fromdomain=quicinc.com); spf=pass (google.com: domain of linux-bluetooth+bounces-4268-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) smtp.mailfrom="linux-bluetooth+bounces-4268-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=quicinc.com Return-Path: Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [147.75.199.223]) by mx.google.com with ESMTPS id q17-20020a67e9d1000000b0047bada5a8fesi141569vso.138.2024.05.02.07.06.51 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 02 May 2024 07:06:51 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-bluetooth+bounces-4268-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) client-ip=147.75.199.223; Authentication-Results: mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=aZHP+zhe; arc=pass (i=1 spf=pass spfdomain=quicinc.com dkim=pass dkdomain=quicinc.com dmarc=pass fromdomain=quicinc.com); spf=pass (google.com: domain of linux-bluetooth+bounces-4268-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) smtp.mailfrom="linux-bluetooth+bounces-4268-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=quicinc.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ny.mirrors.kernel.org (Postfix) with ESMTPS id 5B81C1C218FA for ; Thu, 2 May 2024 14:06:51 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 6358113C693; Thu, 2 May 2024 14:06:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=quicinc.com header.i=@quicinc.com header.b="aZHP+zhe" X-Original-To: linux-bluetooth@vger.kernel.org Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3D91EC8F3; Thu, 2 May 2024 14:06:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714658806; cv=none; b=b0RheeBYyg7U5UXCf/Mt9H+W6xDqYMlw7v5NjMdlUqeZO0rWJe+WCH6LyiPLPA63+qbrosBbhS7GmGD0VcZuvVBSeMRZFuOwptWQnMPaxQRpXc0baOP6mvqZhiQTlAzMGm5oNjoHHjuWTH6/YQ6nDnyDTh+CEuqVutidKpuoU30= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714658806; c=relaxed/simple; bh=CRwmbthABoB5jtDKEAH75hm5A5BTISlYEbt8gnYV6yU=; h=From:To:CC:Subject:Date:Message-ID:MIME-Version:Content-Type; b=h+wjFTWZDEO/tOw4TCbN/NhvQccmSjPG7KKu988nh0TFmrotFCOswzL0+BTkOjP41yOwVZ7ld8qn4HKWy2Aktt/e7d/nBXANI7M2daG2Xw15mlwnjFvhQ1rLMp6lNPIHZTOEdvYga0KrLHqUqz59gmobXtHirRg7x8cudNtQ0Hc= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=quicinc.com; spf=pass smtp.mailfrom=quicinc.com; dkim=pass (2048-bit key) header.d=quicinc.com header.i=@quicinc.com header.b=aZHP+zhe; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=quicinc.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=quicinc.com Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 442Cp2q7015115; Thu, 2 May 2024 14:06:37 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; h= from:to:cc:subject:date:message-id:mime-version:content-type; s= qcppdkim1; bh=VUwnpocd+N84WkwYeyoxG5gM6+orRsfk6wD3EbsETyk=; b=aZ HP+zheduFsKvekm4Y/qaEPCOLsQxTgX8Z2ZxbGDp3jfQzJcxoQeHGcaCZ8b0DZlg L4uS5tnJiSC6i/g9+GQQGfLgvaMB+33w4yEG5ptTPQG8CSSyYlxvhXa80F36MvnS buuzT1W3O3y80w/CFx6vHouSZ19Y/3n7zf5JCx8hyglknUgBT0LY4Oneq3Q4fCSN VXSRR//C39PTtCs5QWbkXeXn4Kdr3PJMEtzOmflwecgO58sDD+ZE+OmHk+QDGAna bjZqTr4+0r5utHJ/jZ564jx5zq+GiQVfVSLPYzjfJeIXXIXEXcXCpgxpSDy+PigT TfPtJwiPx/Kodcm5W1Ww== Received: from nasanppmta02.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3xueu93dft-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 02 May 2024 14:06:37 +0000 (GMT) Received: from nasanex01a.na.qualcomm.com (nasanex01a.na.qualcomm.com [10.52.223.231]) by NASANPPMTA02.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTPS id 442E6PrO010306 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 2 May 2024 14:06:25 GMT Received: from zijuhu-gv.qualcomm.com (10.80.80.8) by nasanex01a.na.qualcomm.com (10.52.223.231) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.9; Thu, 2 May 2024 07:06:23 -0700 From: Zijun Hu To: , , CC: , , , , Subject: [PATCH v1] Bluetooth: qca: Fix BT enable failure again for QCA6390 after warm reboot Date: Thu, 2 May 2024 22:06:01 +0800 Message-ID: <1714658761-15326-1-git-send-email-quic_zijuhu@quicinc.com> X-Mailer: git-send-email 2.7.4 Precedence: bulk X-Mailing-List: linux-bluetooth@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain X-ClientProxiedBy: nasanex01b.na.qualcomm.com (10.46.141.250) To nasanex01a.na.qualcomm.com (10.52.223.231) X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-GUID: vrB5hJzypWftWDztL0c5YclkApIE-nb4 X-Proofpoint-ORIG-GUID: vrB5hJzypWftWDztL0c5YclkApIE-nb4 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1011,Hydra:6.0.650,FMLib:17.11.176.26 definitions=2024-05-02_02,2024-05-02_02,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 mlxlogscore=999 malwarescore=0 lowpriorityscore=0 priorityscore=1501 clxscore=1011 mlxscore=0 impostorscore=0 adultscore=0 bulkscore=0 phishscore=0 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2404010003 definitions=main-2405020091 Commit 272970be3dab ("Bluetooth: hci_qca: Fix driver shutdown on closed serdev") will cause below regression issue: BT can't be enabled after below steps: cold boot -> enable BT -> disable BT -> warm reboot -> BT enable failure if property enable-gpios is not configured within DT|ACPI for QCA6390. The commit is to fix a use-after-free issue within qca_serdev_shutdown() during reboot, but also introduces this regression issue regarding above steps since the VSC is not sent to reset controller during warm reboot. Fixed by sending the VSC to reset controller within qca_serdev_shutdown() once BT was ever enabled, and the use-after-free issue is also be fixed by this change since serdev is still opened when send to serdev. Fixes: 272970be3dab ("Bluetooth: hci_qca: Fix driver shutdown on closed serdev") Cc: stable@vger.kernel.org Reported-by: Wren Turkal Closes: https://bugzilla.kernel.org/show_bug.cgi?id=218726 Signed-off-by: Zijun Hu Tested-by: Wren Turkal --- drivers/bluetooth/hci_qca.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/bluetooth/hci_qca.c b/drivers/bluetooth/hci_qca.c index 0c9c9ee56592..8e35c9091486 100644 --- a/drivers/bluetooth/hci_qca.c +++ b/drivers/bluetooth/hci_qca.c @@ -2450,13 +2450,12 @@ static void qca_serdev_shutdown(struct device *dev) struct qca_serdev *qcadev = serdev_device_get_drvdata(serdev); struct hci_uart *hu = &qcadev->serdev_hu; struct hci_dev *hdev = hu->hdev; - struct qca_data *qca = hu->priv; const u8 ibs_wake_cmd[] = { 0xFD }; const u8 edl_reset_soc_cmd[] = { 0x01, 0x00, 0xFC, 0x01, 0x05 }; if (qcadev->btsoc_type == QCA_QCA6390) { - if (test_bit(QCA_BT_OFF, &qca->flags) || - !test_bit(HCI_RUNNING, &hdev->flags)) + if (test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks) || + hci_dev_test_flag(hdev, HCI_SETUP)) return; serdev_device_write_flush(serdev); -- 2.7.4