Received: by 2002:a05:6a10:2726:0:0:0:0 with SMTP id ib38csp1021682pxb; Fri, 1 Apr 2022 02:22:48 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxaO03zrIp3nlV+6cmEWLU6VggD/7Hf2ucdp1ycErcox4066iJDFubM4AtIt+AnrzTZACmg X-Received: by 2002:a17:90b:1e4b:b0:1c6:edfe:70ad with SMTP id pi11-20020a17090b1e4b00b001c6edfe70admr10908381pjb.198.1648804968278; Fri, 01 Apr 2022 02:22:48 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1648804968; cv=none; d=google.com; s=arc-20160816; b=XvfqaAJqaI48vRwSRH/gQeSBCv4GlvgZaTvufGaxxR/vqPeCbI8iVhNosAe5r+ZFO7 fGqcwY47AhV+Xh4tV2GZxVfMnuKPMmlvhFciy7QZciDfMSMEYTmhGSKXEV4uDQgxUf7X Av07xJev2/+O84+IKd53MbZBtMVKAWlTGel+Wy+5/ZPlDeqFyW+7vwSU8bHCgkw4+jYu FLYcjNoT+Y9YfO0nC6l18HiVbWSAVnyCitotkLF3nB4kSXEgu0ieSLZOCVgXg2ePNlNS AFZ3PmuPjFaVTO7iKTJhiOhgywsNDOt+cMBoUSzzQaSEMEdBoUtGnUr7NEWuQJ8craa/ kkCA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=tfF4jMoourRXWty+VeiIwmu3poFQSsT7at+4kHLppy4=; b=b/cNDRiRVXmzAfVi7GAJzpmHRmZIrwt6Q0MUt58/AT3I23BmJEUxCE6TAhVjhpz4oh zlOxXTfnZeAqPWUxdWVF8mDhRKSaV30oEZXoErVy0XRGYNpMe7RjNitTqNBig8Acs0Zo 4heCkw5k3GZrDEEsA0UoOV6VtHBp6BYPCavaJqEnTqZwwzR3CkhqBVvD+gTZxZKZpXnt weUYgoJMgGXylBIzvxW8Ivx2jSc6Fyvy7eqS8wdGcA02+TSHOyPcky+QhX3snEUGj802 K+wGbTmfLtZiOy8TqVsnC8YPITp6+CPnKya9qsRm6TlkAaI7i2SpKPsg+K6Qwn9p7Pnf wtgg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=UOYSEjNC; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-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 a16-20020a170902ecd000b00154a965e477si1794963plh.231.2022.04.01.02.22.34; Fri, 01 Apr 2022 02:22:48 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-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=UOYSEjNC; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-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 S243969AbiDACNu (ORCPT + 99 others); Thu, 31 Mar 2022 22:13:50 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42700 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S243955AbiDACNt (ORCPT ); Thu, 31 Mar 2022 22:13:49 -0400 Received: from mail-qv1-xf32.google.com (mail-qv1-xf32.google.com [IPv6:2607:f8b0:4864:20::f32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7B1EE258FE0 for ; Thu, 31 Mar 2022 19:12:01 -0700 (PDT) Received: by mail-qv1-xf32.google.com with SMTP id ke15so1004735qvb.11 for ; Thu, 31 Mar 2022 19:12:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=tfF4jMoourRXWty+VeiIwmu3poFQSsT7at+4kHLppy4=; b=UOYSEjNCt4hvd1B3augR+23XTiJ93+NZvhnXrjnOQu1PLlGGuM5kE5DTveWmUYsJ4F w4zNDyY/pfzHfNS28LbSqNiFA8sxRW/3PJySNvuMKwvhTEoEJprO3kjyr4UA2W+Zm+Q1 Bw0hjwHG0lUQOfRS/7gUFksaeiuU7nSMAHrD2pMn2e90Xdma+bIMvXZoQVBgzJz9KSE3 0QlZo7pjve6cb7nG1842znWNewGcnKis4gv2L8Z2XF2HERAMdxbJrRrDSVDKknyKYC6+ 47OCiaWkmmCsdg0U1gFsCX+KBqemmaPe3o8VatmtPVljCKff9gm6WiRSiXsNW3iC1NcH dqoQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=tfF4jMoourRXWty+VeiIwmu3poFQSsT7at+4kHLppy4=; b=4yABjOlR+m6v/S48B6kzh4G2f/O5kZsqmJ8K/5pIvhnfBUhauwK00TjnpF7JqRuQ52 qF7Gafypttc51/bDf77kGGUW3tV07sFiEWHxzajKD8ewF31zXDyfBIUefqRzMWwHsDGb +lDm76OaJMhfEl9f6G6ZHnXn6TZyUKKaN4N6ObyQlo5slyDCG5F3HI8pat42PH1JCtXd gcxGRy4ba0aU5fxViHBtcPASsF+pEmtiQbPdEo01jlo9eAfY6PpjWht/jTUNPoycuqJW 30jvyTlMZyRd/m6NPPVwKeUxXM6ctKcxXAhsqg4T/UYTOU+ZFSkBxctTwJuyi1ktR377 053A== X-Gm-Message-State: AOAM5331rBm8Jt+En7uBPET7HJx4sJoMPg0/hc/0RbB5yitlgtpps+ax hsG2i1Ny2U6pZM0ksvMYNMJxWJDRuLG/XWCUT4A= X-Received: by 2002:a05:6214:1c85:b0:443:8347:d7a5 with SMTP id ib5-20020a0562141c8500b004438347d7a5mr11363444qvb.11.1648779120601; Thu, 31 Mar 2022 19:12:00 -0700 (PDT) MIME-Version: 1.0 References: <20220331215003.882143-1-jakobkoschel@gmail.com> <20220331215003.882143-2-jakobkoschel@gmail.com> In-Reply-To: <20220331215003.882143-2-jakobkoschel@gmail.com> From: Baolin Wang Date: Fri, 1 Apr 2022 10:12:42 +0800 Message-ID: Subject: Re: [PATCH 2/3] ASoC: sprd: remove check of list iterator against head past the loop body To: Jakob Koschel Cc: Codrin Ciubotariu , Arnd Bergmann , Greg Kroah-Hartman , Nicolas Ferre , Alexandre Belloni , Claudiu Beznea , Cezary Rojewski , Pierre-Louis Bossart , Liam Girdwood , Jie Yang , Mark Brown , Jaroslav Kysela , Takashi Iwai , Orson Zhai , Chunyan Zhang , Yang Yingliang , linux-arm-kernel@lists.infradead.org, LKML , alsa-devel@alsa-project.org, Mike Rapoport , Brian Johannesmeyer , Cristiano Giuffrida , "Bos, H.J." Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_ENVFROM_END_DIGIT, FREEMAIL_FROM,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham 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-kernel@vger.kernel.org On Fri, Apr 1, 2022 at 5:52 AM Jakob Koschel wrote: > > When list_for_each_entry() completes the iteration over the whole list > without breaking the loop, the iterator value will be a bogus pointer > computed based on the head element. > > While it is safe to use the pointer to determine if it was computed > based on the head element, either with list_entry_is_head() or > &pos->member == head, using the iterator variable after the loop should > be avoided. > > In preparation to limiting the scope of a list iterator to the list > traversal loop, use a dedicated pointer to point to the found element [1]. > > Link: https://lore.kernel.org/all/CAHk-=wgRr_D8CB-D9Kg-c=EHreAsk5SqXPwr9Y7k9sA6cWXJ6w@mail.gmail.com/ [1] > Signed-off-by: Jakob Koschel LGTM. Thanks. Reviewed-by: Baolin Wang > sound/soc/sprd/sprd-mcdt.c | 13 ++++++------- > 1 file changed, 6 insertions(+), 7 deletions(-) > > diff --git a/sound/soc/sprd/sprd-mcdt.c b/sound/soc/sprd/sprd-mcdt.c > index f6a55fa60c1b..6e27789a0df5 100644 > --- a/sound/soc/sprd/sprd-mcdt.c > +++ b/sound/soc/sprd/sprd-mcdt.c > @@ -866,20 +866,19 @@ EXPORT_SYMBOL_GPL(sprd_mcdt_chan_dma_disable); > struct sprd_mcdt_chan *sprd_mcdt_request_chan(u8 channel, > enum sprd_mcdt_channel_type type) > { > - struct sprd_mcdt_chan *temp; > + struct sprd_mcdt_chan *temp = NULL; > + struct sprd_mcdt_chan *iter; > > mutex_lock(&sprd_mcdt_list_mutex); > > - list_for_each_entry(temp, &sprd_mcdt_chan_list, list) { > - if (temp->type == type && temp->id == channel) { > - list_del_init(&temp->list); > + list_for_each_entry(iter, &sprd_mcdt_chan_list, list) { > + if (iter->type == type && iter->id == channel) { > + list_del_init(&iter->list); > + temp = iter; > break; > } > } > > - if (list_entry_is_head(temp, &sprd_mcdt_chan_list, list)) > - temp = NULL; > - > mutex_unlock(&sprd_mcdt_list_mutex); > > return temp; > -- > 2.25.1 > -- Baolin Wang