Skip to content

Commit b09d8a9

Browse files
Demon000Wolfram Sang
authored andcommitted
i2c: atr: allow replacing mappings in attach_addr()
It is possible for aliases to be exhausted while we are still attaching children. Allow replacing mapping on attach by calling i2c_atr_replace_mapping_by_addr() if i2c_atr_create_mapping_by_addr() fails. Signed-off-by: Cosmin Tanislav <demonsingur@gmail.com> Reviewed-by: Luca Ceresoli <luca.ceresoli@bootlin.com> Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
1 parent 0242632 commit b09d8a9

File tree

1 file changed

+3
-0
lines changed

1 file changed

+3
-0
lines changed

drivers/i2c/i2c-atr.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -543,6 +543,9 @@ static int i2c_atr_attach_addr(struct i2c_adapter *adapter,
543543
mutex_lock(&chan->alias_pairs_lock);
544544

545545
c2a = i2c_atr_create_mapping_by_addr(chan, addr);
546+
if (!c2a)
547+
c2a = i2c_atr_replace_mapping_by_addr(chan, addr);
548+
546549
if (!c2a) {
547550
dev_err(atr->dev, "failed to find a free alias\n");
548551
ret = -EBUSY;

0 commit comments

Comments
 (0)