diff options
Diffstat (limited to 'drivers/rtc/rtc-proc.c')
| -rw-r--r-- | drivers/rtc/rtc-proc.c | 6 | 
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/rtc/rtc-proc.c b/drivers/rtc/rtc-proc.c index c086fc30a84..242bbf86c74 100644 --- a/drivers/rtc/rtc-proc.c +++ b/drivers/rtc/rtc-proc.c @@ -81,12 +81,16 @@ static int rtc_proc_show(struct seq_file *seq, void *offset)  static int rtc_proc_open(struct inode *inode, struct file *file)  { +	int ret;  	struct rtc_device *rtc = PDE(inode)->data;  	if (!try_module_get(THIS_MODULE))  		return -ENODEV; -	return single_open(file, rtc_proc_show, rtc); +	ret = single_open(file, rtc_proc_show, rtc); +	if (ret) +		module_put(THIS_MODULE); +	return ret;  }  static int rtc_proc_release(struct inode *inode, struct file *file)  |