summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/i2c/i2c-atr.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/drivers/i2c/i2c-atr.c b/drivers/i2c/i2c-atr.c
index 8a5d9247fd29..4f78e75b63a0 100644
--- a/drivers/i2c/i2c-atr.c
+++ b/drivers/i2c/i2c-atr.c
@@ -240,6 +240,7 @@ i2c_atr_find_mapping_by_addr(struct i2c_atr_chan *chan, u16 addr)
struct i2c_atr *atr = chan->atr;
struct i2c_atr_alias_pair *c2a;
struct list_head *alias_pairs;
+ bool found = false;
u16 alias;
int ret;
@@ -258,11 +259,14 @@ i2c_atr_find_mapping_by_addr(struct i2c_atr_chan *chan, u16 addr)
if (unlikely(list_empty(alias_pairs)))
return NULL;
- list_for_each_entry_reverse(c2a, alias_pairs, node)
- if (!c2a->fixed)
+ list_for_each_entry_reverse(c2a, alias_pairs, node) {
+ if (!c2a->fixed) {
+ found = true;
break;
+ }
+ }
- if (c2a->fixed)
+ if (!found)
return NULL;
atr->ops->detach_addr(atr, chan->chan_id, c2a->addr);