diff options
author | Dave Jones <davej@redhat.com> | 2011-08-30 11:49:37 -0400 |
---|---|---|
committer | Dave Jones <davej@redhat.com> | 2011-08-30 11:49:37 -0400 |
commit | 92c3aba6f2d2a3296a90f5b2ded2d1cdc786961c (patch) | |
tree | 46853b7497cddf607b25c3dc4c3a4810bdf03ee3 /revert-efi-rtclock.patch | |
parent | 2af2b0f5ca57a21d14f97505c5f71e8311e57321 (diff) | |
download | kernel-92c3aba6f2d2a3296a90f5b2ded2d1cdc786961c.tar.gz kernel-92c3aba6f2d2a3296a90f5b2ded2d1cdc786961c.tar.xz kernel-92c3aba6f2d2a3296a90f5b2ded2d1cdc786961c.zip |
Revert "x86: Serialize EFI time accesses on rtc_lock" (rhbz 732755)
Diffstat (limited to 'revert-efi-rtclock.patch')
-rw-r--r-- | revert-efi-rtclock.patch | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/revert-efi-rtclock.patch b/revert-efi-rtclock.patch new file mode 100644 index 000000000..87ecaa11a --- /dev/null +++ b/revert-efi-rtclock.patch @@ -0,0 +1,76 @@ +diff --git a/arch/x86/platform/efi/efi.c b/arch/x86/platform/efi/efi.c +index 3ae4128..e17c6d2 100644 +--- a/arch/x86/platform/efi/efi.c ++++ b/arch/x86/platform/efi/efi.c +@@ -89,50 +89,26 @@ early_param("add_efi_memmap", setup_add_efi_memmap); + + 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, +@@ -232,14 +208,11 @@ static efi_status_t __init phys_efi_set_virtual_address_map( + 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(); + status = efi_call_phys2(efi_phys.get_time, tm, tc); + efi_call_phys_epilog(); +- spin_unlock_irqrestore(&rtc_lock, flags); + return status; + } + |