From: Bartosz Golaszewski <bgolaszewski@xxxxxxxxxxxx> We can obtain the write-protect GPIO in nvmem_register() by requesting it ourselves or by storing the gpio_desc passed in nvmem_config. In the latter case we need to increase the reference count so that it gets freed correctly. Signed-off-by: Bartosz Golaszewski <bgolaszewski@xxxxxxxxxxxx> --- drivers/nvmem/core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/nvmem/core.c b/drivers/nvmem/core.c index c9b3f4047154..c4a6c044b020 100644 --- a/drivers/nvmem/core.c +++ b/drivers/nvmem/core.c @@ -346,7 +346,7 @@ struct nvmem_device *nvmem_register(const struct nvmem_config *config) if (rval < 0) goto err_free_nvmem; if (config->wp_gpio) - nvmem->wp_gpio = config->wp_gpio; + nvmem->wp_gpio = gpiod_ref(config->wp_gpio); else nvmem->wp_gpio = gpiod_get_optional(config->dev, "wp", GPIOD_OUT_HIGH); -- 2.25.0