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);