pwm: Fix order of freeing resources in pwmchip_remove()
pwmchip_add() calls of_pwmchip_add() only after adding the chip to pwm_chips and releasing pwm_lock. So the proper order in pwmchip_remove() is to call of_pwmchip_remove() before taking the mutex and removing the chip from pwm_chips. This way pwmchip_remove() releases the resources in reverse order compared to pwmchip_add() requesting them. Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
This commit is contained in:
parent
387c74e5f9
commit
86eed2a103
|
@ -318,13 +318,13 @@ void pwmchip_remove(struct pwm_chip *chip)
|
|||
{
|
||||
pwmchip_sysfs_unexport(chip);
|
||||
|
||||
if (IS_ENABLED(CONFIG_OF))
|
||||
of_pwmchip_remove(chip);
|
||||
|
||||
mutex_lock(&pwm_lock);
|
||||
|
||||
list_del_init(&chip->list);
|
||||
|
||||
if (IS_ENABLED(CONFIG_OF))
|
||||
of_pwmchip_remove(chip);
|
||||
|
||||
free_pwms(chip);
|
||||
|
||||
mutex_unlock(&pwm_lock);
|
||||
|
|
Loading…
Reference in New Issue