gpio: gpiolib-of: Fix refcount bugs in of_mm_gpiochip_add_data()
stable inclusion from stable-v5.10.137 commit 26975d8ea96b478897f8cb91a9bc2395d7f3393c category: bugfix bugzilla: https://gitee.com/openeuler/kernel/issues/I60PLB Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=26975d8ea96b478897f8cb91a9bc2395d7f3393c -------------------------------- [ Upstream commit 5d07a692 ] We should use of_node_get() when a new reference of device_node is created. It is noted that the old reference stored in 'mm_gc->gc.of_node' should also be decreased. This patch is based on the fact that there is a call site in function 'qe_add_gpiochips()' of src file 'drivers\soc\fsl\qe\gpio.c'. In this function, of_mm_gpiochip_add_data() is contained in an iteration of for_each_compatible_node() which will automatically increase and decrease the refcount. So we need additional of_node_get() for the reference escape in of_mm_gpiochip_add_data(). Fixes: a19e3da5 ("of/gpio: Kill of_gpio_chip and add members directly to gpio_chip") Signed-off-by: NLiang He <windhl@126.com> Signed-off-by: NBartosz Golaszewski <brgl@bgdev.pl> Signed-off-by: NSasha Levin <sashal@kernel.org> Signed-off-by: NZheng Zengkai <zhengzengkai@huawei.com> Reviewed-by: NWei Li <liwei391@huawei.com>
Showing
想要评论请 注册 或 登录