diff options
Diffstat (limited to 'drivers/rtc/rtc-dev.c')
| -rw-r--r-- | drivers/rtc/rtc-dev.c | 15 | 
1 files changed, 9 insertions, 6 deletions
| diff --git a/drivers/rtc/rtc-dev.c b/drivers/rtc/rtc-dev.c index f118252f3a9..52e2743b04e 100644 --- a/drivers/rtc/rtc-dev.c +++ b/drivers/rtc/rtc-dev.c @@ -422,6 +422,12 @@ done:  	return err;  } +static int rtc_dev_fasync(int fd, struct file *file, int on) +{ +	struct rtc_device *rtc = file->private_data; +	return fasync_helper(fd, file, on, &rtc->async_queue); +} +  static int rtc_dev_release(struct inode *inode, struct file *file)  {  	struct rtc_device *rtc = file->private_data; @@ -434,16 +440,13 @@ static int rtc_dev_release(struct inode *inode, struct file *file)  	if (rtc->ops->release)  		rtc->ops->release(rtc->dev.parent); +	if (file->f_flags & FASYNC) +		rtc_dev_fasync(-1, file, 0); +  	clear_bit_unlock(RTC_DEV_BUSY, &rtc->flags);  	return 0;  } -static int rtc_dev_fasync(int fd, struct file *file, int on) -{ -	struct rtc_device *rtc = file->private_data; -	return fasync_helper(fd, file, on, &rtc->async_queue); -} -  static const struct file_operations rtc_dev_fops = {  	.owner		= THIS_MODULE,  	.llseek		= no_llseek, | 
