lkml.org 
[lkml]   [2022]   [Jul]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH] staging: greybus: don't use index pointer after iter
On Thu, Jul 07, 2022 at 03:59:54PM +0530, Karthik Alapati wrote:
> There are some usages of index pointer of list(w) which may not point to
> the right entry when the required entry is not found and the list traversal
> completes with index pointer pointing to the last entry. So, use w_found
> flag to track the case where the entry is found.

That is already being done here with the use of the w variable.

Look at commit 80c968a04a38 ("staging: greybus: audio: fix loop cursor
use after iteration") and then d2b47721a100 ("staging: greybus: audio:
replace safe list iteration").

> diff --git a/drivers/staging/greybus/audio_helper.c b/drivers/staging/greybus/audio_helper.c
> index 843760675876..7c04897a22a2 100644
> --- a/drivers/staging/greybus/audio_helper.c
> +++ b/drivers/staging/greybus/audio_helper.c
> @@ -116,6 +116,7 @@ int gbaudio_dapm_free_controls(struct snd_soc_dapm_context *dapm,
> {
> int i;
> struct snd_soc_dapm_widget *w, *next_w;
> + bool w_found = false;
> #ifdef CONFIG_DEBUG_FS
> struct dentry *parent = dapm->debugfs_dapm;
> struct dentry *debugfs_w = NULL;
> @@ -124,15 +125,18 @@ int gbaudio_dapm_free_controls(struct snd_soc_dapm_context *dapm,
> mutex_lock(&dapm->card->dapm_mutex);
> for (i = 0; i < num; i++) {
> /* below logic can be optimized to identify widget pointer */
> + w_found = false
> list_for_each_entry_safe(w, next_w, &dapm->card->widgets,
> list) {

You are working off of an old kernel version here, please see the above
commits which do not seem to be in your tree. Always work on linux-next
for issues so that you do not duplicate work that others have completed.

thanks,

greg k-h

\
 
 \ /
  Last update: 2022-07-07 12:54    [W:0.078 / U:1.944 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site