diff options
| -rw-r--r-- | drivers/rtc/class.c | 1 | ||||
| -rw-r--r-- | drivers/rtc/interface.c | 3 | 
2 files changed, 4 insertions, 0 deletions
diff --git a/drivers/rtc/class.c b/drivers/rtc/class.c index 9583cbcc6b7..c404b61386b 100644 --- a/drivers/rtc/class.c +++ b/drivers/rtc/class.c @@ -143,6 +143,7 @@ struct rtc_device *rtc_device_register(const char *name, struct device *dev,  	rtc->id = id;  	rtc->ops = ops;  	rtc->owner = owner; +	rtc->irq_freq = 1;  	rtc->max_user_freq = 64;  	rtc->dev.parent = dev;  	rtc->dev.class = rtc_class; diff --git a/drivers/rtc/interface.c b/drivers/rtc/interface.c index 925006d3310..a0c01967244 100644 --- a/drivers/rtc/interface.c +++ b/drivers/rtc/interface.c @@ -464,6 +464,9 @@ int rtc_irq_set_freq(struct rtc_device *rtc, struct rtc_task *task, int freq)  	int err = 0;  	unsigned long flags; +	if (freq <= 0) +		return -EINVAL; +  	spin_lock_irqsave(&rtc->irq_task_lock, flags);  	if (rtc->irq_task != NULL && task == NULL)  		err = -EBUSY;  |