Loading drivers/char/genrtc.c +6 −1 Original line number Original line Diff line number Diff line Loading @@ -51,6 +51,7 @@ #include <linux/init.h> #include <linux/init.h> #include <linux/poll.h> #include <linux/poll.h> #include <linux/proc_fs.h> #include <linux/proc_fs.h> #include <linux/smp_lock.h> #include <linux/workqueue.h> #include <linux/workqueue.h> #include <asm/uaccess.h> #include <asm/uaccess.h> Loading Loading @@ -338,12 +339,16 @@ static int gen_rtc_ioctl(struct inode *inode, struct file *file, static int gen_rtc_open(struct inode *inode, struct file *file) static int gen_rtc_open(struct inode *inode, struct file *file) { { if (gen_rtc_status & RTC_IS_OPEN) lock_kernel(); if (gen_rtc_status & RTC_IS_OPEN) { unlock_kernel(); return -EBUSY; return -EBUSY; } gen_rtc_status |= RTC_IS_OPEN; gen_rtc_status |= RTC_IS_OPEN; gen_rtc_irq_data = 0; gen_rtc_irq_data = 0; irq_active = 0; irq_active = 0; unlock_kernel(); return 0; return 0; } } Loading Loading
drivers/char/genrtc.c +6 −1 Original line number Original line Diff line number Diff line Loading @@ -51,6 +51,7 @@ #include <linux/init.h> #include <linux/init.h> #include <linux/poll.h> #include <linux/poll.h> #include <linux/proc_fs.h> #include <linux/proc_fs.h> #include <linux/smp_lock.h> #include <linux/workqueue.h> #include <linux/workqueue.h> #include <asm/uaccess.h> #include <asm/uaccess.h> Loading Loading @@ -338,12 +339,16 @@ static int gen_rtc_ioctl(struct inode *inode, struct file *file, static int gen_rtc_open(struct inode *inode, struct file *file) static int gen_rtc_open(struct inode *inode, struct file *file) { { if (gen_rtc_status & RTC_IS_OPEN) lock_kernel(); if (gen_rtc_status & RTC_IS_OPEN) { unlock_kernel(); return -EBUSY; return -EBUSY; } gen_rtc_status |= RTC_IS_OPEN; gen_rtc_status |= RTC_IS_OPEN; gen_rtc_irq_data = 0; gen_rtc_irq_data = 0; irq_active = 0; irq_active = 0; unlock_kernel(); return 0; return 0; } } Loading