Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp1434847ybz; Fri, 1 May 2020 23:25:48 -0700 (PDT) X-Google-Smtp-Source: APiQypJMUaHU7E53reHsJdjTsWILlOD8T2PO37766wg/TuuRj+k84jfCO34ksyqHlxgN8StdOQz/ X-Received: by 2002:a17:906:4e02:: with SMTP id z2mr6289987eju.212.1588400748485; Fri, 01 May 2020 23:25:48 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1588400748; cv=none; d=google.com; s=arc-20160816; b=MnAyAI0nP8/sL4DkYsqfxTVAzy7ZutB0eQvsLc12E+IfFSp5M6eceE+pd5kWmOAw5D +kmDMhA1sYqIfed80vMiL4Mf1TZ6r9sY9DBXm+6us7sOlPQOXYojGZ1qtUvKde/j+mlP Sw7rvrRJbTv1G+JcRGE0VCndg9xnUE1XaL0zjqy8cr+TYN1kJORG2UoYpUo1G3LdJEDN 4goYVHSMlVpvdWd6pReeoaCktkc8d63J8opExRhE6EXXvpCUqFZlAfkSTIXvEvn0VttZ jcw/kqnHM6OUF1YhrqHY0WremmaGZ1j2GTXPUQzE20HwisUYRHQsVMdaF1duuAg3cvfr pvdg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=W9lwjOniEuAKuv1D0IsLIIuaReo7GkR8tnFw1PkbGMU=; b=t7RyfRmMoRleKF2GV0tGNIqJfNYx92b7gt7SvAKsYgwEzFrEKFe6TVXVvT9DlgBirw 2XJQP/uIWUmrC6oEo4eylpcMdBSgAu/VVIs3Je3nHMDP6bSJ1do4U4rldWy5UknZAq2B WXQQfIcM61l2ckVRYXu/w1UmCMRu0FpclCzaJaQbM4D98grUoX9JKcnPj61hHSLGUdWG kfiFkfU6hbsyatS2jh5PcSYkvvxhOd3KSmh7VsnCOh4GpajE+lfRZaoQs7yBMNRFXd5K PGVTdLZIi0yuegBKKy00DIf3lzdpdCSRW6XpRs3KsMjP6oTIgClxt1UGSlR9In49Wt5d reFQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=m72VPhNv; spf=pass (google.com: domain of linux-bluetooth-owner@vger.kernel.org designates 23.128.96.18 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 vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id l26si3321337eje.378.2020.05.01.23.25.05; Fri, 01 May 2020 23:25:48 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-bluetooth-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=@gmail.com header.s=20161025 header.b=m72VPhNv; spf=pass (google.com: domain of linux-bluetooth-owner@vger.kernel.org designates 23.128.96.18 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 S1726520AbgEBGY5 (ORCPT + 99 others); Sat, 2 May 2020 02:24:57 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39922 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1726273AbgEBGY4 (ORCPT ); Sat, 2 May 2020 02:24:56 -0400 Received: from mail-oi1-x242.google.com (mail-oi1-x242.google.com [IPv6:2607:f8b0:4864:20::242]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4ACC9C061A0C for ; Fri, 1 May 2020 23:24:56 -0700 (PDT) Received: by mail-oi1-x242.google.com with SMTP id c124so1803776oib.13 for ; Fri, 01 May 2020 23:24:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=W9lwjOniEuAKuv1D0IsLIIuaReo7GkR8tnFw1PkbGMU=; b=m72VPhNvDdiI2jDSMca6OSF/Dk7JGdvV8HCKv1aY6zuHcAaEIwADKpraBi1czLPp3V 4Bu6lGVhTn4bTwNeMnfX+UnitcItJiO8yblmc14JXuU6g4b4zzo5zMW8o+loB7XQmhOq Yx4tW+stkYcuUXgiMzhDGkyqB6If4jigICzY4LzRsD1EdOJyucowD5V61SeYutD13G9q m09AVGH1aIK9bEceL8rHmQ/d+qXM3uHu4KkoIQg1kEA7DC2kAGvemun5z5otVAOMdDwP PR3l79vnYrrwCS1PO3deKpyiuOOZ0PCxQkimwZ/9kTHk5oO+neyekeyyNu4UJukNGrOM u8+Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=W9lwjOniEuAKuv1D0IsLIIuaReo7GkR8tnFw1PkbGMU=; b=cu1Fut5tJ6KqGH/gGeM6Uuz0/bi8ReXYpcBFawix+ou/GcHqwq+8Iky6YD8zY9/v7z gj2zxaxGs2pNS67c2mxWjxYjp5y6yWzucRs0X+k28CcQPUMHq+DNK5igjcpWRUNMQQ2T FXAL0WyOLSMSgVGtSk7AZjbNtVnzARn9Ym3lN3L3HKUDnRz91xXeqXPnrsB11opXYj+J WD1DPfslXb0gv/WDSesLORLEYybRQP05aNePBMfvgKoYDdogh25mCXjo57uSxa6blV0L fqE4zT611BqefvDOCSGo7BrCEEjnXtjSPtn/ITAGx7fLfxFnS4sGgrNg3owfAR7WbUTr wS8g== X-Gm-Message-State: AGi0PuaANoO4LbXp/ZFkVdudrWQIvXlMTLnjRtpYBR8/ggJaTocFr8gW HC7H1Tv/3nvY6x27r/Z+ZSbIPXBZYKaXMac2dO4= X-Received: by 2002:aca:b5d5:: with SMTP id e204mr2285844oif.108.1588400695494; Fri, 01 May 2020 23:24:55 -0700 (PDT) MIME-Version: 1.0 References: <20200501144037.1684-1-alainm@chromium.org> <4195BFB9-1586-435F-8FC2-ED215959A591@holtmann.org> <215E5E68-A360-4DD7-8DBC-E46278729FC6@holtmann.org> In-Reply-To: From: Luiz Augusto von Dentz Date: Fri, 1 May 2020 23:24:44 -0700 Message-ID: Subject: Re: [BlueZ PATCH v1] shared/gatt-client:Ignore orphaned characteristics To: Marcel Holtmann Cc: Alain Michaud , Alain Michaud , BlueZ Content-Type: text/plain; charset="UTF-8" Sender: linux-bluetooth-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-bluetooth@vger.kernel.org Hi Marcel, Alain, On Fri, May 1, 2020 at 11:04 AM Marcel Holtmann wrote: > > Hi Alain, > > >>>>> The gatt discovery proceedure simplification to discover all > >>>>> characteristics at once has exposed a device side issue where some > >>>>> device implementation reports orphaned characteristics. While this > >>>>> technically shouldn't be allowed, some instances of this were observed > >>>>> (namely on some Android phones). > >>>>> > >>>>> The fix is to simply skip over orphaned characteristics and continue > >>>>> with everything else that is valid. > >>>>> > >>>>> This has been tested as part of the Android CTS tests against an > >>>>> affected platform and was confirmed to have worked around the issue. > >>>>> --- > >>>>> > >>>>> src/shared/gatt-client.c | 5 ++++- > >>>>> 1 file changed, 4 insertions(+), 1 deletion(-) > >>>>> > >>>>> diff --git a/src/shared/gatt-client.c b/src/shared/gatt-client.c > >>>>> index 963ad619f..d604c77a3 100644 > >>>>> --- a/src/shared/gatt-client.c > >>>>> +++ b/src/shared/gatt-client.c > >>>>> @@ -632,7 +632,10 @@ static bool discover_descs(struct discovery_op *op, bool *discovering) > >>>>> util_debug(client->debug_callback, client->debug_data, > >>>>> "Failed to insert characteristic at 0x%04x", > >>>>> chrc_data->value_handle); > >>>>> - goto failed; > >>>>> + > >>>>> + /* Skip over invalid characteristic */ > >>>>> + free(chrc_data); > >>>>> + continue; > >>>>> } > >>>> > >>>> should we add a warning here? > >>> Is there a good way other than the util_debug mechanism to write a warning? > >> > >> you could just use btd_warn() here. If this gets too noisy, we either remove it later or we introduce a btd_warn_ratelimited() or btd_warn_once(). > > This being under src/shared, I wasn't sure if that was acceptable to > > add a btd dependency here, especially with the work to avoid it via > > the util_debug. Happy to do either way, just want to make sure the > > guidance is clear. > > good point. My bad. You better leave the logging out then. There is already some logging a little bit before so I guess we are covered here. -- Luiz Augusto von Dentz