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>
mutex_lock(&chan->alias_pairs_lock);
c2a = i2c_atr_create_mapping_by_addr(chan, addr);
+ if (!c2a)
+ c2a = i2c_atr_replace_mapping_by_addr(chan, addr);
+
if (!c2a) {
dev_err(atr->dev, "failed to find a free alias\n");
ret = -EBUSY;