Revert "x86: Serialize EFI time accesses on rtc_lock" (rhbz 732755)
This commit is contained in:
parent
2af2b0f5ca
commit
92c3aba6f2
@ -717,6 +717,7 @@ Patch12029: crypto-register-cryptd-first.patch
|
|||||||
|
|
||||||
Patch12303: dmar-disable-when-ricoh-multifunction.patch
|
Patch12303: dmar-disable-when-ricoh-multifunction.patch
|
||||||
|
|
||||||
|
Patch13002: revert-efi-rtclock.patch
|
||||||
Patch13003: efi-dont-map-boot-services-on-32bit.patch
|
Patch13003: efi-dont-map-boot-services-on-32bit.patch
|
||||||
Patch13004: iwlagn-revert-max-aggregate-size.patch
|
Patch13004: iwlagn-revert-max-aggregate-size.patch
|
||||||
|
|
||||||
@ -1321,6 +1322,7 @@ ApplyPatch crypto-register-cryptd-first.patch
|
|||||||
# rhbz#605888
|
# rhbz#605888
|
||||||
ApplyPatch dmar-disable-when-ricoh-multifunction.patch
|
ApplyPatch dmar-disable-when-ricoh-multifunction.patch
|
||||||
|
|
||||||
|
ApplyPatch revert-efi-rtclock.patch
|
||||||
ApplyPatch efi-dont-map-boot-services-on-32bit.patch
|
ApplyPatch efi-dont-map-boot-services-on-32bit.patch
|
||||||
ApplyPatch iwlagn-revert-max-aggregate-size.patch
|
ApplyPatch iwlagn-revert-max-aggregate-size.patch
|
||||||
|
|
||||||
@ -2035,6 +2037,9 @@ fi
|
|||||||
# ||----w |
|
# ||----w |
|
||||||
# || ||
|
# || ||
|
||||||
%changelog
|
%changelog
|
||||||
|
* Tue Aug 30 2011 Dave Jones <davej@redhat.com>
|
||||||
|
- Revert "x86: Serialize EFI time accesses on rtc_lock" (rhbz 732755)
|
||||||
|
|
||||||
* Tue Aug 30 2011 Josh Boyer <jwboyer@redhat.com>
|
* Tue Aug 30 2011 Josh Boyer <jwboyer@redhat.com>
|
||||||
- Add patch to fix rhbz 606017
|
- Add patch to fix rhbz 606017
|
||||||
|
|
||||||
|
76
revert-efi-rtclock.patch
Normal file
76
revert-efi-rtclock.patch
Normal file
@ -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;
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user