mirror of
https://gitee.com/openharmony/kernel_linux
synced 2025-02-26 22:57:01 +00:00
rtc: fix double lock on UIE emulation
With commit 5ad31a575157147b43fa84ef1e21471661653878 ("rtc: remove BKL for ioctl()"), RTC_UIE_ON ioctl cause double lock on rtc->ops_lock. The ops_lock must not be held while set_uie() calls rtc_read_time() which takes the lock. Also clear_uie() does not need ops_lock. This patch fixes return value of RTC_UIE_OFF ioctl too. Signed-off-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp> Cc: David Brownell <david-b@pacbell.net> Cc: Russell King <rmk@arm.linux.org.uk> Cc: Alessandro Zummo <a.zummo@towertech.it> Cc: "Rafael J. Wysocki" <rjw@sisk.pl> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
ff9bc512f1
commit
1d96469a34
@ -403,11 +403,14 @@ static long rtc_dev_ioctl(struct file *file,
|
||||
|
||||
#ifdef CONFIG_RTC_INTF_DEV_UIE_EMUL
|
||||
case RTC_UIE_OFF:
|
||||
mutex_unlock(&rtc->ops_lock);
|
||||
clear_uie(rtc);
|
||||
break;
|
||||
return 0;
|
||||
|
||||
case RTC_UIE_ON:
|
||||
mutex_unlock(&rtc->ops_lock);
|
||||
err = set_uie(rtc);
|
||||
return err;
|
||||
#endif
|
||||
default:
|
||||
err = -ENOTTY;
|
||||
|
Loading…
x
Reference in New Issue
Block a user