Skip to content

Commit 656cc2e

Browse files
lkpdnBartosz Golaszewski
authored andcommitted
gpio: virtuser: fix handling of multiple conn_ids in lookup table
Creating a virtuser device via configfs with multiple conn_ids fails due to incorrect indexing of lookup entries. Correct the indexing logic to ensure proper functionality when multiple gpio_virtuser_lookup are created. Fixes: 91581c4 ("gpio: virtuser: new virtual testing driver for the GPIO API") Signed-off-by: Koichiro Den <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Bartosz Golaszewski <[email protected]>
1 parent a619cba commit 656cc2e

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

drivers/gpio/gpio-virtuser.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1410,7 +1410,7 @@ gpio_virtuser_make_lookup_table(struct gpio_virtuser_device *dev)
14101410
size_t num_entries = gpio_virtuser_get_lookup_count(dev);
14111411
struct gpio_virtuser_lookup_entry *entry;
14121412
struct gpio_virtuser_lookup *lookup;
1413-
unsigned int i = 0;
1413+
unsigned int i = 0, idx;
14141414

14151415
lockdep_assert_held(&dev->lock);
14161416

@@ -1424,12 +1424,12 @@ gpio_virtuser_make_lookup_table(struct gpio_virtuser_device *dev)
14241424
return -ENOMEM;
14251425

14261426
list_for_each_entry(lookup, &dev->lookup_list, siblings) {
1427+
idx = 0;
14271428
list_for_each_entry(entry, &lookup->entry_list, siblings) {
1428-
table->table[i] =
1429+
table->table[i++] =
14291430
GPIO_LOOKUP_IDX(entry->key,
14301431
entry->offset < 0 ? U16_MAX : entry->offset,
1431-
lookup->con_id, i, entry->flags);
1432-
i++;
1432+
lookup->con_id, idx++, entry->flags);
14331433
}
14341434
}
14351435

0 commit comments

Comments
 (0)