2012-01-20 18:32:57 +00:00
|
|
|
commit d80d983c0fbfe0b0f6bd83c4279e1077c31e7fe4
|
|
|
|
Author: Josh Boyer <jwboyer@redhat.com>
|
|
|
|
Date: Fri Jan 20 10:12:15 2012 -0500
|
|
|
|
|
|
|
|
Revert "x86: Serialize EFI time accesses on rtc_lock"
|
|
|
|
|
|
|
|
This reverts commit ef68c8f87ed13f65df867dddf36c0e185b27b942.
|
|
|
|
|
2011-08-30 15:49:37 +00:00
|
|
|
diff --git a/arch/x86/platform/efi/efi.c b/arch/x86/platform/efi/efi.c
|
2012-01-20 18:32:57 +00:00
|
|
|
index 4cf9bd0..457e37a 100644
|
2011-08-30 15:49:37 +00:00
|
|
|
--- a/arch/x86/platform/efi/efi.c
|
|
|
|
+++ b/arch/x86/platform/efi/efi.c
|
2012-01-20 18:32:57 +00:00
|
|
|
@@ -90,50 +90,26 @@ early_param("add_efi_memmap", setup_add_efi_memmap);
|
2011-08-30 15:49:37 +00:00
|
|
|
|
|
|
|
static efi_status_t virt_efi_get_time(efi_time_t *tm, efi_time_cap_t *tc)
|
|
|
|
{
|
|
|
|
- unsigned long flags;
|
|
|
|
- efi_status_t status;
|
|
|
|
-
|
|
|
|
- spin_lock_irqsave(&rtc_lock, flags);
|
|
|
|
- status = efi_call_virt2(get_time, tm, tc);
|
|
|
|
- spin_unlock_irqrestore(&rtc_lock, flags);
|
|
|
|
- return status;
|
|
|
|
+ return efi_call_virt2(get_time, tm, tc);
|
|
|
|
}
|
|
|
|
|
|
|
|
static efi_status_t virt_efi_set_time(efi_time_t *tm)
|
|
|
|
{
|
|
|
|
- unsigned long flags;
|
|
|
|
- efi_status_t status;
|
|
|
|
-
|
|
|
|
- spin_lock_irqsave(&rtc_lock, flags);
|
|
|
|
- status = efi_call_virt1(set_time, tm);
|
|
|
|
- spin_unlock_irqrestore(&rtc_lock, flags);
|
|
|
|
- return status;
|
|
|
|
+ return efi_call_virt1(set_time, tm);
|
|
|
|
}
|
|
|
|
|
|
|
|
static efi_status_t virt_efi_get_wakeup_time(efi_bool_t *enabled,
|
|
|
|
efi_bool_t *pending,
|
|
|
|
efi_time_t *tm)
|
|
|
|
{
|
|
|
|
- unsigned long flags;
|
|
|
|
- efi_status_t status;
|
|
|
|
-
|
|
|
|
- spin_lock_irqsave(&rtc_lock, flags);
|
|
|
|
- status = efi_call_virt3(get_wakeup_time,
|
|
|
|
- enabled, pending, tm);
|
|
|
|
- spin_unlock_irqrestore(&rtc_lock, flags);
|
|
|
|
- return status;
|
|
|
|
+ return efi_call_virt3(get_wakeup_time,
|
|
|
|
+ enabled, pending, tm);
|
|
|
|
}
|
|
|
|
|
|
|
|
static efi_status_t virt_efi_set_wakeup_time(efi_bool_t enabled, efi_time_t *tm)
|
|
|
|
{
|
|
|
|
- unsigned long flags;
|
|
|
|
- efi_status_t status;
|
|
|
|
-
|
|
|
|
- spin_lock_irqsave(&rtc_lock, flags);
|
|
|
|
- status = efi_call_virt2(set_wakeup_time,
|
|
|
|
- enabled, tm);
|
|
|
|
- spin_unlock_irqrestore(&rtc_lock, flags);
|
|
|
|
- return status;
|
|
|
|
+ return efi_call_virt2(set_wakeup_time,
|
|
|
|
+ enabled, tm);
|
|
|
|
}
|
|
|
|
|
|
|
|
static efi_status_t virt_efi_get_variable(efi_char16_t *name,
|
2012-01-20 18:32:57 +00:00
|
|
|
@@ -233,15 +209,12 @@ static efi_status_t __init phys_efi_set_virtual_address_map(
|
2011-08-30 15:49:37 +00:00
|
|
|
static efi_status_t __init phys_efi_get_time(efi_time_t *tm,
|
|
|
|
efi_time_cap_t *tc)
|
|
|
|
{
|
|
|
|
- unsigned long flags;
|
|
|
|
efi_status_t status;
|
|
|
|
|
|
|
|
- spin_lock_irqsave(&rtc_lock, flags);
|
|
|
|
efi_call_phys_prelog();
|
2012-01-20 18:32:57 +00:00
|
|
|
status = efi_call_phys2(efi_phys.get_time, virt_to_phys(tm),
|
|
|
|
virt_to_phys(tc));
|
2011-08-30 15:49:37 +00:00
|
|
|
efi_call_phys_epilog();
|
|
|
|
- spin_unlock_irqrestore(&rtc_lock, flags);
|
|
|
|
return status;
|
|
|
|
}
|
|
|
|
|