Message ID | 20250428102516.933571-7-demonsingur@gmail.com |
---|---|
State | New |
Headers | show |
Series | i2c: atr: allow usage of nested ATRs | expand |
On Mon, 28 Apr 2025 13:25:11 +0300 Cosmin Tanislav <demonsingur@gmail.com> wrote: > 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> > --- > drivers/i2c/i2c-atr.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/i2c/i2c-atr.c b/drivers/i2c/i2c-atr.c > index bf7b2ac5e9cf..7214a59ddf15 100644 > --- a/drivers/i2c/i2c-atr.c > +++ b/drivers/i2c/i2c-atr.c > @@ -543,6 +543,9 @@ static int i2c_atr_attach_addr(struct i2c_adapter *adapter, > 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; Looks like this should be squashed into patch 5, no? I might be wrong, but IIUC the change in patch 5 is introducing a "bug" ("It is possible for aliases to be exhausted while we are still attaching children") and this patch fixes it. Ah, nitpick: I wouldn't add that empty line. Luca
diff --git a/drivers/i2c/i2c-atr.c b/drivers/i2c/i2c-atr.c index bf7b2ac5e9cf..7214a59ddf15 100644 --- a/drivers/i2c/i2c-atr.c +++ b/drivers/i2c/i2c-atr.c @@ -543,6 +543,9 @@ static int i2c_atr_attach_addr(struct i2c_adapter *adapter, 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;
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> --- drivers/i2c/i2c-atr.c | 3 +++ 1 file changed, 3 insertions(+)