diff options
author | Uwe Kleine-König <u.kleine-koenig@pengutronix.de> | 2019-03-25 12:49:33 +0300 |
---|---|---|
committer | Thierry Reding <thierry.reding@gmail.com> | 2019-05-09 18:09:54 +0300 |
commit | e926b12c611c2095c7976e2ed31753ad6eb5ff1a (patch) | |
tree | c0c74a6953c3949d1d5007cb4e2eb3c6dca287dd /drivers/pwm/core.c | |
parent | 738a1cfec2edb4a6c53ac34fcb29447227dd135e (diff) | |
download | linux-e926b12c611c2095c7976e2ed31753ad6eb5ff1a.tar.xz |
pwm: Clear chip_data in pwm_put()
After a PWM is disposed by its user the per chip data becomes invalid.
Clear the data in common code instead of the device drivers to get
consistent behaviour. Before this patch only three of nine drivers
cleaned up here.
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
Diffstat (limited to 'drivers/pwm/core.c')
-rw-r--r-- | drivers/pwm/core.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/pwm/core.c b/drivers/pwm/core.c index 8c9200a0df5e..3998ebd51db4 100644 --- a/drivers/pwm/core.c +++ b/drivers/pwm/core.c @@ -877,6 +877,7 @@ void pwm_put(struct pwm_device *pwm) if (pwm->chip->ops->free) pwm->chip->ops->free(pwm->chip, pwm); + pwm_set_chip_data(pwm, NULL); pwm->label = NULL; module_put(pwm->chip->ops->owner); |