From: Hans de Goede <hdego...@redhat.com>

commit 0b3ea2a06de1f52ea30865e227e109a5fd3b6214 upstream.

gpiod_add_lookup_table() expects the gpiod_lookup_table->table passed to
it to be terminated with a zero-ed out entry.

So we need to allocate one more entry then we will use.

Fixes: d308dfbf62ef ("i2c: mux/i801: Switch to use descriptor passing")
Signed-off-by: Hans de Goede <hdego...@redhat.com>
Reviewed-by: Mika Westerberg <mika.westerb...@linux.intel.com>
Acked-by: Jean Delvare <jdelv...@suse.de>
Reviewed-by: Linus Walleij <linus.wall...@linaro.org>
Signed-off-by: Wolfram Sang <w...@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org>

---
 drivers/i2c/busses/i2c-i801.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/drivers/i2c/busses/i2c-i801.c
+++ b/drivers/i2c/busses/i2c-i801.c
@@ -1424,7 +1424,7 @@ static int i801_add_mux(struct i801_priv
 
        /* Register GPIO descriptor lookup table */
        lookup = devm_kzalloc(dev,
-                             struct_size(lookup, table, mux_config->n_gpios),
+                             struct_size(lookup, table, mux_config->n_gpios + 
1),
                              GFP_KERNEL);
        if (!lookup)
                return -ENOMEM;


Reply via email to