On Thu, 24 Jun 2021 20:49:36 +0200, Christophe JAILLET wrote: > > The intent here is to return an error code if we don't find what we are > looking for in the 'list_for_each_entry()' loop. > > 's' is not NULL if the list is empty or if we scan the complete list. > Introduce a new 'found' variable to handle such cases. > > Fixes: 60dd49298ec5 ("ALSA: firewire-lib: handle several AMDTP streams in callback handler of IRQ target") > Signed-off-by: Christophe JAILLET <christophe.jaillet@xxxxxxxxxx> Applied now. Thanks. Takashi > --- > We could test with" if (list_entry_is_head(s, &d->streams, list))" > instead, but I find it much less readable. > --- > sound/firewire/amdtp-stream.c | 7 +++++-- > 1 file changed, 5 insertions(+), 2 deletions(-) > > diff --git a/sound/firewire/amdtp-stream.c b/sound/firewire/amdtp-stream.c > index aad9778d1c4d..9be2260e4ca2 100644 > --- a/sound/firewire/amdtp-stream.c > +++ b/sound/firewire/amdtp-stream.c > @@ -1943,6 +1943,7 @@ int amdtp_domain_start(struct amdtp_domain *d, unsigned int tx_init_skip_cycles, > unsigned int events_per_period = d->events_per_period; > unsigned int queue_size; > struct amdtp_stream *s; > + bool found = false; > int err; > > if (replay_seq) { > @@ -1955,10 +1956,12 @@ int amdtp_domain_start(struct amdtp_domain *d, unsigned int tx_init_skip_cycles, > > // Select an IT context as IRQ target. > list_for_each_entry(s, &d->streams, list) { > - if (s->direction == AMDTP_OUT_STREAM) > + if (s->direction == AMDTP_OUT_STREAM) { > + found = true; > break; > + } > } > - if (!s) > + if (!found) > return -ENXIO; > d->irq_target = s; > > -- > 2.30.2 >