From f043520c5abe7627168af77b2c4b2992c4679e3a Mon Sep 17 00:00:00 2001 From: Sascha Hauer Date: Sun, 7 Apr 2013 11:50:24 +0200 Subject: [PATCH] pwm: sanity check values before passing them to the drivers Check for valid period size before calling ops->config. This fixes the pxa driver which otherwise does a division by zero. While at it, also check for duty_ns being smaller or equal to period_ns. Signed-off-by: Sascha Hauer Cc: Robert Jarzmik --- drivers/pwm/core.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/pwm/core.c b/drivers/pwm/core.c index db7d260c0..f769cfe9b 100644 --- a/drivers/pwm/core.c +++ b/drivers/pwm/core.c @@ -177,6 +177,13 @@ int pwm_config(struct pwm_device *pwm, int duty_ns, int period_ns) { pwm->chip->duty_ns = duty_ns; pwm->chip->period_ns = period_ns; + + if (period_ns == 0) + return -EINVAL; + + if (duty_ns > period_ns) + return -EINVAL; + return pwm->chip->ops->config(pwm->chip, duty_ns, period_ns); } EXPORT_SYMBOL_GPL(pwm_config);